CentOS系统中使用iptables设置端口转发

广告也精彩

  之前写过一篇Haproxy下的转发,但Haproxy无法转发udp数据,所以这次使用iptables来转发tcp和udp的数据,首先我们来看一下数据包的走向

+--------+        +--------+        +--------+
|        | <--D-- |        | <--C-- |        |
|  用户  |        | 中转机 |        | 目标    |
|        | --A--> |        | --B--> |        |
+--------+        +--------+        +--------+

A: 用户发出加密请求到SSS服务器
B: SSS服务器解密请求后转发到目标服务器
C: 目标服务器回应SSS服务器
D: SSS服务器加密回应返回给用户然后解密后使用

清空相关规则

加载相关的内核模块

/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

清除预设表 filter 中,所有规则链中的规则

/sbin/iptables -F

清除nat表中,所有规则链中的规则

/sbin/iptables -F -t nat

清除预设表 filter 中,使用者自订链中的规则

/sbin/iptables -X

将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具

/sbin/iptables -Z

清除mangle表中,所有规则链中的规则

iptables -F -t mangle

清除mangle表中,使用者自订链中的规则

iptables -t mangle -X

清除nat表中,使用者自订链中的规则

iptables -t nat -X

定义链的规则(设定预设规则)

/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT

打开 forward 功能 (或在/etc/sysconfig/network 中添加 FORWARD_IPV4=yes 打开转发功能,实现各网段互访)

echo "1"> /proc/sys/net/ipv4/ip_forward

配置iptables转发

iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -A FORWARD -s 1.1.1.1 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 10000:20000 -j DNAT --to-destination 1.1.1.1:10000-20000
iptables -t nat -A PREROUTING -p udp --dport 10000:20000 -j DNAT --to-destination 1.1.1.1:10000-20000
iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 10000:20000 -j SNAT --to-source 2.2.2.2
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 10000:20000 -j SNAT --to-source 2.2.2.2
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

然后继续下面的操作

###重要说明###
1.1.1.1 为目标服务器的IP地址
10000:20000  需要转发的端口范围
2.2.2.2 本机服务器的IP(也就是中转机)
最后面两条是ssh的端口,根据你自己使用的ssh端口进行添加
---------------------------------------------------
然后保存和重启iptables以及添加开机启动
保存:service iptables save
重启:service iptables restart
开机启动:chkconfig iptables on

iptables转发的配置也就这么多,写这些步骤的目的只是为了让大家明白原理,下面贴出脚本下载地址:

wget --no-check-certificate https://soft.gaomingsong.com/iptables/iptables.sh

此脚本并非是一键脚本,下载后对照上面的说明,使用vim修改里面的IP地址以及端口,修改完以后保存,然后执行:bash iptables.sh

您可以选择一种方式赞助本站

    A+
发布日期:2016年07月10日  所属分类:未分类
标签:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: