今天把ssh key重新產出了。結果一堆程式不能跑,查了很久才想到,在用ssh2.php登入設備時,id_rsa及id_rsa.pub(這個檔應該不用,但懶得試了)也會用到。
因此如果重新把ssh key產生時,記得把這兩隻key也放到程式的目錄中。
今天把ssh key重新產出了。結果一堆程式不能跑,查了很久才想到,在用ssh2.php登入設備時,id_rsa及id_rsa.pub(這個檔應該不用,但懶得試了)也會用到。
因此如果重新把ssh key產生時,記得把這兩隻key也放到程式的目錄中。
ssh免密碼認證應該算是基本功了。但我的新機器就是沒有辦法免密碼認證。
明明用其它帳號都正常,但就是我自己的帳號不行。
所以簡單講一下怎麼查:
1、先把firewall開好
sudo firewall-cmd --zone=public --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
2、在server上開ssh debug
/usr/sbin/sshd -d -p 2222
3、從client去登入
ssh -p 2222 user@host
4、觀察debug:
debug1: trying public key file /home/klting/.ssh/authorized_keys debug1: fd 10 clearing O_NONBLOCK Authentication refused: bad ownership or modes for directory /home/klting
看的出來是/home/klting這個目錄的權限問題。
看了一下權限是750,可能是我之前測東西改到的,用chmod改回700就正常了。
5、記得關防火牆
sudo firewall-cmd --zone=public --permanent --remove-port=2222/tcp
sudo firewall-cmd --reload
最後確認一下目前防火牆開哪些port,確認有關成功
firewall-cmd --list-all
在使用Fortigate防火牆的時候,有時候需要長時間的錄封包。但使用的是低階的設備(例如FG80C),它本身GUI沒有側錄的功能,該怎麼處理呢?
很簡單,搭配一些linux指令就能處理了。
要安裝的套件是screen。指令及操作方式如下:
先開啟screen:
screen
登入防火牆,並且將輸出畫面同時顯示在螢幕上及另存在192.168.1.2.log這個檔案中。
ssh -l admin 192.168.1.2 | tee 192.168.1.2.log
開始側錄:
diagnose sniffer packet any 'host 192.168.1.1 and icmp' 6 0
開始側錄後,離開screen。
ctrl + a 後,再按下 d 鍵(detach)
把錄好的檔案,轉成wireshark格式。fgt2eth.pl是原廠提供的檔案,網路上找一下就有。
./fgt2eth.pl -in 192.168.1.2.log -out ay.cap
需確認事項:
1、ping一下192.168.1.1,確認192.168.1.2.log會長大 (確認寫檔成功)
2、丟在背景執行,過很長的時間後再ping一下,看檔案有沒有改大,測試有沒有被踢掉 (確認timeout是否影響側錄)
測試完成要離開screen:
先找出它的工作環境:
screen -ls
再回去該工作環境:
screen -r 20451
再中止sniffer packet (ctrl+c),並離開防火牆即可。
有時候我們希望定時出報表,但又不希望還要另存新檔再寄送檔案。這個時候就是pipe上陣的時候了。
另外補充一點,在crontab中,%號前要加\,才能正常使用。
5 14 * * 5 /home/klting/get_srx_spu.exp | egrep "Flow|curr|4 0|5 0|6 0" | mutt -s "srx spu check on $(date +\%Y-\%m-\%d)" klting@xxxx.com.tw