主配置文件/etc/vsftpd/vsftpd.conf.
1 查看系统是否安装所需软件包
2 启动与停止
service vsftpd start #启动
service vsftpd stop #停止
3 vsftpd 开机自动加载 : chkconfig vsftpd on
4 selinux设置
setsebool -p ftp_home_dir=1 ( 1 )
setsebool -p allow_ftpd_anon_write=1 (2)
chcon -R -t /var/ftp/ (3)
注:(1)当用户登录到FTP服务器时允许将该用户引导到家目录。
(2)(3)允许匿名用户上传文件到FTP服务器。
通过本地数据库文件实现虚拟用户访问
1 安装db4-utils包
rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm
2 创建本地映射用户,修改本地映射用户家目录权限
3 修改/etc/vsftpd/vsftpd.conf文件,添加内容如下
4 生成虚拟用户文件,在该文件中用户名和密码各一行,本次练习建立/etc/vsftpd/vftpuser.txt,内容如下:
5 生成虚拟用户数据库文件
6 处于安全考虑应修改生成数据库文件权限
7 修改PAM认证文件/etc/pam.d/vsftpd,将原有内容注释并加入以下内容。
8 重启vsftpd服务后,即可使用tonyzhang,tomyang登录FTP服务器了。
虚拟主机配置
1 创建虚拟用户
useradd -d /var/ftp2 -s /sbin/nologin ftp2
chmoe -R 755 /var/ftp2
chown -R root:root /var/ftp2
mkdir -m 755 /var/ftp2/pub
chown ftp2:root /var/ftp2/pub
2 准备虚拟FTP服务器的配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd1.conf
3 修改/etc/vsftpd/vsftpd.conf文件,内容如下:
listen_address=192.168.0.15
4 修改/etc/vsftpd/vsftpd1.conf,内容如下:
listen_address=192.168.1.15
ftp_username=ftp2
local_root=/var/ftp2
5 service vsftpd restart,重启服务后,就可以使192.168.0.0/24和192.168.1.0/24两个网络的客户端访问不同的FTP站点。
访问行为控制
1 write_enable=YES|NO #是否允许用户上传文件,该参数只对非匿名用户有效。
2 anonymous_enable=YES|NO #是否允许匿名用户登录。
3 local_enable=YES|NO #是否允许本地用户登录
4 download_enable=YES|NO #是否允许用户下载文件。
5 chown_uploads=YES,chown_username=whoever #修改匿名用户上传的文件所有者。
6 userlist_file: #指定被允许或禁止登录的用户。
7 userlist_enable=YES|NO #该参数为YES时,userlist_file文件指定的用户将无法登录。
8 userlist_deny=YES|NO #该参数只有在userlist_enable=YES时才有效。当userlist_deny=YES 时,禁止文件中的用户登录,当userlist_deny=NO时,允许在文件中的用户登录。
9 chroot_local_user=YES|NO #是否允许用户登录后离开自己的家目录。
10 chroot_list_enable=YES|NO #是否允许指定不能离开家目录的用户,只有当chroot_local_user=YES 时才有效。
11 chroot_list_file #指定不能离开家目录的用户,如chroot_list_file=/etc/vsftpd/chroot_list
12 local_root #指定所有用户的家目录。
13 idle_session_timeout #指定会话超时时间,单位:秒
14 data_connection_timeout #指定数据传输超时时间 单位:秒
15 deny_file #不允许上传的文件类型,如 deny_file={*.exe,*.dall}
16 listen_address #指定VSFTPD侦听的IP地址,当VSFTPD有多个IP地址时,可通过该参数让VSFTPD只接受指定的IP地址的请求。
17 listen_port #指定VSFTPD侦听的端口
18 max_clients #VSFTPD允许的最大连接数
19 max_per_ip #允许相同IP的最大连接数。
实例
如一个FTP服务器,允许student1,student2登录,不允许student3登录,只允许192.168.0.0/24网段登录。
echo 'student1' >> /etc/vsftpd/chroot_list
echo 'student2' >> /etc/vsftpd/chroot_list
echo 'student3' >> /etc/vsftpd/ftpusers
vim /etc/hosts.allow 加入如下内容
vsftpd:192.168.0.0/255.255.255.0
vim /etc/hosts.deny加入如下内容
vsftpd:ALL