redhat企业版5.0安装时选择了FTP,但默认不随着系统启动。可以运行:#service vsftpd start 启动FTP服务,也可以运行ntsysv命令管理服务,将vsftpd设为随系统启动。 vsftpd用户配置 添加用户ftpuser,用户目录指定为/var/www/ftpuser,且此用户不能登陆系统. #mkdir /var/www/ftpuser #useradd -s /sbin/nologin -d /var/www/ftpuser ftpuser #passwd ftpuser #chown -R ftpuser:ftpuser /var/www/ftpuser
配置相关文档: #vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO // 禁止匿名用户访问 pasv_enable=YES //允许被动模式 pasv_min_port=10000 //被动模式使用端口范围 pasv_max_port=10010 //使用防火墙时需要配置,否则无法传输数据 local_max_rate=200000 //用户宽带限制 chroot_local_user=YES //禁用户离开主目录 listen_port=21 //端口号,可修改为其它
其它保持默认,基本上FTP可以使用了。FTP通过userlist文件进行用户登录许可,vsftpd.conf有下面三行: userlist_enalbe=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list
userlist_deny=NO时使用白名单方式过滤用户,只有存在于user_list中的账号才允许登录ftp。userlist_deny=YES是使用黑名单方式过滤用户,拒绝user_list中的账号登录ftp。 我将userlist_deny设为NO,然后修改user_list文件,删除所有默认用户名,再输入新加的用户名ftpuser —————– 在FTP使用时,能连接并登录成功,但却遇到cannot change directory错误,因为是selinux关闭FTP的原因,使用命令 #getsebool ftpd_disable_trans 可以查看当前的状态,如果不是on 那么是输入命令 #setsebool ftpd_disable_trans 1 当然也可以加入-P参数 以便不需要每次开机都输入这个命令 —————– ftp上来显示的时间与系统时间不一致,因为默认情况下,vsftpd 是用GMT做为它的时间的,所以和系统的时间可能会不一致 #vi /etc/vsftpd/vsftpd.conf 在最后加入一行: use_localtime=YES 存盘后,重启vsftpd: #service vsftpd restart —————– 给vsftpd添加设置SSL安全传输 使用命令whereis openssl发现已安装SSL,所以就未进行安装部份,直接进入下面创建证书: #openssl req -new -x509 -nodes -out /etc/vsftpd/vsftpd.pem -keyout /etc/vsftpd/vsftpd.pem 按步骤填写相关内容后,生成vsftpd.pem证书 修改vsftpd.conf文件,加入一些内容: ssl_enable=YES ssl_sslv2=YES force_local_data_ssl=YES force_local_logins_ssl=YES //上面两行表示强制非匿名用户使用加密登陆和数据传输,如果设定为NO,则用户可以选择加密,也可以不加密。 rsa_cert_file=/etc/vsftpd/vsftpd.pem
重起vsftpd即可。 —————– 简单说下防火墙为FTP放行的配置: #vi /etc/sysconfig/iptables 进去后可看到iptables的规则配置,如果里面有: -A RH-Fireware-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT 表示允许FTP连接端口,建议将被动模式端口范围通通加进来,以免影响使用: -A RH-Fireware-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT -A RH-Fireware-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
|