iptables防火牆基本設定 [論壇 - Ubuntu基本設定]
正在瀏覽:
1 名遊客
#1
iptables防火牆基本設定
夢見草
2008/9/3 14:29
在ubuntu 系統裡使用懶人包安裝的 Firestarter 防火牆並不好用
會造成你的區網和ADSL連線(pppoe)無法同時使用。
Firestarter 啟動後,不是區網不能用,就是ADSL連線不能用
想要把Firestarter關掉,重開機後,或撥號後它又會自動啟動
最後整個把Firestarter移掉後,網路才回復正常。
改去研究 iptables 的使用方式,才發現其實不難。
1。建立一檔案名為 iptables.sh,內容如下:
#請將此檔放在你的家目錄內的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
會造成你的區網和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
它的設定是針對你指定哪張網卡而生效的,請先用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
還不錯用
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
要怎麼辦呢
後出現:
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
#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網路橋接方案
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 在你系統重開機後會消失,除非你將其設定一開機就自動執行。
編輯 vbox.sh
將此檔內所有的 tap0 的字元全取代為 tap1
另存新檔為 vbox1.sh
執行 vbox1.sh
Virtual Box部份的設定
打開 Virtual Box
設定-> 網路 ->配接卡
Attached to(附掛到) 選 主端介面
在主機介面設定值中的Interface Name(介面名稱)打入
tap1
這樣就可以同時開啟第二個系統了
PS:同樣的 tap1 在你系統重開機後會消失,除非你將其設定一開機就自動執行。
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.