iptables nat下的ftp配置
一台现网上跑的vsftp服务器,本身只给局域网内的服务器使用,不过因为需求的变更,想通过公网也能进行访问。而该主机由于没有公网IP,只能在nat上进行配置。具体访问流程为: |客户机|:::::::::::::::::|LINUX网关|——|VSFTPD服务器| ,而三个服务器对应的IP假设如下:
1客户机的IP: 10.10.10.10/8
2LINUX网关IP: 10.10.10.20/8, 192.168.1.1
3VSFTPD服务器IP: 192.168.1.8/24
服务器的ftp配置文件如下:
1anonymous_enable=NO
2listen=YES
3#listen_port=21
4################set pasv##################
5pasv_enable=YES
6pasv_min_port=9921
7pasv_max_port=9927
8#########################for vuser####################
9guest_enable=YES
10guest_username=www
11pam_service_name=vsftpd.vuser
12user_config_dir=/etc/vsftpd/vsftpd_user_conf
13local_root=/data1
14anon_umask=022
15anon_other_write_enable=YES
16######################################################
17local_enable=YES
18write_enable=YES
19local_umask=022
20anon_upload_enable=NO
21anon_mkdir_write_enable=YES
22dirmessage_enable=YES
23xferlog_enable=YES
24connect_from_port_20=YES
25xferlog_std_format=YES
26userlist_enable=YES
27tcp_wrappers=YES
28log_ftp_protocol=YES
29dual_log_enable=YES
30max_clients=200
31max_per_ip=20
而如果想实现通过公网IP nat连接内网主机的ftp并进行交互的话,需要在iptables上做如下配置。
1、开启转发功能
1echo 1 > /proc/sys/net/ipv4/ip_forward
该处也可以通过/etc/sysctl.conf文件配置为重启后生效。
2、增加如下iptables配置
1iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.8 --sport 20:21 -j SNAT --to 10.10.10.20
2iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.8 --sport 9921:9927 -j SNAT --to 10.10.10.20
3iptables -t nat -A PREROUTING -p tcp -d 10.10.10.20 --dport 21 -j DNAT --to-destination 192.168.1.8
4iptables -t nat -A PREROUTING -p tcp -d 10.10.10.20 --dport 9921:9927 -j DNAT --to-destination 192.168.1.8
配置完成后记得/etc/init.d/iptables save 保存配置。
关于ftp nat转发的原理,可以参看网上的一篇 E文 文章 。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/ftp-iptables-nat/2613.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.