port knocking
簡介
port knocking就像是敲門的暗號一樣,以特定順序碰觸port,server就會執行特定指令
我們可以把這個功能用來開port,就像阿里巴巴要用咒語才可以開門一樣。
詳情可參考port knocking的定義
安裝
我這邊server是用Ubuntu, client是MAC環境。
server
1 | sudo apt-get install knockd |
client
1 | brew insrall knock |
設定檔
通常在位置在/etc/knockd.conf
最初的設定檔,可參考manual
這邊是客製化的設定,目的是可以開關port 22,防止有人亂連。
1 | [options] |
功能大概看名字也可以猜出來
- sequence: 敲port的順序
- seq_timeout: 間隔時間
- command: 如果成功敲完,要執行什麼命令,這邊是用開ssh來當示範
- tcpflags: 如果是TCP連線,需要有什麼flag
使用
server端
把/etc/default/knockd
中的START_KNOCKD
改成1
然後啟動
1 | sudo service knockd start |
記得防火牆要先設定不讓外面的人進入
1 | /sbin/iptables -A INPUT --dport 8888 -j DROP |
client端
須先安裝knock
1 | # 開啓 |
注意
knock不一定要完全正確
例如說如果順序是7000,8000,9000
那麼我們用7000-9000依序敲過去仍然是可以打開
但是如果是分兩次knock就沒有用了