创建ftp服务器,设置并验证其控制参数
安装vsftp
ftp服务的安装
[root@localhost Server]# rpm -ivhvsftpd-2.0.5-28.el5.x86_64.rpm
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
主配置文件重要参数
anonymous_enable=YES匿名用户可否访问,为NO时匿名用户不可登陆
local_enable=YES 是否启用本地用户
write_enable=YES 是否启用本地用户
local_umask=022 本地用户上传的权限掩码
添加条目:
listen_port=2121 端口号默认为20 更改为2121
chroot_local_user=YES是否将用户禁锢在主目录
userlist_enable=YES白名单可用
listen_port=2121 端口号2121
userlist_deny=NO 允许白名单用户
write_enable=YES 用户可写
local_root=/data/ftproot锁定本地用户家目录地址
Max_clients=20 限制并发的客户端个数
max_per_ip=2 限制每个客户机ip的并发连接数
local_max_rate=100000 本地用户最大传输速度(字节/秒)
1. 验证匿名用户的上传下载权限
在服务器/var/ftp/pub/(ftp公共文件目录)目录下创建两个测试文件ceshi1,ceshi2
服务器开启Vsftp
[root@localhost~]# servicevsftpd restart
[root@localhost ~]# chkconfigvsftpd on
进入客户机匿名登录(ftp,anonymous。密码为空)
[root@localhost~]# ftp 192.168.1.1
Connectedto 192.168.1.1.
Name(192.168.1.1:root): ftp
331Please specify the password.
Password:
230Login successful.
上述登录成功,进入pub文件夹
ftp>cd pub
250Directory successfully changed.
ftp>ls
227Entering Passive Mode (192,168,1,1,170,104)
150Here comes the directory listing.
-rw-r--r-- 1 0 0 0 Jun 13 12:23 ceshi1
-rw-r--r-- 1 0 0 0 Jun 13 12:23ceshi2
226 Directory send OK.
下载文件ceshi1
ftp>get ceshi1
226 File send OK.
查看下载的文件
ftp>!ls ------带感叹号表示查看外部环境
anaconda-ks.cfg ceshi1 Desktop install.log install.log.syslog
可以看到已将ftp服务器中的文件ceshi1下载到本地的/root下了
上传install.Log到服务器
ftp>put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,1,119,36)
550 Permission denied. -------显示没有权限
说明匿名用户登录只可下载不可上传
2.本地用户登录本地用户的家目录,可以上传下载
在用户yeyue的家目录下新建文件test1.txt
使用服务器创建的用户yeyue在客户端登录访问ftp
登录后查看位置可知道用户yeyue登录后在其家目录下
ftp>pwd
257 "/home/yeyue"
下载用户yeyeu家目录的test1.txt
ftp>get test1.txt
local:test1.txt remote: test1.txt
检查:
ftp> !ls
anaconda-ks.cfg Desktopinstall.log.syslog
ceshi1 install.log test1.txt
上传install.log到服务器
ftp> put install.log
可在服务器上检查/home/yeyue
[root@localhost pub]# ls /home/yeyue
install.log test1.txt
可看到客户机通过用户yeyue上传进服务器的install.log
3.设置禁止匿名用户登录
在服务器将主配置文件中设置anonymous_enable=NO
重启服务后进入客户机测试
[root@localhost ~]# ftp 192.168.1.1
Connected to 192.168.1.1.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.1:root): ftp
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
可看到通过匿名用户访问不可访问
4.修改FTP端口号为2121
listen_port=2121 端口号默认为20 更改为2121
重启服务后进入客户端进行测试
[root@localhost ~]# ftp 192.168.1.1
ftp: connect: Connection refused
可看到通过默认端口不能进入
[root@localhost ~]# ftp 192.168.1.1 2121
Connected to 192.168.1.1.
……..
Name (192.168.1.1:root):
可得通过2121端口可进入
5.将本地用户禁锢在自己的家目录下
在主配置文件中添加chroot_local_user=YES
客户端通过本地用户访问
[root@localhost ~]# ftp 192.168.1.1 2121
Name (192.168.1.1:root): yeyue
331 Please specify the password.
Password:
230 Login successful.
ftp>pwd
257 "/"
可看到由实验2用户yeyue登录后锁定的家目录已更改为 / 目录,可得用户已被锁定
6.验证黑/白名单的生效范围
(黑:/etc/vsftpd/ftpusers白:/etc/vsftpd/user_list)
将yeyue加入黑名单配置文件,在客户机登录验证
[root@localhost pub]# vim /etc/vsftpd/ftpusers
[root@localhost ~]# ftp 192.168.1.1 2121
Login failed
进入后可输入密码,但登录失败,说明黑名单生效
新建用户up,down。将黑名单中的yeyue删除,将yeyue,up加入白名单并在主配置文件中加入userlist_deny=NO(白名单中的用户可允许登录)
[root@localhost ~]# ftp 192.168.1.1 2121
Name (192.168.1.1:root): down
530 Permission denied.
Login failed.
Down登录后不提示输入密码就已经不允许登录
[root@localhost ~]# ftp 192.168.1.1 2121
Connected to 192.168.1.1.
Name (192.168.1.1:root): up
331 Please specify the password.
Password:
230 Login successful.
白名单中的用户up与yeyue可登入
注:白名单与黑名单同时添加用户时,拒绝生效
7.设置本地用户登录到/data/ftproot/,up有上传下载的权限,down只有下载的权限(默认权限)
将用户up与down加入白名单。
主配置文件修改
userlist_enable=YES ---白名单可用
listen_port=2121 端口号2121
chroot_local_user=YES 锁定用户在家目录
userlist_deny=NO 允许白名单用户
write_enable=YES 用户可写
local_root=/data/ftproot锁定本地用户家目录地址
创建目录并在目录下新建测试文件1.txt2.txt且赋予用户up读写权限
[root@localhost pub]# mkdir -p /data/ftproot
[root@localhost pub]# setfacl -m u:up:rwx /data/ftproot
进入客户机验证
[root@localhost ~]# ftp 192.168.1.1 2121
Connected to 192.168.1.1.
Name (192.168.1.1:root): up
331 Please specify the password.
Password:
230 Login successful.
ftp>pwd
257 "/"
ftp>ls
227 Entering Passive Mode (192,168,1,1,250,64)
150 Here comes the directory listing.
-rw-r--r-- 10 0 0 Jun 13 13:49 1.txt
226 Directory send OK.
上述结果可看到用户被锁定在家目录为/data/ftproot
测试下载上传
ftp> get 1.txt
local: 1.txt remote: 1.txt
227 Entering Passive Mode (192,168,1,1,86,190)
150 Opening BINARY mode data connection for 1.txt (0bytes).
226 File send OK.
ftp> !ls
1.txt2.txt ceshi1 install.log test1.txt
anaconda-ks.cfg Desktopinstall.log.syslog
下载成功
ftp> put ceshi1
ftp>ls
227 Entering Passive Mode (192,168,1,1,173,82)
150 Here comes the directory listing.
-rw-r--r-- 10 0 0 Jun 13 13:49 1.txt
-rw-r--r-- 1 502 502 0 Jun 13 13:56 ceshi1
226 Directory send OK.
上传成功,说明用户up拥有对ftp的上传下载权限
用户down登录
[root@localhost ~]# ftp 192.168.1.1 2121
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.1:root): down
230 Login successful
下载
ftp> get 2.txt
ftp> !ls
1.txt anaconda-ks.cfg Desktop install.log.syslog
2.txt ceshi1 install.log test1.txt
上传
ftp> put test1.txt
553 Could not create file.
ftp>ls
-rw-r--r-- 10 0 0 Jun 13 13:49 1.txt
-rw-r--r-- 10 0 0 Jun 13 13:58 2.txt
-rw-r--r-- 1502 502 0 Jun 13 13:56 ceshi1
可看到上传test1.txt文件不成功,说明down用户没有上传权限
8.设置除up,down之外所有用户登录包括匿名用户不可登录
白名单中添加up,down
主配置文件中设定
local_enable=NO 本地用户不启用
anonymous_enable=NO 匿名用户不可登录
9.设置最多二十个并发且每个ip地址最多两个并发
在主配置文件中添加:
Max_clients=20
max_per_ip=2
10.限制下载速度为100KB/S
主配置文件中添加:
local_max_rate=100000