cenos6.5系统下构建FTP服务器
网络环境:
一台linux server ip 192.168.1.254,一台linux client ip 192.168.1.100
需求描述:
1:禁止匿名用户登录
2:修改FTP默认端口为2121
3:禁锢本地用户在自己家目录
4:本地用户登录到/data/ftproot目录
5:up用户上传/下载,down用户仅下载。拒绝所有用户登录包括匿名用户
6:最多20个并发,每IP地址最多2个并发,限制下载速度限制为100KB/s
实施步骤:
1:安装vsftp程序
[root@server Packages]# rpm -ivh vsftpd-2.2.2-11.el6_4.1.i686.rpm
2:启动服务并设为开机启动
[root@server ~]# service vsftpd start
[root@server ~]# chkconfig vsftpd on
3:备份配置文件
[root@server ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
4:编辑配置文件实现需求
[root@server ~]# mkdir /data/ftproot
[root@server ~]# vim /etc/vsftpd/vsftpd.conf
... 12 anonymous_enable=NO //禁止匿名访问 ... 120 listen_port=2121 //改ftp端口 121 chroot_local_user=yes //禁锢登录目录 122 local_root=/data/ftproot //改登录目录为/data/ftproot 123 userlist_deny=NO //白名单生效 124 max_clients=20 //最大并发客户端 125 max_per_ip=2 //每ip最大并发 126 local_max_rate=100000 //限制下载速度 127 reverse_lookup_enable=NO 重要 //关闭默认的反向解析,加速登录
[root@server ~]# service vsftpd restart重启服务
5:编辑白名单实现账户访问控制
[root@server ~]# tail -2 /etc/vsftpd/user_list
... 16 up 17 down
6:在服务器端给up用户添加本地写权限
[root@server ~]# setfacl -m u:up:rwx /data/ftproot
一般ftp用20与联21端口,开了这两个就行了
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
添加附加模块,链接追踪模块
#vim /etc/sysconfig/iptables-config//这个是永久的
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp"
7:客户端测试
[root@client ~]# ftp 192.168.1.254 2121
Name (192.168.1.254:root): up以up用户登录测试
230 Login successful
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,254,247,195).
150 Ok to send data.
226 Transfer complete.
38109 bytes sent in 0.0426 secs (894.56 Kbytes/sec)
ftp> get install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,254,20,170).
150 Opening BINARY mode data connection for install.log (38109 bytes).
226 Transfer complete.
38109 bytes received in 0.00206 secs (18463.66 Kbytes/sec)
Name (192.168.1.254:root): down以down用户登录测试
230 Login successful.
ftp> !ls
anaconda-ks.cfg bootback.tar.gz install.log install.log.syslog test test.zip
ftp> put bootback.tar.gz
local: bootback.tar.gz remote: bootback.tar.gz
227 Entering Passive Mode (192,168,1,254,44,97).
553 Could not create file.
ftp> get install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,254,242,203).
150 Opening BINARY mode data connection for install.log (38109 bytes).
226 Transfer complete.
38109 bytes received in 0.000302 secs (126188.74 Kbytes/sec)