數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 2009-11-25 13:00:12

leon.z
教士
註冊日期: 2008-06-12
文章數: 71
目前積分 :   

WL-500GP防火墙的问题

目前WL-500GP防火墙/usr/local/sbin/post-firewall的配置如下:
#!/bin/sh
iptables -D INPUT -j DROP

# Rtorrent
iptables -A INPUT -p tcp --dport 6891:6900 -j ACCEPT
iptables -A INPUT -p udp --dport 6890 -j ACCEPT

iptables -A INPUT -j DROP

# telnet
iptables -A INPUT -p tcp --dport 23 -j ACCEPT

# Port 21 used for VSFTP server
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# Port 22 used for SSH server
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 22 -j DNAT --to-destination $4:22
iptables -A INPUT -j DROP

故障现象是:外网无法连接至WL-500GP,且执行到
--------------------------------------------------
# Port 22 used for SSH server
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 22 -j DNAT --to-destination $4:22
iptables -A INPUT -j DROP
--------------------------------------------------
总会出现警告,警告内容如下:
Warning: wierd character in interface `-p' (No aliases, :, ! or *).
Bad argument `tcp'
Try `iptables -h' or 'iptables --help' for more information.



最後修改: leon.z (2009-11-25 13:01:01)


離線

 

#2 2009-11-25 15:26:50

hannahmo
天使
註冊日期: 2009-09-02
文章數: 392
目前積分 :   

Re: WL-500GP防火墙的问题

leon.z 提到:

目前WL-500GP防火墙/usr/local/sbin/post-firewall的配置如下:
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 22 -j DNAT --to-destination $4:22

我猜是這行的語法有問題造成的....
我的500GP被老爸將去用了....
沒辦法幫你試....
晚點有空的話來用ubuntu試試看....
語法應該不會差異太大....




https://digiland.tw/uploads/2345_head.jpg

離線

 

#3 2009-11-25 18:55:33

talent881
新生
註冊日期: 2008-04-14
文章數: 24
目前積分 :   

Re: WL-500GP防火墙的问题

我是用openwrt 配置的

iptables -A INPUT -j DROP <-- 這句應該要放在表的最前面

iptables -D INPUT -j DROP <-- -D的用法沒看過,不知道

iptables -A INPUT -p tcp --dport 22 -j ACCEPT <-- 這句是OK的
iptables -A INPUT -p udp --dport 22 -j ACCEPT <-- 我還有加這一句
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 22 -j DNAT --to-destination $4:22 <-- 這是多餘的

應該就這樣了
試試吧


離線

 

#4 2009-11-25 22:18:33

leon.z
教士
註冊日期: 2008-06-12
文章數: 71
目前積分 :   

Re: WL-500GP防火墙的问题

我是参照《Abin's Tech Note: SSH 的設定和啟用》,
SSH 的設定和啟用
之前都是用 telnet 連進 router 做設定,但這是一種很不安全的連線方式,容易被監聽竊取帳號密碼,所以我們要另外跑一個安全的連線服務:SSH (Secure Shell)。Windows PC 端的連線程式 (SSH client) 可以找這裡 ,或是 piaip 開發中文版的 PieTTY。

其實在 Oleg 的韌體裡已經有 SSH Server 在裡面,程式名稱叫 dropbear (丟熊?),要啟動該服務要做的事情有三件:1. 設定 dropbear 的 SSH 連線金鑰,2. 要求每次開機這個服務自動啟動,3.在防火牆上打洞讓你可以從外面連進來。接下來我們根據以上的步驟依序來進行設定。

1. 金鑰設定
首先,我們要先建立存放金鑰的目錄。Oleg 的韌體要求預設目錄在 /usr/local/etc/dropbear,所以我們手動建立目錄:

mkdir -p /usr/local/etc/dropbear
接下來要求產生 key pair (DSS & RSA),要多花一點點時間等待:

dropbearkey -t dss -f /usr/local/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key
2. 開機自動啟動
還記得上一篇我們為了一開機時就自動 mount 磁碟機所產生的 /usr/local/sbin/post-boot 嗎?要 SSH 一開機啟動只要在這個檔案裡加兩行就行了。先用 nano 開啟這個檔案以便編輯:

/opt/bin/nano /usr/local/sbin/post-boot
然後在最後面加入下面兩行:

# Start SSH daemon
dropbear
ctrl+o 存檔然後 ctrl+x 離開就行了。

3. 防火牆設定
如果你有固定 IP 或網址,需要從外面連你的 router 進行設定才需要進行這個步驟,如果不開防火牆設定,你的 SSH 服務就只能在家裡面使用(外面連不進來)。同樣的還記得上一篇有提到,我們在建立 post-boot 時順道做了一個 post-firewall?這時候就派上用場了。同樣地用 nano 開啟檔案:

/opt/bin/nano /usr/local/sbin/post-firewall
然後加入下面的內容在檔案裡(裡面應該是空白的):

#!/bin/sh
iptables -D INPUT -j DROP

# Port 22 used for SSH server
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 22 -j DNAT --to-destination $4:22
iptables -A INPUT -j DROP
上面幾行的意思,就是要機器對外的 Port 22 打開,連線進來的時候轉向到機器本機的 Port 22。一樣使用 ctrl+o 存檔然後 ctrl+x 離開就行了。

別忘了,因為我們是動到 /usr 下面的檔案,都是存在 flash 裡面的,如果沒有去 save & commit 結果,重新開機就會消失喔!所以還是要要求寫入 flash:

flashfs save
flashfs commit
flashfs enable
完成之後就可以重新開機 (reboot) ,然後就用 SSH Client 程式從家裡或是外面連進來試試看能不能成功囉!(重開完,用 ps 這個命令應該會看到有 dropbear 這個 process 在跑才是)


我是照着这样做的


離線

 

#5 2009-11-25 22:52:22

leon.z
教士
註冊日期: 2008-06-12
文章數: 71
目前積分 :   

Re: WL-500GP防火墙的问题

我刚才发现重启WL-500GP后,外网仍然无法telnet至WL-500GP,但刚才执行了iptables -D INPUT -j DROP,结果能PING通WL-500GP,也能telnet至WL-500GP,但是/usr/local/sbin/post-firewall中已经配置了#!/bin/sh
iptables -D INPUT -j DROP



为什么会这么样?还有一点很费解,在Firewall设置中Enable Firewall?到底是设置为yes执行/usr/local/sbin/post-firewall,还是NO执行 执行/usr/local/sbin/post-firewall,请各位同志给予解答,不胜感激。
https://digiland.tw/uploads/293_firewall.jpg



離線

 

#6 2009-11-25 23:37:07

wen1977
老司機
註冊日期: 2009-04-29
文章數: 304
目前積分 :   

Re: WL-500GP防火墙的问题

leon.z 提到:

我刚才发现重启WL-500GP后,外网仍然无法telnet至WL-500GP,但刚才执行了iptables -D INPUT -j DROP,结果能PING通WL-500GP,也能telnet至WL-500GP,但是/usr/local/sbin/post-firewall中已经配置了#!/bin/sh
iptables -D INPUT -j DROP



为什么会这么样?还有一点很费解,在Firewall设置中Enable Firewall?到底是设置为yes执行/usr/local/sbin/post-firewall,还是NO执行 执行/usr/local/sbin/post-firewall,请各位同志给予解答,不胜感激。
https://digiland.tw/uploads/293_firewall.jpg

1.請問有做過 chmod +x /usr/local/sbin/post-firewall 嗎?
2.關於系統設定頁中 firewall 選項,我個人認為應該設為 No 才對,
這樣自行設定的 /usr/local/sbin/post-firewall  才有可能生效, 供您參考.


離線

 

#7 2009-11-25 23:38:53

talent881
新生
註冊日期: 2008-04-14
文章數: 24
目前積分 :   

Re: WL-500GP防火墙的问题

iptables 的命令執行順序是由上往下直行

iptables -A INPUT -j DROP
這一句放在最下面yes
等於就是打洞後再全部關起來

打開iptables 的port 可以說是打洞原理
所以要先關起來  再打洞

除非他有像ubuntu 的iptables 那麼聰明的規劃
不然放在下面,想進去就只能撞牆wallbash


iptables -D INPUT -j DROP
這行是刪除INPUT鏈的意思
你改的那個scripts 應該是關閉防火牆的腳本
所以你找錯了

你要改的應該是啟動防火牆的腳本才對
所以你選啟動或是關閉都是啟動

俗語說 
對等於對  錯也等於對
啟動等於啟動  停用也等於啟動

所以你改錯檔案了


離線

 

#8 2009-11-27 13:44:45

leon.z
教士
註冊日期: 2008-06-12
文章數: 71
目前積分 :   

Re: WL-500GP防火墙的问题

谢谢,关键是iptables -A INPUT -j DROP,这句话一定要在最后。


離線

 

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed