linux下使用iptables NAT上网
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-22
1、linux下使用iptables NAT上网
linux# vi /root/iptables_nat.sh
#echo "Starting kerryhu-iptables rules..." #!/bin/bash # BY kerryhu # QQ:263205768 # MAIL:king_819@163.com # BLOG:http://kerry.blog.51cto.com #this is a common firewall created by 2010-3-22 #启用内核ip转发 echo 1 > /proc/sys/net/ipv4/ip_forward #加载需要的模块 modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp #define some variable IPT=/sbin/iptables LAN="192.168.0.0/24" WAN="222.118.115.55" DNS="61.177.7.1:53" #Remove any existing rules $IPT -F $IPT -t nat -F #setting default firewall policy $IPT -P FORWARD DROP $IPT -P INPUT DROP $IPT -P OUTPUT DROP #setting for loopback interface $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT #外面53端口的UDP数据进来 $IPT -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT #允许局域网设置DNS为eth1(网关内网IP) iptables -A PREROUTING -t nat -p udp -s $LAN -d 192.168.0.1 --dport 53 -j DNAT --to-destination $DNS #允许局域网设置DNS为eth0(网磁外网IP) iptables -A PREROUTING -t nat -p udp -s $LAN -d $WAN --dport 53 -j DNAT --to-destination $DNS # Stealth Scans and TCP State Flags # All of the bits are cleared $IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP # SYN and FIN are both set $IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP # SYN and RST are both set $IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP # FIN and RST are both set $IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP # FIN is the only bit set, without the expected accompanying ACK $IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP # PSH is the only bit set, without the expected accompanying ACK $IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP # URG is the only bit set, without the expected accompanying ACK $IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP #允许外网访问里面 $IPT -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #允许外网访问本机 $IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #允许内网访问本机 $IPT -A INPUT -i eth1 -p tcp -s $LAN --dport 22 -j ACCEPT #$IPT -A INPUT -i eth1 -p tcp -s 192.168.0.23 -m mac --mac-source 00:00:F0:71:23:60 --dport 22 -j ACCEPT $IPT -A INPUT -i eth1 -s $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT #允许本机访问内网 $IPT -A OUTPUT -o eth1 -d $LAN -j ACCEPT #允许外面的UDP数据进来 #$IPT -A INPUT -i eth0 -p udp -j ACCEPT #允许本机上网(如果专作服务器就可以不要) #时钟同步 $IPT -A OUTPUT -o eth0 -d 192.43.244.18 -j ACCEPT #允许ping出 $IPT -A OUTPUT -o eth0 -p icmp -j ACCEPT $IPT -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT $IPT -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT $IPT -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #允许内网外出 #$IPT -A FORWARD -p tcp -s $LAN -j ACCEPT #允许内网外出(只允许访问外网的80、53端口) $IPT -A FORWARD -p tcp -s $LAN --dport 80 -j ACCEPT $IPT -A FORWARD -p udp -s $LAN --dport 53 -j ACCEPT $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #内网外出实现IP MAC绑定 #$IPT -A FORWARD -s 192.168.0.23 -m mac --mac-source 00:00:F0:71:2 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于linux下使用iptables NAT上网的所有评论