centos7 在NAT环境下搭建vsftp
2015-10-22 20:15
531 查看
今天收到一个需求,开放服务器的一个目录来上传文件.开始想做个chroot环境,但会产生很多文件(bin,etc等),便放弃了,最终选择用VSFTP.
网络拓扑如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/25/db92e8d0555f98545ed17eb0a74ada35)
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh epel-release-7-5.noarch.rpm
yum install vsftp db4 db4-utils -y
systemctl enable vsftpd
vi /etc/vsftpd/vuser_passwd.txt
生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
确定selinux关闭
mkdir /ftp/www #创建目录
chmod R 755 /ftp
chmod R 777 /ftp/www
ldd `which vsftpd`|grep ssl
生成SSL证书:
openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
chmod 400 vsftpd.pem
cp vsftpd.pem /etc/ssl/certs/
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vuser_conf
chroot_list_file=/etc/vsftpd/vuser_passwd.txt
allow_writeable_chroot=YES
listen_port=2121 #把默认21端口改为其他端口
pasv_enable=YES #使用pasv模式
pasv_min_port=10000
pasv_max_port=10100
pasv_promiscuous=YES
ssl_enable=YES #使用ssl加密
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
配置完成后,启动vsftp
systemctl start vsftpd
vi /etc/sysconfig/iptables,添加如下规则
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2121 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000:10100 -j ACCEPT
在linux网关服务器上做vsftp的NAT映射
nat链添加如下规则
-A PREROUTING -p tcp -d 10.10.10.10 --dport 2121 -j DNAT --to-destination 192.168.1.116
-A PREROUTING -p tcp -d 10.10.10.10 --dport 10000:10100 -j DNAT --to-destination 192.168.1.116
-A POSTROUTING -p tcp -m tcp -s 192.168.1.116 --sport 20 -j SNAT --to 10.10.10.10
-A POSTROUTING -p tcp -m tcp -s 192.168.1.116 --sport 2121 -j SNAT --to 10.10.10.10
-A POSTROUTING -p tcp -m tcp -s 192.168.1.116 --sport 10000:10100 -j SNAT --to 10.10.10.10
配置完成后重启下iptables
下载链接
http://ftp-idc.pconline.com.cn/d31e7654b5f340018866472a9a75e5a9/pub/download/201010/FileZilla_3.14.1_win32.zip
http://www.myhack58.com/Article/sort099/sort0101/2013/37644.htm
http://bbs.chinaunix.net/thread-1448316-1-1.html
网络拓扑如下:
1,安装vsftp,db4,db4-utils
如果没epel源,先添加下wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh epel-release-7-5.noarch.rpm
yum install vsftp db4 db4-utils -y
systemctl enable vsftpd
2.配置虚拟用户给vsftp
添加用户名密码,第一行写用户,第二行写密码vi /etc/vsftpd/vuser_passwd.txt
生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
auth required pam_userdb.so db=
/etc/vsftpd/vuser_passwd
mkdir
/etc/vsftpd/vuser_conf/
3.设置目录权限
确定selinux关闭mkdir /ftp/www #创建目录
chmod R 755 /ftp
chmod R 777 /ftp/www
4.创建SSL证书
查看vsftp是否支持SSL,有libssl.so即可.ldd `which vsftpd`|grep ssl
生成SSL证书:
openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
chmod 400 vsftpd.pem
cp vsftpd.pem /etc/ssl/certs/
5.配置vsftp
配置文件主要内容如下:anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vuser_conf
chroot_list_file=/etc/vsftpd/vuser_passwd.txt
allow_writeable_chroot=YES
listen_port=2121 #把默认21端口改为其他端口
pasv_enable=YES #使用pasv模式
pasv_min_port=10000
pasv_max_port=10100
pasv_promiscuous=YES
ssl_enable=YES #使用ssl加密
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
配置完成后,启动vsftp
systemctl start vsftpd
6.配置防火墙及NAT
在vsftp服务器上开放2121,10000:10100端口vi /etc/sysconfig/iptables,添加如下规则
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2121 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000:10100 -j ACCEPT
在linux网关服务器上做vsftp的NAT映射
nat链添加如下规则
-A PREROUTING -p tcp -d 10.10.10.10 --dport 2121 -j DNAT --to-destination 192.168.1.116
-A PREROUTING -p tcp -d 10.10.10.10 --dport 10000:10100 -j DNAT --to-destination 192.168.1.116
-A POSTROUTING -p tcp -m tcp -s 192.168.1.116 --sport 20 -j SNAT --to 10.10.10.10
-A POSTROUTING -p tcp -m tcp -s 192.168.1.116 --sport 2121 -j SNAT --to 10.10.10.10
-A POSTROUTING -p tcp -m tcp -s 192.168.1.116 --sport 10000:10100 -j SNAT --to 10.10.10.10
配置完成后重启下iptables
7.测试使用
使用ftp工具连接vsftp服务器,比如FileZilla下载链接
http://ftp-idc.pconline.com.cn/d31e7654b5f340018866472a9a75e5a9/pub/download/201010/FileZilla_3.14.1_win32.zip
8.参考
http://www.pythontab.com/html/2014/linuxkaiyuan_0722/832.htmlhttp://www.myhack58.com/Article/sort099/sort0101/2013/37644.htm
http://bbs.chinaunix.net/thread-1448316-1-1.html
相关文章推荐
- 小心服务器内存居高不下的元凶--WebAPI服务
- 运维入门
- Centos6 编译安装Python
- 硬盘安装CentOS 6.2以及添加GRUB启动菜单
- 详解vsftpd搭建ftp和ftps
- CentOS 6.2实战部署Nginx+MySQL+PHP
- Vsftpd 虚拟用户实现公司各部门文件的上传下载
- CentOS 7系统配置上的变化解析
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- 服务器监控策略浅谈
- 如何降低服务器采购成本 原理分析
- 建议的服务器分区办法
- 服务器托管六大优势分析
- Erlang实现的一个Web服务器代码实例