Chinaunix首页 | 论坛 | 博客
  • 博客访问: 452386
  • 博文数量: 403
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -70
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-05 12:45
文章分类

全部博文(403)

文章存档

2014年(3)

2013年(1)

2012年(3)

2011年(21)

2010年(13)

2009年(64)

2008年(9)

2007年(36)

2006年(253)

分类: LINUX

2006-08-05 10:40:29

主機系統的 SSH 建置:
  • Red Hat 7.x 系統:
    由於 Red Hat 7.x 系統本身就已經開啟了 sshd 了,所以你可以直接以 ssh 來連上你的主機囉!不過,如果沒有正常開啟 SSH 的話,那樣要如何啟動呢?也是很簡單的,你可以這樣:
    1. 以 『/usr/sbin/setup』程式進入 setup 的話面中;
    2. 選擇 『System Services』這個項目;
    3. 然後向下移動到『 [*] sshd 』,將 [*] 勾選(按下空白鍵即可);
    4. 然後以 tab 按鍵移動到『 OK 』按下 enter;
    這樣就設定完開機啟動了!然後以底下的方式來啟動 ssh 服務:
      /etc/rc.d/init.d/sshd start
    來啟動 sshd 這個服務,要知道有沒有正常的啟動 ssh 呢?呵呵,只要輸入底下的指令:
      netstat -a | more
    如果一切正常的話,你將會看到類似底下的這一行:
      tcp   0      0 *:ssh         *:*         LISTEN
    那就表示 ssh 已經成功的啟動了!不過,如果萬一你的 Linux 系統並沒有安裝 ssh 這個服務呢?呵呵!那就安裝他吧!其實,ssh 這支服務的主要程式稱為 openSSH 囉!然後,如果您想要重先安裝 openssh 來提供 ssh 的服務,那麼 Red Hat 的網站上隨時更新的 Errata 您就不能不去看看!你可以按底下的連結上去 Red Hat 下載屬於您系統的最新的 openssh 這個套件!
      然後按下您的 Red Hat 版本,進入後,去尋找 openssh 字眼的套件,那個就是啦!然後按下連結之後,直接找到屬於您的系統版本,例如我都是直接捉 i386 的 RPM 檔案,然後回來以 root 身份執行:
        rpm -ivh openssh*
      如果您只是要升級 openssh 的話,那就使用:
        rpm -Uvh openssh*
      更有甚者,直接以 up2date 來升級,(不過會比較慢一些喔!)
        up2date -i openssh
      升級成功之後,就可以直接的以上面的方式來啟動 ssh 這個服務了!
       
      VBird 的經驗
      在上一次更新 openSSH 套件的時候,那是因為網路上發表了舊的 openssh 可能有些安全方面的問題,所以 VBird 就去更新了,但是沒想到更新完成之後 SSH 竟然不會動!當真是嚇了一大跳!後來,找了一些檔案之後,才發現,原來預設的 PAM 模組的屬性搞錯了!你可以到 /etc/pam.d 這個目錄下去看一下,會發現 sshd 的屬性竟然是 600,與其他的檔案屬性都不同,後來執行了:
      chmod 644 sshd
      就 OK 囉!如果你也更新之後發現有這個問題,可以參考看看囉!
    • Red Hat 6.x 以前版本的 Linux 啟動 ssh 服務:
      好了,那麼要如何的在 Red Hat 6.x 以前的版本上執行 ssh 這個服務呢?其實也是很簡單的,如前所說的, ssh 其實是 openssh 套件的一種,而 openssh 有使用到 openssl 這個資料保密的套件,(其實還有其他的套件需要安裝,不過,由於我這裡預設條件是您已經用『完整安裝』來安裝您的 Linux 系統,所以其他的套件應該都已經安裝完整了才對!) VBird 不是很建議使用 RPM 來安裝 openssh ,因為在 Red Hat 6.x 以前的版本上面安裝 openssh 的 RPM 實在是太麻煩了!所以,我們就使用 tarball 的方式來安裝吧
      下載 openssl 與 openssh:
      到哪裡下載呢?直接到他們的網站上去看看相關的訊息吧!到目前為止(2002/01/18),openssh 最新版本為 3.0.2 (2001/12/3 釋出),而 openssl 最新則是 0.9.6c (2001/12/21) 這個版本:

      或者您也可以在這裡下載 與 這兩個檔案。
      安裝:
      由於 openssh 會使用到 openssl 的資料,所以當然需要先安裝 openssl 之後,在安裝 openssh 囉:
       
      [root @tsai root]# cd /usr/local/src
      [root @tsai src]# tar -zxvf /root/openssh-3.0.2p1.tar.gz
      [root @tsai src]# tar -zxvf /root/openssl-0.9.6c.tar.gz
      [root @tsai src]# cd openssl-0.9.6c
      [root @tsai openssl-0.9.6c]# ./config --prefix=./usr/local/openssl
      將資料安裝在 /usr/local/openssl 這個目錄,這樣安裝的好處是,
      往後在移除該套件較為容易!直接移除該目錄就好了!
      ......
      [root @tsai openssl-0.9.6c]# make
      開始編譯囉!

      [root @tsai openssl-0.9.6c]# make test
      測試一下是否正常,應該不會有問題才是!

      [root @tsai openssl-0.9.6c]# make install
      安裝到 /usr/local/openssl 中囉!安裝好 openssl 之後,他的函式庫
      馬上就自動啟動了!然後開始安裝 openssh 吧!

      [root @tsai openssl-0.9.6c]# cd ../openssh-3.0.2p1
      [root @tsai openssh-3.0.2p1]# ./configure --prefix=/usr/local/openssh --with-pam --with-tcp-wrappers
      注意喔!上面是同一行喔! --with-pam 在加入 PAM 模組的安全防護,
      而 --with-tcp-wrappers 則是加入 TCP Wrappers 的安全防護囉!
      ......

      [root @tsai openssh-3.0.2p1]# cd contrib/redhat
      [root @tsai redhat]# cp sshd.pam /etc/pam.d/sshd
      這個步驟在將 PAM 這個安全模組拷貝到 PAM 的預設路徑去,
      也就是 /etc/pam.d 這個目錄啦!另外,特別注意, sshd 
      這個檔案的屬性必須為 644 ,而所有人是 root 才行,
      否則 ssh 不會動!!

      [root @tsai redhat]# cd ../..
      [root @tsai openssh-3.0.2p1]# make  <==編譯
      [root @tsai openssh-3.0.2p1]# make install 

      上面這樣就安裝完畢啦!

      啟動:
      再來就是需要啟動 SSH 這個套件了,你應該可以到 /usr/local/openssh 去,進入 /usr/local/openssh/sbin 去執行 sshd 這個檔案,也就是:
        /usr/local/openssh/sbin/sshd
      就完成啟動的程序囉!如果不相信的話,那就執行 netstat -a | more 看看有沒有 ssh 這個服務吧!
      既然啟動了 ssh 那麼 telnet 自然就不需要繼續存在囉!沒錯,因為 ssh 可以完全取代 telnet 的功能的!所以呢,請:
        vi /etc/inetd.conf
      找到底下這一行:
        telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
      在前面加上一個註解符號『#』就可以啦!然後退出之後,執行:
        /etc/rc.d/init.d/inet restart
      重新啟動 inet 這個服務,然後以 netstat -a | more 看一下,嘿嘿嘿嘿! telnet 的服務就不見了!那我們就可以使用 ssh 來取代囉!

    用戶端的 SSH 連線軟體
      Linux sysem:
      好了,現在我們知道主機可以使用 ssh 來進行連線的服務,但是怎樣在用戶端( Client )執行連線的軟體呢?哈哈!很簡單,如果你是以 Linux 系統來連線的話,那麼你應該可以在 /usr/bin 裡面找到一個 ssh 的軟體,(如果是使用 tarball 的話,那麼 ssh 就會在 /usr/local/openssh/bin 裡面囉!)你可以這樣來執行連線程式:
        ssh -l username host.name.domain
      假設我要以 vbird 這個帳號登入一個名為 testing.adsldns.org 的主機,那麼就以: ssh -l vbird testing.adsldns.org 來執行登入連線的程序!然後如果是第一次登入的話,你會發現到有一個訊息,告訴你要不要接受一個認證碼,直接選擇 yes 就可以連線囉!使用 ssh 最大的另一個好處,root 也可以登入喔
      Windows system:
      那萬一你是使用 Windows 為 Client 呢?那也沒問題,你可以到 PuTTy 的網站上下載 putty 這支程式:
        或者是在 下載。這支程式完全不需要安裝,直接以滑鼠雙擊他,就會自動的執行了!

      安全性的設定
        好了!雖然 openssh 是比較安全沒錯,但是並不是一定安全的!所以,你仍然可以設定一些簡單的安全防護來防止一些問題的發生!其實,說穿了,就是將一些你不想要讓他登入的 IP 擋掉他就是了,然後只開放一些可以登入的 IP 就是了!
        防火牆:
        由於 ssh 這個服務是開啟在 port 22 ,所以你可以使用 ipchains 或 iptables 來開放一些你允許的 IP 以 port 22 進入!
        TCP Wrappers:
        如果不會設定 ipchains 或 iptables ,那也沒關係!剛剛我們在安裝的時候不是有選擇 --with-tcp-wrappers 嗎?呵呵,這個時候就派的上用場了!你可以到 /etc/hosts.allow 去設定你允許的 IP 連線到你的主機裡面,例如你允許 192.168.1.1-192.168.1.255 連線到你的主機,那麼你可以:
          sshd : 192.168.1.0/24: Allow
        而將其他的 IP 都擋掉在 /etc/hosts.deny 當中:
          sshd : ALL : Deny
        如此一來則 ssh 只會開放給 192.168.1.1-255 之間的電腦囉!以後要再開放的話,那就再將其他的 IP 加到 /etc/hosts.allow 當中去就好囉!
      阅读(1824) | 评论(0) | 转发(0) |
      给主人留下些什么吧!~~