一、环境
一台CentOS7.5服务器(搭建FTP文件传输服务)
192.168.10.178
二、匿名访问
1、安装vsftpd服务
yum -y install vsftpd
2、创建ftp访问目录并赋权
# 创建ftp目录
mkdir -pv /ftp/test
# 给访问目录赋权
chown -R ftp.ftp /ftp
chmod a-w /ftp
ll -d /ftp
ll /ftp/test
3、修改配置文件
[root@localhost vsftpd]# cat vsftpd.conf
anonymous_enable=YES
local_enable=NO
write_enable=YES
local_umask=022
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_root=/ftp
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
4、重启ftp服务
systemctl restart vsftpd
5、测试ftp
6、上传下载
# 登录ftp服务器(都是上传下载到当前目录)
get test
put test
三、用户访问
1、安装vsftpd服务
yum -y install vsftpd
2、创建ftp访问目录并赋权
# 创建ftp目录
mkdir /ftp
# 给目录赋权
chown -R ftp.ftp /ftp/
# 查看ftp目录权限
ll -d /ftp/
drwxrwxrwx 4 ftp ftp 56 Nov 28 02:33 /ftp/
3、修改配置文件
[root@localhost vsftpd]# cat vsftpd.conf |egrep -v "^$|^#"
anonymous_enable=NO
local_enable=YES
write_enable=YES
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=YES
listen_address=192.168.6.134
pam_service_name=vsftpd
local_root=/ftp
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
4、重启ftp服务
systemctl restart vsftpd
5、测试登录ftp
6、测试上传下载
四、限制ftp用户用指定IP地址访问ftp服务器
1、修改/etc/pam.d/vsftpd配置文件
cat /etc/pam.d/vsftpd
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account required pam_access.so
account include system-auth
session include system-auth
session required pam_loginuid.so
2、修改/etc/security/access.conf配置文件
cat /etc/security/access.conf
-:test:ALL EXCEPT 10.39.63.10
# - 为拒绝test用户登录 except为除了10.39.63.10这个IP
# 意思为允许10.39.63.10使用test用户登录
3、修改vsftpd.conf文件
# 监听地址些详细地址有可能会报错
cat vsftpd.conf |egrep -v "^$|^#"
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen_address=192.168.6.134
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES