Vsftp是very Secure FTP,安全的ftp软件
1.工作模式
vs的模式分为,主动ftp工作模式(acive mode)与被动工作模式(passive mode)
pasv_enable=YES 开启
1.1安装与管理vsftpd
#yum install -y vsftpd
#systemctl start vsftpd
#systemctl enable vsftpd
#vim /etc/vsftpd/vsftpd.conf #配置文件
错误Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.
修改文件后
#注释listen_ipv6=NO就可以了
1.2创建账户和测试文件
1.2.1创建用户
#useradd tom
#useradd jerry
#useradd smith
#echo 123456| passwd --stdin tom,jerry,smith
#touch /home/{tom,jerry,smith}/test.txt
1.2.2常见问题
- 关闭selinux ,关闭防火墙,启动vsftpd,开机自启动vsftp
- 用户访问问题
错误:vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
说明:vsftpd2.3.5版本的以后出现
解决1:用命令chmod 755 /home/user 去除用户主目录的写权限,注意把user目录替换成你如(tom,jerry,smith)自己的。
解决2:或者你可以在vsftpd的配置文件中增加下列一项:
allow_writeable_chroot=YES
1.3被动模式+本地用户 配置详解
#####编辑配置文件
#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
listen=YES
pam_service_name=vsftpd
chroot_local_user=YES
xferlog_std_format=YES
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=5000
pasv_max_port=6000
#######用户加入登录用户名单
#vim /etc/vsftpd/user_list
tom
jerry
smith
#firewall-cmd防火墙开启5000-6000
#firewall-cmd --zone-public --add-port=5000-600/tcp --permanent
#firewall-cmd --reload
#firewall-cmd --list-all
1.3被动模式+虚拟用户 配置详解
db_load工具转换为数据库文件,需要下载。
过程说明:创建密码明文文件vlogin;使用db_load进行数据加密;密码文件权限修改;配置pam文件路径;虚拟用户的具体权限设置
#####下载加密工具
#yum install -y libdb_utils pam* libdb* --skip-brpken -y
#####虚拟用户文件 用户/密码
#vim /etc/vstfpd/vlogin
Tomcat
123456
Jerry
123456
#####明文加密
#db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db
####赋权
#chmod 600 /etc/vsftpd/{vlogin,vlogin.db}
#####pam配置文件
#vim /etc/pam.d/vsftpd.pam
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
###添加一个用户(此用户是所有虚拟用户对应的唯一本地用户,必须有)
#useradd -s /sbin/nologin -d /home/ftp virtual
#cp /etc/redhat-release /home/ftp/
#vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.pam
userlist_enable=YES
userlist_deny=NO
user_config_dir=/etc/vsftpd_user_conf
user_sub_token=$USER
anonymous_enable=NO
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=10000
pasv_min_port=50000
####加入准许
#vim /etc/vsftpd/user_list
Tomcat
####虚拟用户具体权限配置
# mkdir /etc/vsftpd_user_conf
#mkdir -p /home/ftp/tomcat
#vim /etc/vsftpd_user_conf/tomcat
write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=yes
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/home/ftp/$USER
#####虚拟用户的登录本地目录
#mkdir /home/ftp/Tomcat
#chown -R virtual.virtual /home/ftp/
#chmod -R 755 /home/ftp
1.4 ftp测试
###本地ftp测试连接
#yum install -y ftp
#ftp 本地ip