配置Linux 内核并利用iptables 做端口映射(1)(2)
查看 iptables 规则定义:
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp – anywhere 192.168.1.100 tcp dpt:11101 to:192.168.2.101:22
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ip_forward
除此之外,需要在主机上打开 ip 转发以保持连接通道。
查看是否已打开 ip 转发(1 表示打开):
cat /proc/sys/net/ipv4/ip_forward
如果未打开,则用以下命令打开:
echo 1 > /proc/sys/net/ipv4/ip_forward
保存设置
以上 iptables 设置和 ip 转发设置在重启系统之后就会消失,因此如果有需要,请将设置保存。
保存 iptables 设置:
/etc/init.d/iptables save
设置系统启动时自动加载 iptables 设置(以 gentoo 为例):
rc-update add iptables default
保存 ip_forward 设置(在 /etc/sysctl.conf 中设置):
net.ipv4.ip_forward = 1
安全隐患
在打开了 ip_forward 后,一般要同时打开 rp_filter (Reverse Path filter),对数据包的源地址进行检查。
如果在没有打开这个设置,就很容易受到来自内部网的 IP 欺骗。
打开 rp_filter:
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done
保存设置(在 /etc/sysctl.conf 中设置):
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
测试
ssh root@192.168.1.100 -p 11101
看看是不是能够连接到 192.168.2.101 主机上了?
通过上文的描述,我们清楚的知道了配置Linux内核和利用iptables 做端口映射的具体过程,希望对大家有帮助!
- iptables映射端口具体操作
- 用iptables做地址映射
- linux下清空所有iptables规则
- 如何清空其中一条iptables规则
- 如何清空iptables规则
- 如何保存iptables配置
- 保存iptables的防火墙规则的方法
评论暂时关闭