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
联系客服