Linux下的FTP相关设置

1、连接
服务器端
(1)vim /etc/sysconfig/selinux

(2)reboot


(3)yum install vsftpd
(4)systemctl start vsftpd
(5)systemctl enable vsftpd

(6)netstat -antlupe|grep vsftpd #查看端口是否成功开启


(7)firewall-cmd --list-all
(8)firewall-cmd --permanent --add-service=ftp #添加ftp服务
(9)firewall-cmd --reload #更新防火墙规则

(10)firewall-cmd --list-all


测试
lftp 172.25.254.68(服务端ip)
ls

lftp命令不能执行时,安装lftp软件

2、ftp服务基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件:ls/etc/vsftpd/vsftpd.conf
报错id的解析:500 #文件系统权限过大
530 #用户认证失败
550 #服务本身功能未开放

553 #本地文件系统权限过小

3、ftp服务设置

修改配置文件后,一定要systemctl restart vsftpd重启服务!

man 5 vsftpd.conf 可以查看相关设置

##本地用户可写(上传、删除)

write_enable=YES
##本地用户登陆
local_enable=YES
##匿名用户登陆

anonymous_enable=YES


测试过程:


##匿名用户建立目录

anon_mkdir_write_enable=YES


chgrp ftp /var/ftp/pub #更改所属组

chmod 775 /var/ftp/pub #更改pub权限

原本匿名用户不能创建目录,设置后匿名用户可以在pub下创建目录:


##匿名用户上传(前提是本地用户可写)

anon_upload_enable=YES


测试过程:


##匿名用户下载
匿名用户默认不能下载自己不能读的文件

anon_world_readable_only=NO

测试过程:

##匿名用户删除

anon_other_write_enable=YES

测试过程:


##匿名最大传输速率

anon_max_rate=102400

未设置前:


设置后:


##匿名用户家目录修改

anon_root=/direcotry

测试过程:


##用户权限
local_umask=077 修改umask022为077后,本地用户权限由644变为600

anon_umask=022 添加umask为022后,匿名用户权限由600变为644


其中内核预留了100的权限

##限制本地用户浏览/目录(匿名用户不能浏览/目录


chroot_local_user=YES #所有本地用户被锁定到自己的家目录

chmod u-w /home/* #减小用户权限

修改后测试:


(1)用户白名单建立
chroot_local_user=YES #所有本地用户被锁定到自己家目录
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list #此时/etc/vsftpd/chroot_lis为用户白名单

执行vim /etc/vsftpd/chroot_list,将yee用户写入名单,该名单内容自动加载


(2)用户黑名单建立

chroot_local_user=NO #所有本地用户可浏览/目录
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list#此时/etc/vsftpd/chroot_lis为用户黑名单

执行vim /etc/vsftpd/chroot_list,将haha用户写入名单


##用户登陆限制
(1)cd /etc/vsftpd/
(2)ls
chroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh

ftpusers永久黑名单 ;user_list临时黑名单

永久黑名单不受其他配置的影响,临时黑名单受userlist_enable和userlist_deny两项配置的影响

(3)vim vsftpd.conf

userlist_enable=YES

此时,将student写入ftpusers、user_list结果一致,student登陆被限制:


(3)vim vsftpd.conf
userlist_enable=YES
#当且仅当YES时,userlist_deny的设置才生效
userlist_deny=NO #将user_list名单改为白名单

将haha写入user_list时,haha为白名单用户可以正常登陆,但是!将其再加入ftpusers后,haha即为黑名单用户,这是因为:永久黑名单优先级别高,当黑白名单中都有某用户时,该用户为黑名单用户


使用白名单后,匿名用户无法登陆!除非在user_list白名单中加入anonymous

##虚拟用户设定
(1)yum whatprovides */pam_userdb.so #查找软件
(2)yum install pam-1.1.8-9.el7.x86_64 #下载
(3)vim /etc/vsftpd/yeefile #写入虚拟用户身份及密码,如:
user1
123
user2
123
user3
123

(4)db_load -T -t hash -f etc/vsftpd/yeefile /etc/vsftpd/yeefile.db #将yee文件哈希加密为yee.db


(5)vim /etc/pam.d yee #制定策略文件,写入:
account  required  pam_userdb.so   db=/etc/vsftpd/yeefile #用户
auth       required  pam_userdb.so   db=/etc/vsftpd/yeefile #密码
 
required表示必须要通过模块认证 ; pam_userdb.so 模块 ;db=/etc/vsftpd/yeefile名单

(6)vim /etc/vsftpd/vsftpd.conf #修改配置文件


pam_service_name=yee #策略文件
userlist_enable=YES
guest_enable=YES

guest_username=ftp #ftp是存在的用户,虚拟帐号身份指定

测试:


##虚拟帐号家目录独立设定
mkdir /ftpusers
mkdir /ftpusers/user{1..3}
touch /ftpusers/user1/test1
touch /ftpusers/user2/test2
touch /ftpusers/user3/test3 #给虚拟用户独立家目录里建立文件,方便区分
vim /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd

测试:


##虚拟帐号配置独立
(1)mkdir /ftpusers/user{1..3}/pub
(2)mkdir /etc/vsftpd/user.conf -p
(3)vim /etc/vsftpd/vsftpd.conf #写入图示内容,同时注释掉上传文件的功能

(4)chgrp ftp /ftpusers/user{1..3}/pub #改变组为配置文件里面的已经存在的组
(5)chmod 775 /ftpusers/user{1..3}/pub #改权限

(6)systemctl restart vsftpd

(7)vim /etc/vsftpd/user.conf/user1 #编辑user1的配置文件,此文件中设定的所有参数只对user1可用,此文件的优先级高
anon_upload_enable=YES #上传命令

测试:


猜你喜欢

转载自blog.csdn.net/yyyxxxs/article/details/80269442