通州北大青鳥(niǎo)校區(qū)學(xué)術(shù)部老師提供:
擴(kuò)展閱讀:
通州北大青鳥(niǎo)校區(qū):Linux的iptables入門(mén)教程--設(shè)置靜態(tài)防火墻之一
通州北大青鳥(niǎo)校區(qū):Linux的iptables入門(mén)教程--設(shè)置靜態(tài)防火墻 之二
8、復(fù)雜嗎?到此iptables可以按你的要求進(jìn)行包過(guò)濾了。你可以再設(shè)定一些端口,允許你的機(jī)器訪問(wèn)這些端口。這樣有可能,你不能訪問(wèn)QQ,也可能不能打網(wǎng)絡(luò)游戲,是好是壞,還是要看你自己而定了。順便說(shuō)一下,QQ這個(gè)東西還真是不好控制,用戶(hù)與服務(wù)器連接使用的好像是8888端口,而QQ上好友互發(fā)消息使用的又是udp的4444端口(具體是不是4444還不太清楚)。而且QQ還可以使用www的80端口進(jìn)行登錄并發(fā)消息,看來(lái)學(xué)無(wú)止境,你真的想把這個(gè)家伙控制住還不容易呢?還是進(jìn)入我們的正題吧。(通州北大青鳥(niǎo)校區(qū))
如果你的機(jī)器是服務(wù)器,怎么辦?
9、如果不巧你的機(jī)器是服務(wù)器,并且要提供www服務(wù)。顯然,以上的腳本就不能符合我們的要求了。但只要你撐握了規(guī)則,稍作修改同樣也能很好的工作。在最后面加上一句
iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT
這一句也就是將自己機(jī)器上的80端口對(duì)外開(kāi)放了,這樣internet上的其他人就能訪問(wèn)你的www了。當(dāng)然,你的www服務(wù)器得工作才行。如果你的機(jī)器同時(shí)是smtp和pop3服務(wù)器,同樣的再加上兩條語(yǔ)句,將--dport后面的80改成25和110就行了。如果你還有一個(gè)ftp服務(wù)器,呵呵,如果你要打開(kāi)100個(gè)端口呢……
我們的工作好像是重復(fù)性的打入類(lèi)似的語(yǔ)句,你可能自己也想到了,我可以用一個(gè)循環(huán)語(yǔ)句來(lái)完成,對(duì),此處可以有效的利用shell腳本的功能,也讓你體驗(yàn)到了shell腳本語(yǔ)言的威力。看下文:(通州北大青鳥(niǎo)校區(qū))
10、用腳本簡(jiǎn)化你的工作,閱讀下面的腳本. (通州北大青鳥(niǎo)校區(qū))
#!/bin/bash
# This is a script
# Edit by liwei
# establish a static firewall
# define const here(通州北大青鳥(niǎo)校區(qū))
Open_ports="80 25 110 10" # 自己機(jī)器對(duì)外開(kāi)放的端口
Allow_ports="53 80 20 21" # internet的數(shù)據(jù)可以進(jìn)入自己機(jī)器的端口
#init
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT DROP #we can use another method to instead it
iptables -A INPUT -i ! ppp0 -j ACCEPT
# define ruler so that some data can come in.
for Port in "Allow_ports" ; do
iptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT
done
for Port in "Open_ports" ; do
iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT
done
這個(gè)腳本有三個(gè)部分(最前面的一段是注釋?zhuān)凰阍谶@三部分中)(通州北大青鳥(niǎo)校區(qū))
第一部分是定義一些端口:訪問(wèn)你的機(jī)器"Open_ports"端口的數(shù)據(jù),允許進(jìn)入;來(lái)源是"Allow_ports"端口的數(shù)據(jù),也能夠進(jìn)入。(通州北大青鳥(niǎo)校區(qū))
第二部分是iptables的初始化,第三部分是對(duì)定義的端口具體的操作。(通州北大青鳥(niǎo)校區(qū))
如果以后我們的要求發(fā)生了一些變化,比如,你給自己的機(jī)器加上了一個(gè)ftp服務(wù)器,那么只要在第一部分"Open_ports"的定義中,將ftp對(duì)應(yīng)的20與21端口加上去就行了。呵呵,到此你也一定體會(huì)到了腳本功能的強(qiáng)大的伸縮性,但腳本的能力還遠(yuǎn)不止這些呢!(通州北大青鳥(niǎo)校區(qū))(未完待續(xù))