Chinaunix首页 | 论坛 | 博客
  • 博客访问: 876616
  • 博文数量: 275
  • 博客积分: 3904
  • 博客等级: 中校
  • 技术积分: 4605
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-17 21:10
文章分类

全部博文(275)

文章存档

2014年(9)

2013年(124)

2012年(142)

分类: LINUX

2012-05-09 19:59:19

网络环境:

网关:

外网IP:172.20.4.35

内网IP:192.168.10.10

 

FTP服务器:

IP:192.168.10.30

FTP服务器没有使用默认连接端口号21,而是使用端口号2121,被动端口号:50000-60000

iptables 规则:

#!/bin/bash
#!/bin/bash
# Firewall Script History
# 2009-10-13 liheng

IPT="sudo /sbin/iptables"
WAN1="eth0"
WAN2="eth1"
LAN="eth2"
VPN="tun0"

#Flush Iptables rule chain
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# Zero Iptables rule chain
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z

# Settup Iptables default policy
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

#Allow loopback traffic
$IPT -A INPUT -i lo -j ACCEPT

$IPT -t nat -A PREROUTING -i $WAN1 -p tcp --sport 1024:65535 -d 172.20.4.35 --dport 2121 -j DNAT --to-destination 192.168.10.30
$IPT -t nat -A PREROUTING -i $WAN1 -p tcp --sport 1024:65535 -d 172.20.4.35 --dport 20 -j DNAT --to-destination 192.168.10.30
$IPT -t nat -A PREROUTING -i $WAN1 -p tcp --sport 1024:65535 -d 172.20.4.35 --dport 50000:60000 -j DNAT --to-destination 192.168.10.30

$IPT -t nat -A POSTROUTING -d 192.168.10.30 -p tcp --dport 2121 -j SNAT --to 192.168.10.10
$IPT -t nat -A POSTROUTING -d 192.168.10.30 -p tcp --dport 20 -j SNAT --to 192.168.10.10
$IPT -t nat -A POSTROUTING -d 192.168.10.30 -p tcp --dport 50000:60000 -j SNAT --to 192.168.10.10

$IPT -A FORWARD -i $WAN1 -o $LAN -p tcp --sport 1024:65535 -d 192.168.10.30 --dport 39176 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $WAN1 -o $LAN -p tcp --sport 1024:65535 -d 192.168.10.30 --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $WAN1 -o $LAN -p tcp --sport 1024:65535 -d 192.168.10.30 --dport 50000:60000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -i $LAN -o $WAN1 -p tcp --sport 2121 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $LAN -o $WAN1 -p tcp --sport 20 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $LAN -o $WAN1 -p tcp --sport 50000:60000 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT

注:这里有一点需要注意,也就是红色字体标示的位置,之前没有加这几行的时候,NAT总是连接不上内网的FTP服务器,连上的也是报错,错误编 号: 227 Entering Passive Mode (192.168.10.30,105,20),思索很久,始终是不得要领,后查看FTP服务器配置,发现这一 句"connect_from_port_20=YES",想想就将那几行添加上去了,然后再重新加载 ip_nat_ftp ,ip_conntrack_ftp 模块,再加上后面的FTP配置文件的加上两个参数,重启后,果然就可以了.

 

FTP服务器配置:

anonymous_enable=NO
local_enable=YES
local_max_rate=10000000
anon_max_rate=10000000
write_enable=NO
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftp.log
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
pasv_addr_resolve=yes
pasv_address=172.20.4.35
pasv_min_port=50000             
pasv_max_port=60000
guest_enable=YES
guest_username=ftpvirtuer
user_config_dir=/etc/vsftpd/vuser_conf
userlist_enable=YES
tcp_wrappers=YES
listen_port=2121
idle_session_timeout=300
data_connection_timeout=5
accept_timeout=10
connect_timeout=10
use_localtime=YES
max_clients=20
max_per_ip=10

注:

 pasv_addr_resolve=yes        //允许vsftpd去欺骗客户
  pasv_address=172.20.4.35       //让vsftpd以这个地址去欺骗客户
        重启vsftpd后,我们再从客户端测试发现也可以正常使用.

如果没有加上以上两句的话,连接FTP时会报错

 

按以上内容设置后

阅读(1774) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~