vsftpd简介
vsftpd是一个基于GPL发布的类UNIX系统的ftp服务器软件.其全称是Very Secure FTP Deamon,在安全性,速度和稳定性都有着不俗的表现.在安全性方面,vsftpd 针对程序的权限 来设计,以一般身份启动服务,对 Linux 系统的使用权限较低 。
vsftpd安装
# yum -y install vsftpd
安装虚拟用户数据库和相关文件
# yum -y install db4 db4-utils db4-devel
添加虚拟映射账户
所有虚拟账户最终都需要映射到一个真实系统账户并在其家目录活动,所以我们需要添加一个真实账户,并设置家目录。
# groupadd -g 800 GLPJDE
# useradd -s /sbin/nologin -g 800 -u 800 -d /user/share/LEASE/lease-vsftp/GLPJDE GLPJDE
添加虚拟账户和密码
# vi /etc/vsftpd/virtual_login
VGLPJDE #奇数行为用户名
Xxxxx #偶数行为密码
创建虚拟用户验证文件
# db_load -T -t hash -f /etc/vsftpd/virtual_login /etc/vsftpd/virtual_login.db
# chmod 600 /etc/vsftpd/{virtual_login,virtual_login.db}
修改vsftpd虚拟用户校验文件
# vi /etc/pam.d/vsftpd
把原来的文件里面的内容都注释,添加以下两行:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login
修改vsftpd的配置文件
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=000
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
listen_port=21
pam_service_name=/etc/pam.d/vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=GLPJDE
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20010
user_config_dir=/etc/vsftpd/vconf
user_sub_token=$USER
部分参数解释:
1. anonymous_enable=NO 不允许匿名登录
2. local_umask=000 文件属性为777
3.pam_service_name=/etc/pam.d/vsftpd 虚拟用户校验文件
4.guest_enable=YES 开启虚拟用户
5.guest_username=GLPJDE 虚拟用户映射系统用户名
6.user_config_dir=/etc/vsftpd/vconf 虚拟用户配置文件
7.pasv_enable=YES 开启pasv传输模式
8.user_sub_token=$USER 使用的虚拟用户
9.user_config_dir=/etc/vsftpd/vconf 虚拟用户的配置文件目录
创建配置虚拟用户的目录
# mkdir /etc/vsftpd/vconf
# vi /etc/vsftpd/vconf/VGLPJDE
local_root=/user/share/LEASE/lease-vsftp/GLPJDE
anon_mkdir_write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_other_write_enable=YES
参数解释:
local_root=虚拟用户活动目录
anon_mkdir_write_enable=允许创建目录文件
anon_world_readable_only=允许读
anon_upload_enable=允许更新
anon_other_write_enable=允许操作活动目录下的其他目录
重启vsftpd服务
# service vsftpd restart
SLB代理vsftpd
将vsftpd主被动的端口都添加到SLB上,例如:
然后就可以通过SLB访问ftp服务。
ECS代理vsftpd
利用Linux系统里的iptables做代理转发。
iptables -t nat -A PREROUTING -d 172.16.6.161 -p tcp -m tcp --dport 21 -j DNAT --to-destination 172.16.6.129:21
iptables -t nat -A PREROUTING -d 172.16.6.161 -p tcp -m tcp --dport 20 -j DNAT --to-destination 172.16.6.129:20
iptables -t nat -A POSTROUTING -d 172.16.6.129 -p tcp --dport 21 -j MASQUERADE
iptables -t nat -A POSTROUTING -d 172.16.6.129 -p tcp --dport 20 -j MASQUERADE
iptables -t nat -A PREROUTING -d 172.16.6.161 -p tcp -m tcp --dport 20000:20999 -j DNAT --to-destination 172.16.6.129:21
iptables -t nat -A POSTROUTING -d 172.16.6.129 -p tcp --dport 20000:20999 -j MASQUERADE
保存,OK!