公司iptables配置(eMule, nat, forward, input, output, state)
2010-12-11 14:08
330 查看
这里是公司目前iptables的配置(eth0是内网,eth1接ADSL):
# Generated by iptables-save v1.2.8 on Sun Nov 25 16:13:01 2007
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i ppp0 -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 123 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 139 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 445 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 123 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 123 -j ACCEPT
COMMIT
# Completed on Sun Nov 25 16:13:01 2007
# Generated by iptables-save v1.2.8 on Sun Nov 25 16:13:01 2007
*nat
:PREROUTING ACCEPT [3:162]
:POSTROUTING ACCEPT [1:108]
:OUTPUT ACCEPT [1:108]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 7559 -j DNAT --to-destination 192.168.0.10:7559
-A PREROUTING -i ppp0 -p udp -m udp --dport 7569 -j DNAT --to-destination 192.168.0.10:7569
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 28145 -j DNAT --to-destination 192.168.0.10:28145
-A PREROUTING -i ppp0 -p udp -m udp --dport 28145 -j DNAT --to-destination 192.168.0.10:28145
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Sun Nov 25 16:13:01 2007
这份配置中,配置了nat,eMule,还有forward,input等,这些都不说了,很好理解,关键有一句:
-A INPUT -m state --state ESTABLISHED -j ACCEPT
这句很重要,如果不加这句,路由本机就无法上网,甚至无法访问内网。因为我们在路由本机上加了INPUT的限制,而且由于-P INPUT DROP这一句,我们把默认的没有定义的所有INPUT类型的包全部丢弃,所以产生的问题是,本机如果要访问内网的一台机器,或是外网的一台机器,那么OUTPUT没有问题,问题是别人的数据返回的时候,是INPUT类型的包,这种包就会被DROP,这就导致了路由本机无法上网,甚至无法访问内网的问题。
所以,这里加了这么一句,非常有用,指的就是如果是已经ESTABLISHED的链接,那么INPUT一概放行。
其实本来不用加这句,因为路由本机很少我们直接上去操作,但是后来公司架设了一个DNS服务器,这样所有的服务器就不用维护本机的/etc/hosts了,改成向DNS服务器取解析信息,所以,当局域网内的机器访问路由机器的时候,路由机器就会向DNS服务器要局域网内机器的IP和主机名信息,此时,如果没有这样一个配置,那么路由机器是无法访问到DNS服务器的(DNS服务器也是内网的一台机器),这样就直接导致了局域网内机器访问路由机器非常非常的慢(公司的路由机器开了samba服务),所以,这个配置是必须的。
其他的代码都很好理解。对lo的两句配置是放开对127.0.0.1的访问。
记得,要使用iptables做网关,记得把
echo "1" > /proc/sys/net/ipv4/ip_forward
放到/etc/rc.local中
# Generated by iptables-save v1.2.8 on Sun Nov 25 16:13:01 2007
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i ppp0 -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 123 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 139 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 445 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 123 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 123 -j ACCEPT
COMMIT
# Completed on Sun Nov 25 16:13:01 2007
# Generated by iptables-save v1.2.8 on Sun Nov 25 16:13:01 2007
*nat
:PREROUTING ACCEPT [3:162]
:POSTROUTING ACCEPT [1:108]
:OUTPUT ACCEPT [1:108]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 7559 -j DNAT --to-destination 192.168.0.10:7559
-A PREROUTING -i ppp0 -p udp -m udp --dport 7569 -j DNAT --to-destination 192.168.0.10:7569
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 28145 -j DNAT --to-destination 192.168.0.10:28145
-A PREROUTING -i ppp0 -p udp -m udp --dport 28145 -j DNAT --to-destination 192.168.0.10:28145
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Sun Nov 25 16:13:01 2007
这份配置中,配置了nat,eMule,还有forward,input等,这些都不说了,很好理解,关键有一句:
-A INPUT -m state --state ESTABLISHED -j ACCEPT
这句很重要,如果不加这句,路由本机就无法上网,甚至无法访问内网。因为我们在路由本机上加了INPUT的限制,而且由于-P INPUT DROP这一句,我们把默认的没有定义的所有INPUT类型的包全部丢弃,所以产生的问题是,本机如果要访问内网的一台机器,或是外网的一台机器,那么OUTPUT没有问题,问题是别人的数据返回的时候,是INPUT类型的包,这种包就会被DROP,这就导致了路由本机无法上网,甚至无法访问内网的问题。
所以,这里加了这么一句,非常有用,指的就是如果是已经ESTABLISHED的链接,那么INPUT一概放行。
其实本来不用加这句,因为路由本机很少我们直接上去操作,但是后来公司架设了一个DNS服务器,这样所有的服务器就不用维护本机的/etc/hosts了,改成向DNS服务器取解析信息,所以,当局域网内的机器访问路由机器的时候,路由机器就会向DNS服务器要局域网内机器的IP和主机名信息,此时,如果没有这样一个配置,那么路由机器是无法访问到DNS服务器的(DNS服务器也是内网的一台机器),这样就直接导致了局域网内机器访问路由机器非常非常的慢(公司的路由机器开了samba服务),所以,这个配置是必须的。
其他的代码都很好理解。对lo的两句配置是放开对127.0.0.1的访问。
记得,要使用iptables做网关,记得把
echo "1" > /proc/sys/net/ipv4/ip_forward
放到/etc/rc.local中
相关文章推荐
- IPTABLES的一个配置实例 LINUX下实NAT和PAT
- centos7 && centos6.5部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发
- iptables配置——NAT端口转换--(1)
- 烂泥:KVM使用NAT联网并为VM配置iptables端口转发
- IPtables之四:NAT原理和配置
- NAT介绍及iptables配置NAT的方法
- 一个使用iptables配置NAT的实例
- redHat 9上用iptables做NAT网关(有很多详细的网络配置参数)
- 乌邦图ubuntu配置iptables的NAT上网
- 理解input、output、forward与禁止ping
- 利用脚本自动配置iptables的NAT端口映射
- 使用iptables发布公司内部服务器及DNS视图配置
- NAT介绍及iptables配置NAT的方法
- Struts源码阅读心得之inputForward配置篇
- iptables之filter(inout,output,forward)
- 使用iptables配置目的NAT
- 配置iptables NAT端口转发 实现内网服务器端口提供公网接入
- NAT介绍及iptables配置NAT的方法
- Linux的iptables下的NAT配置
- NAT介绍及iptables配置NAT的方法