iptables防火牆基本設定 [論壇 - Ubuntu基本設定]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 3 4 »


#1 iptables防火牆基本設定
夢見草 2008/9/3 14:29
在ubuntu 系統裡使用懶人包安裝的 Firestarter 防火牆並不好用
會造成你的區網和ADSL連線(pppoe)無法同時使用。

Firestarter 啟動後,不是區網不能用,就是ADSL連線不能用
想要把Firestarter關掉,重開機後,或撥號後它又會自動啟動
最後整個把Firestarter移掉後,網路才回復正常。

改去研究 iptables 的使用方式,才發現其實不難。

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/24 -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) 放行

#請將此檔放在你的家目錄內的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 修改完再重開機就行了。

================================================

6.安裝套件過程中若出現以下錯誤訊息

insserv: warning: script 'K01iptables.sh' missing LSB tags and overrides
insserv: warning: script 'iptables.sh' missing LSB tags and overrides

解法:

在 /home/backup/iptables.sh 此檔的最前面加入底下內容即可

### BEGIN INIT INFO
# Provides: iptables.sh
# Required-Start: $remote_fs $syslog
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: 自製開機程式
### END INIT INFO
#2 回復: iptables防火牆基本設定
夢見草 2008/9/3 14:29
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 ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#針對 ppp0 (撥號連線)這張網卡,設定我主動發出去的回應都予放行,同樣的這行照做就是了。
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -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 "指定的網卡" -p "填tcp或udp" --dport "你指定的port位" -j ACCEPT
#3 回復: iptables防火牆基本設定
wcpan 2008/9/3 14:36
我個人是都用shorewall做為前端去改iptables的設定
還不錯用

http://www.shorewall.net/

設定好介面之後只要利用如
BitTorrent/ACCEPT
或是
FTP/ACCE\PT
等巨集即可
FTP還會自動處理port forwarding
#4 回復: iptables防火牆基本設定
青島一號 2008/9/19 4:50
ls -s /home/user/backup/iptables.sh /etc/init.d/iptables.sh
後出現:
ls: 無法存取/etc/init.d/iptables.sh: 沒有此一檔案或目錄
4 /home/user/backup/iptables.sh
要怎麼辦呢
#5 回復: iptables防火牆基本設定
hepha 2008/9/19 6:21
geidt iptables.sh

內容

sudo ln -s ~/iptables.sh /etc/init.d/iptables.sh

sudo update-rc.d -f iptables.sh defaults



順便問一下我eth0要開6891-6900 port不知要如何設定?
#6 回復: iptables防火牆基本設定
夢見草 2008/9/19 14:13
hepha 寫到:
順便問一下我eth0要開6891-6900 port不知要如何設定?

這樣設定↓
iptables -A INPUT -i eth0 -p tcp --dport 6891:6900 -j ACCEPT


太原路一號 寫到:
ls -s /home/user/backup/iptables.sh /etc/init.d/iptables.sh
後出現:
ls: 無法存取/etc/init.d/iptables.sh: 沒有此一檔案或目錄
4 /home/user/backup/iptables.sh
要怎麼辦呢


抱歉,我的原文打錯一個字,請更正如下
把 ls -s 改為 ln -s
ln -s /home/user/backup/iptables.sh /etc/init.d/iptables.sh


補充一下,若設定好了之後防火牆還是不能啟動,請檢查 iptables.sh 這檔案的屬性是否有設定可執行,若無請下指令

chmod 755 /home/user/backup/iptables.sh
#7 回復: iptables防火牆基本設定
凍仁翔 2008/9/19 15:36
其實 ufw 也挺不錯的:P

CreMaker 的生活雜記:談談 ufw
#8 回復: iptables防火牆基本設定
hepha 2008/9/20 3:33
夢見草 寫到:
]
這樣設定↓
iptables -A INPUT -i eth0 -p tcp --dport 6891:6900 -j ACCEPT


收到感謝:)
#9 Virtual Box網路設定
夢見草 2008/10/31 11:11
前言:
Virtual box 這程式安裝裝完後並不會像在XP上使用Vmware一樣自動幫你的網卡裝一個橋接器(連接虛擬電腦與實體電腦的網路),所以底下的設置即是要裝個橋接器, 讓你使用網路也能像Vmware那樣方便。即:你的虛擬電腦也能透過IP分享器取得IP,或是自己設pppoe撥號上網。


一、建立vbox.sh檔

請先下此指令安裝必要的工具
sudo apt-get install uml-utilities bridge-utils

注意:以下紅字部份的 username 請換成你的使用者名稱。
並請檢查你的家目錄有沒有backup此資料夾,一般是沒有,請自行新增一個資料夾名為backup。

建立vbox.sh檔,請下指令
sudo gedit /home/username/backup/vbox.sh

貼上以下內容
#====================vbox.sh的內容開始=================
#!/bin/bash
# ************************************************
# Create bridge environment
#
# 建立一個橋接的環境,用一個br0,橋接起eth0與一
# 個tap0。要還原設定時,用clean參數。
# Create by cafetw at 20070827
# E-mail:cafetw@gmail.com
# if can't run the sh, try
# sudo apt-get install uml-utilities bridge-utils
# ************************************************
if [ "$1" == "" ]; then
tunctl -t tap0 -u username
#上面username請換成你的使用者名稱。
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0
dhclient br0
#如果沒有固定IP, 上面會讓br0用DHCP的方式取得IP
# ifconfig br0 {固定IP} netmask {Netmask IP}
#如果有固定IP的話,把上面的#拿掉,即可以用上面這行來設定br0的IP設定,
#當然,記得把dhclient那行加上#。
brctl addif br0 tap0
ifconfig tap0 up
chmod 666 /dev/net/tun
#route del default
#route add default gw
#最後設定一下default 的 gateway IP。
fi
if [ "$1" == "clean" ]; then
brctl delif br0 eth0
brctl delif br0 tap0
ifconfig br0 down
brctl delbr br0
ifconfig tap0 down
ifconfig eth0 down
ifconfig eth0 up
dhclient eth0
#如果你的環境可以用DHCP,就把上面這行拿掉#,下面那行加上#
# ifconfig eth0 {固定IP} netmask {Netmask IP}
#要用固定IP的話,就加上設定。
#route add default gw
#設定你的GateWay IP
fi
exit 0
#====================vbox.sh的內容開始=================

將此檔改成可執行權限
請下指令
chmod 755 /home/username/backup/vbox.sh



二、執行 vbox.sh 此檔
說明:vbox.sh的設定執行後,再重開機後這些設定就會消失,所以我們可以把它設成一開機就自動執行,若你不想它開機自動執行的話,也可以自己手動執 行它,請下指令

sudo ~/backup/vbox.sh

還原設定指令
sudo ~/backup/vbox.sh clean
或重開機,設定就消失了

若你有設防火牆的話,請先別急著執行此檔,因執行後,你可能會遇到一些小麻煩(網路不通),因為此檔幫你新增了一個網卡,名為 br0,取代你原本的eth0 上網,因此我們要在防火牆上做些設定。

編輯 iptables.sh ,請下指令
sudo gedit ~/backup/iptables.sh
註:以上這行指令乃根據我之前所寫的"iptables 防火牆基本設定"這篇文章所設定延伸過來的。
加入底下這幾行
#--------------------------------
iptables -A INPUT -i br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i br0 -s 192.168.0.0/24 -j ACCEPT
#針對 br0 這張網卡,放行 192.168.0.0 這網段全放行,若你的IP分享器發配的IP為 192.168.1.1 之類的,那麼請把以上數字改成 192.168.1.0/24
#/home/username/backup/vbox.sh
#--------------------------------
注意:紅字的username也請改一下你的名字

現在執行vbox.sh 請下指令

sudo ~/backup/vbox.sh

執行後,若沒問題,也能上網的話,那麼就請把 iptables.sh 檔內的
#/home/username/backup/vbox.sh
這一行最前面的那個#號拿掉,開機後,它就會自動執行了



三、Virtual Box部份的設定
打開 Virtual Box
設定-> 網路 ->配接卡

Attached to(附掛到) 選 主端介面

在主機介面設定值中的Interface Name(介面名稱)打入

tap0

然後按確定,把設定存下來。這樣就可以了。




參考文章:
VirtualBox 1.4.0網路橋接方案
#10 回復: iptables防火牆基本設定
夢見草 2008/10/31 18:33
若要在 Virtual Box 內同時執行兩個以上的系統的話,可能就會發生tap0被佔用的情況而無法開啟第二個系統,此時的解決方法為

編輯 vbox.sh
將此檔內所有的 tap0 的字元全取代為 tap1
另存新檔為 vbox1.sh
執行 vbox1.sh

Virtual Box部份的設定
打開 Virtual Box
設定-> 網路 ->配接卡
Attached to(附掛到) 選 主端介面
在主機介面設定值中的Interface Name(介面名稱)打入
tap1

這樣就可以同時開啟第二個系統了

PS:同樣的 tap1 在你系統重開機後會消失,除非你將其設定一開機就自動執行。

(1) 2 3 4 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.