vsftp 被动模式配置
直接复制粘切过来就能用 这里只讲下配置,安装方法可以直接yum 配置文件修改 anonymous_enable=NO #关闭匿名用户 xferlog_file=/var/log/vsftpd.log #打开日志 idle_session_timeout=60 data_connection_timeout=3600 chroot_local_user=YES chroot_list_enable=YES guest_enable=YES guest_username=vftpuser user_config_dir=/etc/vsftpd/vsftpd_user_conf ssl_enable=YES force_local_data_ssl=YES force_local_logins_ssl=NO ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem pasv_enable=yes #开启被动模式 pasv_min_port=3000 #最小端口 pasv_max_port=3030 #最大端口 pasv_promiscuous=YES 创建 /etc/vsftpd/vsftpd_user_conf 目录 PAM验证 SSL加密 /etc/pam.d/vsftpd #添加pam 验证模块内容如下 #%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth auth required pam_userdb.so db=/etc/vsftpd/login account required pam_userdb.so db=/etc/vsftpd/login 创建证书 #mkdir /etc/vsftpd/.sslkey //建立存放证书的目录 #cd /etc/vsftpd/.sslkey //进入该目录以备建立证书 #openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem //生成证书,Common Name必须是客户端访问FTP服务器时的FQDN.#写本机ip #chmod -R 400 /etc/vsftpd/.sslkey //保证证书安全,修改证书目录的权限。 在/etc/vsftpd/vsftpd.conf配置文件中添加:#上面配置文件已经加过 ssl_enable=YES ssl_sslv2=YES ssl_sslv3=YES ssl_tlsv1=YES force_local_logins_ssl=YES force_local_data_ssl=YES rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem 添加 iptables 如果未启用iptables 可以不加 iptables -I INPUT -p tcp –dport 21 -j ACCEPT iptables -I INPUT -p tcp -m multiport –dport 3000:3030 -j ACCEPT #service vsftpd restart 创建用户 创建 touch /etc/vsftpd/login.txt 添加用户密码到login.txt 格式如图
添加用户 db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
test 用户配置文件示例 创建 test 文件 mkdir /etc/vsftpd/vsftpd_user_conf/test 内容如下 write_enable=YES anon_umask=022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/home/fan #service vsftpd restart 配置完成!
常见问题
1 、vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
这个问题发生在最新的这是由于下面的更新造成的:
- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES
2 、500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp
vsftpd.conf中加入了ftp_username=xxx(用户)这一行。而且这个ftp_username的缺省用户应该是ftp,但是系统缺省安装后并没有这个ftp用户存在,而且vsftpd安装后也没有添加这个用户。
3 、500 OOPS: vsftpd: both local and anonymous access
500 OOPS: vsftpd: both local and anonymous access disabled!
Connection closed by remote host.
解决办法
[root@localhost etc]# vi /etc/vsftpd/vsftpd.conf //修改vsftpd.conf文件
local_enable=YES //把NO修改为YES
[root@localhost etc]# service vsftpd restart //重新启动ftp服务器