公司iptables配置(eMule, nat, forward, input, output, state)
公司iptables配置如下:
這里是公司目前iptables的配置(eth0是內(nèi)網(wǎng),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
#p#
這份配置中,配置了nat,eMule,還有forward,input等,這些都不說(shuō)了,很好理解,關(guān)鍵有一句:
-A INPUT -m state --state ESTABLISHED -j ACCEPT
這句很重要,如果不加這句,路由本機(jī)就無(wú)法上網(wǎng),甚至無(wú)法訪問(wèn)內(nèi)網(wǎng)。因?yàn)槲覀冊(cè)诼酚杀緳C(jī)上加了INPUT的限制,而且由于-P INPUT DROP這一句,我們把默認(rèn)的沒(méi)有定義的所有INPUT類型的包全部丟棄,所以產(chǎn)生的問(wèn)題是,本機(jī)如果要訪問(wèn)內(nèi)網(wǎng)的一臺(tái)機(jī)器,或是外網(wǎng)的一臺(tái)機(jī)器,那么OUTPUT沒(méi)有問(wèn)題,問(wèn)題是別人的數(shù)據(jù)返回的時(shí)候,是INPUT類型的包,這種包就會(huì)被DROP,這就導(dǎo)致了路由本機(jī)無(wú)法上網(wǎng),甚至無(wú)法訪問(wèn)內(nèi)網(wǎng)的問(wèn)題。
所以,這里加了這么一句,非常有用,指的就是如果是已經(jīng)ESTABLISHED的鏈接,那么INPUT一概放行。
其實(shí)本來(lái)不用加這句,因?yàn)槁酚杀緳C(jī)很少我們直接上去操作,但是后來(lái)公司架設(shè)了一個(gè)DNS服務(wù)器,這樣所有的服務(wù)器就不用維護(hù)本機(jī)的/etc/hosts了,改成向DNS服務(wù)器取解析信息,所以,當(dāng)局域網(wǎng)內(nèi)的機(jī)器訪問(wèn)路由機(jī)器的時(shí)候,路由機(jī)器就會(huì)向DNS服務(wù)器要局域網(wǎng)內(nèi)機(jī)器的IP和主機(jī)名信息,此時(shí),如果沒(méi)有這樣一個(gè)配置,那么路由機(jī)器是無(wú)法訪問(wèn)到DNS服務(wù)器的(DNS服務(wù)器也是內(nèi)網(wǎng)的一臺(tái)機(jī)器),這樣就直接導(dǎo)致了局域網(wǎng)內(nèi)機(jī)器訪問(wèn)路由機(jī)器非常非常的慢(公司的路由機(jī)器開了samba服務(wù)),所以,這個(gè)配置是必須的。
其他的代碼都很好理解。對(duì)lo的兩句配置是放開對(duì)127.0.0.1的訪問(wèn)。
記得,要使用iptables做網(wǎng)關(guān),記得把
echo "1" > /proc/sys/net/ipv4/ip_forward
放到/etc/rc.local中
通過(guò)文章的描述,我們清楚的知道了公司iptables配置的全過(guò)程,希望對(duì)大家有幫助!
【編輯推薦】