您的位置:首页 > 编程语言 > PHP开发

FTP服务

2018-01-25 23:14 141 查看
1.基础设置:

设置网络和yum源

设置网路nm-connection-editor

设定名称hostnamectl set-hostname server3.example.com

更改repo文件vim /etc/yum.repos.d/rhel_dvd.repo(http://172.25.254.250/rhel7

清除数据yum clean all

安装 [root@server3 ~]# yum repolist

[root@server3 ~]# yum install vsftpd -y(相当于阿帕奇)

[root@server3 ~]# yum install lftp -y(相当于浏览器)

启动ftpd服务[root@server3 ~]# systemctl start vsftpd

[root@server3 ~]# systemctl enable vsftpd

logout

ssh root@172.25.254.103 -X

设置内核配置 vim /etc/sysconfig/selinux

SELINUX=disabled —>getenforce查看

reboot

ssh root@172.25.254.103 -X

[root@server3 ~]# firewall-cmd –permanent –add-service=ftp

success //更改防火墙设置为永久,启动服务ftp

[root@server3 ~]# firewall-cmd –reload

success //更改防火墙设置加载

或者 在server3中firewall-config

Configuration设置为permanent

下方列表中添加ftp

Options中reload

2.lftp操作

登陆lftp 172.25.254.250

登陆本地用户 lftp 172.25.254.250 -u student

配置文件vim /etc/vsftpd/vsftpd.conf

重启服务systemctl restart vsftpd

报错: 530是登录失败,能列出东西才可以登陆(密码错了,设置错了)

550是程序不允许

553是服务器文件系统不允许你写(权限过小)

500是权限过大

chmod 777 /var/ftp/会报500的错误

anonymous_enable=YES(第12行)匿名用户是否可以登陆

local_enable=YES(第16行)为本地用户是否可以登陆



write_enable=YES(第19行)为本地用户能否可写

anon_upload_enable=YES(第29行)为匿名用户可以上传

默认目录 /var/ftp/

匿名用户上传

anon_upload_enable=YES(第29行)为匿名用户可以上传

chgrp ftp /var/ftp/pub 更改文件的用户组

chmod 775 /var/ftp/pub 组权限

lftp 172.25.254.120

cd /pub/

put /root/Desktop/file

ls

put /上传的东西



下载 vim /etc/vsftpd/vsftpd.conf

anon_world_readable_only=NO可以下载

systemctl restart vsftpd

lftp 172.25.254.120

cd /pub/

ls

get passwd 下载文件(下载到进入lftp之前所在的目录)

mirror westos 下载目录

建立目录 vim /etc/vsftpd/vsftpd.conf

anon_mkdir_write_enable=YES(33行)

systemctl restart vsftpd

lftp 172.25.254.120

cd /pub/

ls

mkdir westos

删除 vim /etc/vsftpd/vsftpd.conf

anon_other_write_enable=YES 设定匿名用户能否进行删除文件

systemctl restart vsftpd

lftp 172.25.254.120

cd /pub/

ls

mv 原文件名 新文件名

ls

rm -fr linux







匿名用户的家目录

vim /etc/vsftpd/vsftpd.conf

anon_root=/westos 设定匿名用户家目录

systemctl restart vsftpd

在westos下建立三个文件

lftp 172.25.254.120

cd到家目录(cd)下查看,可以看到文件



匿名用户默认建立目录权限

vim /etc/vsftpd/vsftpd.conf

anon_umask=xxx(220)

systemctl restart vsftpd

lftp 172.25.254.120

mkdir westos

ls -l



设定上传文件的所有人

vim /etc/vsftpd/vsftpd.conf

chown_uploads=YES 由这项才可有下面的两项

chown_username=student 更改为student id student查看UID

systemctl restart vsftpd

put file

ls





设定匿名用户上传文件的权限

vim /etc/vsftpd/vsftpd.conf

chown_upload_mode=0644(这条写入上面的匿名用户默认建立目录权限就失效了)

systemctl restart vsftpd

put file

ls



限制上传下载速度

dd if=/dev/zero of=bigfile bs=1M count=2000 创建一个2G的大文件

du -sh bigfile 查看大文件信息

vim /etc/vsftpd/vsftpd.conf

anon_max_rate=102400 ##单位为byte,102400为100k/s,速度上

!!限速是服务器长期稳定的保证



最大链接数 //同时最多允许几个用户同时连接

vim /etc/vsftpd/vsftpd.conf

max_clients=2

systemctl restart vsftpd



本地用户家目录设定(指定)(验证方法痛匿名用户)

vim /etc/vsftpd/vsftpd.conf

local_root=/westos 设定本地用户家目录

systemctl restart vsftpd

lftp 172.25.254.120 -u student

ls



本地用户锁定在自己的家目录中

vim /etc/vsftpd/vsftpd.conf

chroot_local_user=YES !!锁定 108行

systemctl restart vsftpd

chmod u-w /home/* !!去除家目录所有的写权限,否则会报500权限过大错误

lftp 172.25.254.120 -u student

cd /

ls



设定用户的名单

vim /etc/vsftpd/vsftpd.conf

chroot_list_enable=YES
4000
!!启动列表

chroot_local_user=YES !!锁住了,大家都出不去,下面是白名单

chroot_list_file=/etc/vsftpd/chroot_list !!指定白名单名称

或者 chroot_local_user=NO !!没有锁,大家都可以出去,下面是黑名单

chroot_list_file=/etc/vsftpd/chroot_list !!指定黑名单名称

vim /etc/vsftpd/chroot_list

systemctl restart vsftpd

chmod u-w /home/* !!去除家目录所有的写权限,否则会报500权限过大错误

lftp 172.25.254.120 -u student

cd /

ls

切换另一个本地账户再次尝试



PS:查看主配置文件 man vsftpd.conf

/read 查找含有read的关键词

1.本地用户名单

vim /etc/vsftpd/vsftpd.conf

userlist_enable=YES(默认可以登陆)

systemctl restart vsftpd.service

/etc/vsftpd/user_list 临时黑名单(我把student写到里面)

student进不去,westos能进去



vim /etc/vsftpd/vsftpd.conf

userlist_deny=NO(加上这个默认用户不能登陆)

systemctl restart vsftpd.service

/etc/vsftpd/user_list 临时白名单

student能进去,westos进不去



PS:userlist_deny=YES(默认可以登陆)

/etc/vsftpd/ftpusers 永久黑名单(即改即生效)

required必须通过

2.ftp虚拟用户的设定

vim /etc/vsftpd/westosfile 文件名称随意(里面写虚拟用户和密码,一行用户一行密码,不要加空格)

westos1

123

westos2

123

westos3

123



db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db 加密

cat /etc/vsftpd/westosfile.db 看加密的文件就会显示乱码



vim /etc/pam.d/ftpcheck 文件名任意

account帐号 required必须通过 pam_userdb.so db=/etc/vsftpd/westosfile指定看门的人用按照哪个名单看

auth密码 required必须通过 pam_userdb.so db=/etc/vsftpd/westosfile



vim /etc/vsftpd/vsftpd.conf

pam_service_name=ftpcheck (指定看门的人按照哪个文件里的方式看)

guest_enable=YES

guest_username=westos(虚拟用户登陆之后系统用户的名字)

lftp 172.25.254.120 -u westos1

123



PS:ls看不见

anon_world_readable_only=NO改了这个才能读

3.虚拟用户家目录独立设定

mkdir /ftpdir/westos{1..3} -p(递归建立)

touch /ftpdir/westos1/westos1file

touch /ftpdir/westos2/westos2file

touch /ftpdir/westos3/westos3file

vim /etc/vsftpd/vsftpd.conf

local_root=/ftpdir/ $ USER (指定本地用户家目录)

user_sub_token=/ USER(使系统在vim中能理解USER时什么意思,引用shell的环境变量)

systemctl restart vsftpd.service

然后每个用户都能在家目录中看见相对应的文件



4.在子配置文件中给不同虚拟用户不同权限(可下载可上传)

先关闭以前设置的上传和下载权限

mkdir /etc/vsftpd/confdir

mkdir /ftpdir/westos{1..3}/pub



chmod 775 /ftpdir/westos{1..3}/pub

chgrp westos /ftpdir/westos{1..3}/pub

vim /etc/vsftpd/confdir/westos1

anon_upload_enable=YES

anon_mkdir_write_enable=YES

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/confdir

用户可以上传,下载

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp