consol 上會一直出現 ssh/tcp: bind: Address already in use 的訊息,而且在 log 檔中也會一直出現這個訊息,這是怎麼一回事?
先來看看幾個設定檔,先看看 /etc/rc.conf 和 /etc/default/rc.conf 這兩個檔,看看是否有:
sshd_enable="YES" (或者 sshd2_enable="YES" ,視你安裝的 sshd 而定) 以及
inetd_enable="YES"
inetd_enable="YES"
如果兩行都有,不管是不是在同一檔中或分置於兩個檔中,都代表著你把 sshd 和 inetd 這兩個 deamon 都打開了。 這個時候請你查看一下 /etc/inetd.conf 這個檔,是否有下列兩行:
ssh stream tcp nowait root /usr/local/sbin/sshd sshd -i -4
ssh stream tcp6 nowait root /usr/local/sbin/sshd sshd -i -6
ssh stream tcp6 nowait root /usr/local/sbin/sshd sshd -i -6
有的話,請把 /etc/rc.conf 的
sshd_enable="YES"
改成
sshd_enable="NO"
,不直接啟動 SSHd,而是讓 TCP Wrapper 去喚起它。不然的話,你的 FreeBSD 會啟動兩次 sshd 。
sshd_enable="YES"
改成
sshd_enable="NO"
,不直接啟動 SSHd,而是讓 TCP Wrapper 去喚起它。不然的話,你的 FreeBSD 會啟動兩次 sshd 。
由 TCP Wrapper 去喚起 SSHd 的好處是,我們可以利用 sshblock 來過濾討厭厭的攻擊者,把攻擊者的 IP 設為 DENY,把他們阻隔掉。