Ubuntu 10.04 防火牆設定


抄來的, 原文如下:
http://tw.myblog.yahoo.com/s10274chen/article?mid=398&prev=438&next=386

Ubuntu 10.04 防火牆設定

分類:ubuntu筆記
2010/08/29 19:45

使用系統內建的iptables來設定防火牆,利用shell script來自動執行。

最近開始使用ubuntu來架個簡單的網站,方便與同學共享檔案,由於選用ubuntu server版本,架設起來是純文字模式,架站之後,要注意防火牆設定,但是沒有視窗介面可以操作,好頭痛,只好上網找了一下,終於看到一篇防護設定,但怕忘記,只好先記錄起來。

防火牆設定,直接在使用者家目錄底下操作之。

1.先建立一個檔案,檔名改為 iptables.sh。內容如下:

—————檔案內容在虛線範圍內——————————————————————————————–

#!/bin/bash
#我的防火牆設定
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
# 127.0.0.1 本地端回應全接受
iptables -A INPUT -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
#針對 eth0 這張網卡,設定主機主動發出去的回應都予放行
iptables -A INPUT -i ppp0 -m state –state RELATED,ESTABLISHED -j ACCEPT
#針對 ppp0 (撥號連線)這張網卡,設定主機主動發出去的回應都予放行
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT
#↑192.168.0.1~255 這個網段全放行
#↓前面加 # 號是指停用這條規則,註解掉
#iptables -A INPUT -i ppp0 -p tcp –dport 4662 -j ACCEPT
#iptables -A INPUT -i ppp0 -p udp –dport 4672 -j ACCEPT
#↑針對撥號連線 port 位 TCP 4662 & UDP 4672 (emule) 放行
#iptables -A INPUT -i ppp0 -p tcp –dport 51413 -j ACCEPT
#針對撥號連線 port 位 TCP 51413 (BT) 放行
iptables -A INPUT -i ppp0 -p tcp –dport 5500 -j ACCEPT
#針對撥號連線 port 位 TCP 5500 (vnc) 放行
# ↓隱形掃瞄攻擊防範
iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP
iptables -A FORWARD -p tcp –tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A FORWARD -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
iptables -A FORWARD -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp –tcp-flags FIN,RST FIN,RST -j DROP
iptables -A FORWARD -p tcp –tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp –tcp-flags ACK,FIN FIN -j DROP
iptables -A FORWARD -p tcp –tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp –tcp-flags ACK,URG URG -j DROP
iptables -A FORWARD -p tcp –tcp-flags ACK,URG URG -j DROP
# ↓因為有些駭客會利用 IPv6 的漏洞攻擊主機,所以封閉幾個重要的 PORT
/sbin/ip6tables -F
/sbin/ip6tables -A INPUT -p tcp –dport 21:23 -j DROP
/sbin/ip6tables -A INPUT -p tcp –dport 139 -j DROP
/sbin/ip6tables -A INPUT -p tcp –dport 445 -j DROP
/sbin/ip6tables -A INPUT -p udp –dport 137:138 -j DROP

#請將此檔放在家目錄內的backup (請建個backup 資料夾)

—————————————————————————————————————————————–

2.建立捷徑
sudo ln -s /home/user/backup/iptables.sh /etc/init.d/iptables.sh

設定成可執行的權限
chmod 755 /home/user/backup/iptables.sh

註:/home/user 這個地方的「user」,更改成登入帳號名稱

3.加入開機自動啟動項目
sudo update-rc.d -f iptables.sh defaults

4.重開機後,檢查看看有沒有設定成功
sudo iptables -L -n

若有出現如下字樣,表示設定成功了
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all — 0.0.0.0/0 0.0.0.0/0
ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT all — 192.168.0.0/24 0.0.0.0/0
ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:4662
ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp dpt:4672
ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:51413

5.往後若想要修改防火牆的設定時,只要直接去修改此檔即可 /home/user/backup/iptables.sh 修改完再重開機就行了。

iptables.sh 內容詳細說明

它的設定是針對你指定哪張網卡而生效的,請先用ifconfig 看你有幾張網卡
eth0 ->若你只有一張網卡,這是一定會有的
eth1 ->若你有第二張網卡,它才會出現
wlan0 ->若你有無線網卡,它才會出現
ppp0 ->這通常是ADSL撥號連線上網後所產生的網卡

---------------我的設定--------------------------#!/bin/bash
#我的防火牆設定
iptables -P INPUT DROP
#↑這行是指把所有要連進來的連線,都預設為全擋掉,反正這行照做就是了
iptables -A INPUT -i lo -j ACCEPT
# 127.0.0.1 本地端回應全接受,同樣的這行照做就是了。
iptables -A INPUT -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
#針對 eth0 這張網卡,設定主機主動發出去的回應都予放行,同樣的這行照做就是了。
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j ACCEPT
# 192.168.0.1~255 這個網段全放行,因為使用區域網路架設,所以加上這行。
#接著針對eth0網卡做打洞設定,設定允許連進來的port。
#打開網頁連接埠
iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p udp –dport 80 -j ACCEPT
#打開FTP的連接埠
iptables -A INPUT -i eth0 -p tcp –dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p udp –dport 21 -j ACCEPT

---------------------------------------------所以防火牆打洞的格式如下:

iptables -A INPUT -i “指定的網卡" -p “填tcp或udp" –dport “你指定的port位" -j ACCEPT

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s