centos7 安装配置vsftp – Haswell

安装vsftpd

yum install -y vsftpd
  • 编辑ftp配置文件
vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
#anonymous_enable=YES

chroot_local_user=YES
#去掉前面的注释

#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#不受限制的用户列表,用不用都OK

allow_writeable_chroot=YES
#加上这行解决了无法登陆的问题

启动/重新启动ftp
service vsftpd start
service vsftpd restart
  • 设置开机启动ftp
chkconfig vsftpd on
  • 防火墙配置(iptables)
vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
  • 防火墙重新启动
  • 建立ftp账户
useradd -d /path/you/want -s /sbin/nologin ftpadmin
  • 修改密码
passwd ftpadmin
  • 设置账户权限
chown -R ftpadmin.ftpadmin /path/you/set

http://www.centoscn.com/image-text/install/2015/0227/4748.html

修改iptables防火墙规则解决vsftp登录后不显示文件目录的问题

iptables里面仅仅开放了80、21等常用端口,这样就导致了vsFTPd在被动模式时无法使用随机端口,从而造成了客户端连接FTP时无法列出目录这样的问题。解决方式很简单,给vsFTPd增加随机端口的范围,然后把这个端口范围添加到iptables。
具体做法如下:

1、修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加:

复制代码 代码如下:
pasv_max_port=6666
pasv_min_port=5555
/etc/init.d/vsftpd restart

2、添加一条防火墙规则

复制代码 代码如下:
/etc/init.d/iptables stop
iptables -I INPUT -p tcp –dport 5555:6666 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables start

最后再次进行ftp连接,成功。

第二种方法:

添加附加模块,链接追踪模块

复制代码 代码如下:
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
modprobe ip_conntrack_ftp //临时加载/etc/sysconfig/iptables-config//这个是永久的
IPTABLES_MODULES=”ip_conntrack_netbios_ns ip_conntrack_ftp”service iptables restart

http://www.jb51.net/article/46169.htm

强制ssl

4.编辑配置文件,添加如下行
# vim /etc/vsftpd/vsftpd.conf
添加如下行
# SSL configure
ssl_enable=YES
ssl_tlsv1=YES                            //建议开启这个就行了
ssl_sslv2=NO
ssl_sslv3=NO
allow_anon_ssl=YES                       //匿名用户开启使用ssl
force_local_data_ssl=YES                 //强制数据传输使用加密
force_local_logins_ssl=YES               //强制登录时使用ssl
rsa_cert_file=/etc/vsftpd/ssl/ftp.crt
rsa_private_key_file=/etc/vsftpd/ssl/ftp.key

5.开启vsftpd服务,在客户端就可以使用ssl加密方式访问ftp了
# service vsftpd start

分类: FTPLinux

0 条评论

发表评论