SSH遠端安全連線安裝及設定
安裝openssh-server
如果你沒有安裝ubuntu時沒有安裝openssh,請用以下熟悉的指令來做安裝
sudo apt-get install openssh-server
好,當我們安裝好,基本上就可以用putty來用遠端登入了,當然是有帳密的人就可以登入啦,但是我們都瞭解,這樣子是不安全的,基本上我們要限定連入IP還有改變PORT,如此才會比較安全。
接下來我們一樣可以來檢查是否有執行這個ssh-server,輸入以下指令
ps aux | grep ssh
設定ssh_config內容
我們若在主機上,就會有二條訊息,一是root,一是你登入的名稱。若是用遠端登入,就會有遠端登入的名稱,訊息就會多出2~3條,那是正常的,接下來我們進入ssh的config檔案。
sudo vim /etc/ssh/sshd_config
找一下,看到這行,可以做更改,但事實上,ubuntu本身就有限制root的登入,因此是沒有特別的意義,但還是可以修改,以防萬一
#PermitRootLogin Yes
改成
PermitRootLogin no
再來找到
# What ports, IPs and protocols we listen for (約第4、5行)
Port 22
可將預設的port改成系統未在使用的port,因為系統預設都會有一些連接port,例如:ftp是port21、web是port80、smtp是port25、ssh是port22、telnet是port23等等,那你要怎麼知道哪些被使用呢?鍵入下列的指令吧。
(port的內容相當多,在一個區段內找一個數字,只要在services當中沒出現的即可)
sudo less /etc/services
例如:91這個port系統沒有使用,那你就將22改成91,那這樣在連ssh時就必須將port改成91,若維持22是連不進去的。
限制IP登入
再來,我們要修改可以登入這台主機的ip,否則任可一個ip都可以利用帳號登入,這是基本的防護。
sudo vim /etc/hosts.allow
在最下方加入
sshd:xxx.xxx.xxx.xxx :allow
xxx就是指你的ip位置,包含你遠端要登入的ip(一般ADSL浮動ip則不適用,此方法只適用固定IP)。若你是ADSL,但又想要登入主機上工作修改,那可以到中華電信的固定IP申請頁面,線上申請後可以馬上使用,雖然不是真的固定IP,但是可以讓你工作方便才是最重要的。
拒絕所有IP登入
當你允許了你指定的IP可以登入,那其他的浮動IP就不讓他們登入了,避免不必要的麻煩和攻擊
sudo vim /etc/hosts.deny
加入 sshd:all:deny
如此一來,除了你允許的IP之外,其他的浮動IP就連不進來
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
一樣修改完成後,要重新啟動喔!
說明:但是不同於apache2一樣可以restart,在網路上的資料是寫restart,我試過不行,後來我看過config檔案,ssh這裡只能stop跟start,無論你所使用的程式是否支援restart,stop跟start是一定會有的。
如果你沒有安裝ubuntu時沒有安裝openssh,請用以下熟悉的指令來做安裝
sudo apt-get install openssh-server
好,當我們安裝好,基本上就可以用putty來用遠端登入了,當然是有帳密的人就可以登入啦,但是我們都瞭解,這樣子是不安全的,基本上我們要限定連入IP還有改變PORT,如此才會比較安全。
接下來我們一樣可以來檢查是否有執行這個ssh-server,輸入以下指令
ps aux | grep ssh
設定ssh_config內容
我們若在主機上,就會有二條訊息,一是root,一是你登入的名稱。若是用遠端登入,就會有遠端登入的名稱,訊息就會多出2~3條,那是正常的,接下來我們進入ssh的config檔案。
sudo vim /etc/ssh/sshd_config
找一下,看到這行,可以做更改,但事實上,ubuntu本身就有限制root的登入,因此是沒有特別的意義,但還是可以修改,以防萬一
#PermitRootLogin Yes
改成
PermitRootLogin no
再來找到
# What ports, IPs and protocols we listen for (約第4、5行)
Port 22
可將預設的port改成系統未在使用的port,因為系統預設都會有一些連接port,例如:ftp是port21、web是port80、smtp是port25、ssh是port22、telnet是port23等等,那你要怎麼知道哪些被使用呢?鍵入下列的指令吧。
(port的內容相當多,在一個區段內找一個數字,只要在services當中沒出現的即可)
sudo less /etc/services
例如:91這個port系統沒有使用,那你就將22改成91,那這樣在連ssh時就必須將port改成91,若維持22是連不進去的。
限制IP登入
再來,我們要修改可以登入這台主機的ip,否則任可一個ip都可以利用帳號登入,這是基本的防護。
sudo vim /etc/hosts.allow
在最下方加入
sshd:xxx.xxx.xxx.xxx :allow
xxx就是指你的ip位置,包含你遠端要登入的ip(一般ADSL浮動ip則不適用,此方法只適用固定IP)。若你是ADSL,但又想要登入主機上工作修改,那可以到中華電信的固定IP申請頁面,線上申請後可以馬上使用,雖然不是真的固定IP,但是可以讓你工作方便才是最重要的。
拒絕所有IP登入
當你允許了你指定的IP可以登入,那其他的浮動IP就不讓他們登入了,避免不必要的麻煩和攻擊
sudo vim /etc/hosts.deny
加入 sshd:all:deny
如此一來,除了你允許的IP之外,其他的浮動IP就連不進來
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
一樣修改完成後,要重新啟動喔!
說明:但是不同於apache2一樣可以restart,在網路上的資料是寫restart,我試過不行,後來我看過config檔案,ssh這裡只能stop跟start,無論你所使用的程式是否支援restart,stop跟start是一定會有的。
引用自 http://blog.udn.com/nigerchen/2262865