slackware-10.1 下 adsl 撥號上網的 iptables 防火牆設定(轉)

amyz發表於2007-08-10
slackware-10.1 下 adsl 撥號上網的 iptables 防火牆設定(轉)[@more@]

  提要:

  因為家裡的機器是使用adls撥號上網,為了防止傢伙們對我的機器作埠掃描,因此設定好防火牆顯得比較重要起來。

  我嘗試了普通方式來設定iptables,發現一般的設定方法並不能很好的滿足我的需要,主要是因為ppp的聯結建立在放火牆指令碼執行(透過手工編寫 /etc/rc.d/rc.firewall)後。覺得更好的的方法是用rp-pppoe來呼叫你的防火牆設定,因為rp-pppoe的配置檔案(/etc/ppp/pppoe.conf)中有一個選項,具體可以參考slackware下面/etc/ppp目錄下的兩個放火牆設定指令碼,雖然是針對 ipchains寫的,但可以換成iptabes改寫。在ppp建立後,iptables的規則就可以生效了。

  在 /etc/ppp目錄下有兩個指令碼firewall-masq和firewall-standalone,對應於/etc/ppp/pppoe.conf 中的兩個選項 FIREWALL=MASQUERADE 或 FIREWALL= STANDALONE 這兩個指令碼都是基於ipchains的,

透過 /usr/sbn/adsl-connect 指令碼呼叫(被adsl-start間接呼叫)。

  下面是一個我寫的一個基本的/etc/rc.d/rc.firewall示例

#!/bin/sh

# Start/stop/restart the firewall ($IPT)

IPT="/usr/sbin/iptables"

# Start firewall:

firewall_start() {

 $IPT -P INPUT DROP

 $IPT -P FORWARD DROP

 $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 $IPT -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

# SSHD

 $IPT -A INPUT -p tcp --dport 22 -i ppp0 -j ACCEPT

# Bittorrent

 $IPT -A INPUT -p tcp --dport 6881:6889 -i ppp0 -j ACCEPT

# BitTornado

 $IPT -A INPUT -p tcp --dport 10000:60000 -i ppp0 -j ACCEPT

 $IPT -A INPUT -p icmp -j ACCEPT

}

# Stop firewall:

firewall_stop() {

 $IPT -P INPUT ACCEPT

 $IPT -P FORWARD ACCEPT

 $IPT -F

 $IPT -X

}

# Restart firewall:

firewall_restart() {

 firewall_stop

 sleep 1

 firewall_start

}

case "$1" in

'start')

 firewall_start

 ;;

'stop')

 firewall_stop

 ;;

'restart')

 firewall_restart

 ;;

*)

 echo "usage $0 start|stop|restart"

esac

下面是用adsl-connect呼叫的改寫後的/etc/ppp/firewall-standalone

#!/bin/sh

# Start the firewall ($IPT)

IPT="/usr/sbin/iptables"

$IPT -P INPUT DROP

$IPT -P FORWARD DROP

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

# SSHD

$IPT -A INPUT -p tcp --dport 22 -i ppp0 -j ACCEPT

# Bittorrent

$IPT -A INPUT -p tcp --dport 6881:6889 -i ppp0 -j ACCEPT

# BitTornado

$IPT -A INPUT -p tcp --dport 10000:60000 -i ppp0 -j ACCEPT

$IPT -A INPUT -p icmp -j ACCEPT

  兩種方法都可以對ppp0建立規則,但區別在ppp0連線前建立和連線後建立,那種更好,我也不知道:-P

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-941351/,如需轉載,請註明出處,否則將追究法律責任。

相關文章