#1 2008-12-29 22:00:31
尝试安装knock的问题
考虑到安全性,尝试在WL-500GD上安装knock,说明如下:
knock - 0.5-3 - knockd is a port-knock server. It listens to all traffic on an ethernet (or PPP) interface, looking for special knock sequences
在ipkg install knock后,发现只安装了knock的client端,并没有/opt/bin/knockd生成,但是安装后在/opt/etc/init.d下生成了S05knockd文件,内容如下:
#!/bin/sh
if [ -n "`pidof knockd`" ]; then
/bin/killall knockd 2>/dev/null
fi
umask 077
/opt/bin/knockd -d -v
而且在/opt/etc下有knockd.conf文件生成,内容如下:
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
看起来像是应该能安装knockd才对啊,很奇怪.有人做过么?或者哪里能搞到knockd来安装啊?
離線
#2 2008-12-30 01:20:42
Re: 尝试安装knock的问题
更新一下:
尝试安装了knock - 0.5-2 和knock - 0.5-1 ,这两个比较老的版本里倒是都有knockd,但是安装完成不起作用啊.我的配置如下:
/opt/etc/knockd.conf
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
/opt/etc/init.d/S05knockd
#!/bin/sh
if [ -n "`pidof knockd`" ]; then
/bin/killall knockd 2>/dev/null
fi
umask 077
/opt/bin/knockd -d -i ppp0 -v -c /opt/etc/knockd.conf
从外部尝试使用window下的knock来测试,看起来没什么问题:
knock -v 我的IP 7000 8000 9000,返回如下:
hitting tcp 124.114.171.48:7000
hitting tcp 124.114.171.48:8000
hitting tcp 124.114.171.48:9000
但是从router上运行iptables -L 查看,还是没有添加上来的iptable规则啊.
请教各位大大有没有人也尝试一下,一起讨论啊.
最後修改: unhacker (2008-12-30 01:21:53)
離線
#3 2008-12-30 09:16:32
Re: 尝试安装knock的问题
沒研究過,這裡有深入的介紹,可以參考看看:
http://linux.vbird.org/linux_security/knockd.php
技術問題請於論壇上集眾人之力公開討論,感恩
離線
#5 2010-08-05 15:46:37
Re: 尝试安装knock的问题
最近才剛修好我的WL-500GP所以再次改機來測試,
當你使用ipkg install knock後knockd就幫你裝好了
只是位置有點不同,它被放在/opt/sbin底下
/opt/etc/init.d/S05knockd
#!/bin/sh
if [ -n "`pidof knockd`" ]; then
/bin/killall knockd 2>/dev/null
fi
umask 077
/opt/bin/knockd -d -i ppp0 -v -c /opt/etc/knockd.conf
**注意:上面這一行/opt/bin/knockd 改成/opt/sbin/knockd
這樣就行囉(原始的knockd.conf的設定似乎會使port一直開著,我是改用鳥哥的方式,這樣時間一到就會關掉port)
但我現在卻卡在ssh進不去我的AP(iptables 裡看得到SSH的port有開了)
------2010/08/06新增------
研究後發現原始設定是 knock 7000 8000 9000後開啟SSH的PORT
而用完後再knock 9000 8000 7000才會關閉SSH的PORT
而鳥哥是打開port後等待 cmd_timeout所設定的秒數後執行stop_command後面的指令
最後修改: jawe (2010-08-06 12:23:28)
離線