linux下使用iptables NAT上网
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-22
3:60 -j ACCEPT #实现NAT多电脑上网 $IPT -t nat -A POSTROUTING -o eth0 -s $LAN -j SNAT --to $WAN # 将 对于 80、443、21端口的访问 重定向到内网服务器上 #$IPT -t nat -A PREROUTING -i eth0 -d $WAN -p tcp --dport 80 -j DNAT --to 192.168.0.23:80 $IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.23:80 $IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 192.168.0.23:443 $IPT -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.0.23 -j ACCEPT $IPT -A FORWARD -i eth0 -p tcp --dport 443 -d 192.168.0.23 -j ACCEPT #将本机的10010端口映射到内网服务器上的3389端口上 $IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 10010 -j DNAT --to 192.168.0.23:3389 $IPT -A FORWARD -i eth0 -p tcp --dport 3389 -d 192.168.0.23 -j ACCEPT #ftp转发 $IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 192.168.0.24:21 $IPT -A FORWARD -i eth0 -p tcp --dport 21 -d 192.168.0.24 -j ACCEPT $IPT -A FORWARD -i eth0 -s 192.168.0.24 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT $IPT -A FORWARD -i eth0 -s 192.168.0.24 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -o eth0 -d 192.168.0.24 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT chmod x /root/iptables_nat.sh echo "/root/iptables_nat.sh" >> /etc/rc.local 2、iptables批量绑定IP-MAC地址的脚本 通过LanHelper等软件或ARP命令得到 ip_mac.txt 文件格式如下: 172.20.0.3 00:00:F0:71:23:60 172.20.0.6 00:16:76:09:0F:23 172.20.0.10 00:13:8F:26:F9:A6 172.20.0.11 00:16:EC:9A:FF:A9 172.20.0.13 00:14:85:93:26:5A 172.20.0.14 00:13:8F:30:40:7F 172.20.0.16 00:16:EC:26:B6:F4 …… IP地址和MAC地址之间只有一个空格 预设转发包为禁止通过 iptables -P FORWARD DROP 然后再根据绑定MAC机器让他通过转发包 iptables -A FORWARD -s 172.20.0.3 -m mac --mac-source 00:00:F0:71:23:60 -j ACCEPT 写个脚本批量绑定MAC机器,以后有新机器加入的时候只需要在ethers.txt文件中增加就行了. 以下内容为程序代码: cat /root/ip_mac.txt | while read line do iptables -A FORWARD -s ${line% *} -m mac --mac-source ${line#* } -j ACCEPT done 或 以下内容为程序代码: while read sip mac do iptables -A FORWARD -s $sip -m mac --mac-source $mac -j ACCEPT done < /root/ip_mac.txt 或 以下内容为程序代码: tail -f /root/ip_mac.txt | while read sip mac do iptables -A FORWARD -s $sip -m mac --mac-source $mac -j ACCEPT done & 或 以下内容为程序代码: #!/bin/sh arp | while read ip type mac flags iface do echo $ip $mac >> /root/ip_mac.txt done ethers.txt只是做限制iptables转发的例子文件名而已,vi手动添加,只需要添加一次就行了,不要重复. 如果只是简单在网关上面绑定IP和MAC地址防止局域网ARP欺骗,只需要拷贝ip_mac.txt到/root/ ,执行arp -f /root/ip_mac.txt 绑定命令,并把此命令加入到/etc/rc.d/rc.local 中. 3、内网实现NAT代理上网,使用外网地址池 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 222.33.44.50-222.33.44.60 Linux下单网卡绑定多IP(外网接口eth0上绑定多IP) 在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,添加内容如下: DEVICE=eth0:0 IPADDR=222.33.44.51 BROADCAST=222.33.44.25 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于linux下使用iptables NAT上网的所有评论