網站伺服器建置與管理上課補充教材
- 最新消息:
- 每週都有可能會有上機實作,要等老師檢查完畢才能夠下課!否則就不算有來上課!
- 回首頁
- 舊版進度介紹
Chapter 06:遠端連線伺服器: sshd, vnc 與 xrdp
- 遠端連線伺服器:
- 透過遠端連線的功能登入到伺服器,經常使用於工作站,或者是多人共用伺服器的環境,包括科學運算過程當中需要用到的數值模式模擬環境。
- 但如果你要使用這些功能,就得要管理你的用戶才行啊!
- 可能的話,最好還得要管理你的對外防火牆系統 (例如 gocloud 系統的對外連線限制喔!)
- 常見的模式:
- 透過純文字模式,目前主流為 ssh
- 透過圖形界面,包括 VNC, RDP 以及 Linux 模擬的 XRDP 功能!
- 什麼是 ssh 服務的金鑰系統加密功能?
- 整個金鑰系統的運作流程如下圖所示:
- 練習:聽完白板上面的說明後,請說明
- 當用戶端要傳送資料給伺服器端,資料是如何進行加密與解密?(用誰的公鑰?用誰的私鑰?)
- 當伺服器端要傳送資料給用戶端,資料是如何進行加密與解密?(用誰的公鑰?用誰的私鑰?)
- 所以,那一個鑰匙是不能夠外流的?
- CentOS 7 預設提供的 ssh 伺服器,與用戶端功能操作
- 預設針對整個 Internet 放行
- 預設啟動的埠口為 port 22
- 預設提供了 root 進行遠端登入
- 同時提供 scp 與 sftp 等伺服器功能。
- 練習:
- 觀察與想辦法設定,讓你的 port 22 防火牆不要讓整個 Internet 可以連接
- 使用 ssh root@localhost 來連接到自己的 ssh 伺服器,查看整個流程
- 登入後,查看自己家目錄的 .ssh 裡面有多出什麼資料?該資料的內容又如何?
- 查看一下自己系統中的 /etc/ssh/ssh_host* 的內容,看看有沒有正確對應的資料?
- 登出 root 的連線
- 刪除 /etc/ssh/ssh_host??? 當中的成對金鑰,然後重新啟動 sshd 服務
- 再次使用 ssh root@localhost 會出現什麼訊息?如何克服?
- 在原本的 student 身份下,進入到 /dev/shm ,然後使用 scp 將 localhost 的 /etc/ssh 目錄完整的複製到本目錄下
- 使用 sftp root@localhost 查看一下檔名與持續下載 /etc/pam.d 這個目錄。完成後請登出 sftp
- 在 client 端,使用 ssh -X root@server_ip someprogram 來直接操作 server 的軟體!
- sshd 取消 root 登入權限
- 前往 /etc/ssh/sshd_config 修改 Root 的權限,讓 root 無法登入,請注意要重新啟動 sshd 這個服務
- 嘗試以 ssh root@localhost 確認一下是否無法登入?
- 分別觀察 sshd 的狀態 (systemctl status) 以及登錄檔 (/var/log/messages, /var/log/secure),查看是否有相關資訊?
- 最終請重新放行 root 的 ssh 使用權 (因為老師需要進行成績修改的原因...)
- sshd 的啟動埠口 (port) 修改
- 讓啟動埠口存在兩個,分別是 port 22 與 port 543
- 如果無法啟動 port 543 ,可能原因為何?是否能夠在哪些登錄檔發現錯誤?又該如何處理?
- 該如何使用 ssh 連線到本機的 port 543 ?
- 該如何使用 scp 連線到本機的 port 543 去下載 /etc/group 檔案?
- 讓系統可以定期的在兩個 linux 之間進行資料的傳輸
- 先啟動 client 系統,然後使用 root 的身份操作 ssh-keygen 來建立好兩把金鑰
- 透過 ssh-copy-id 的方式,將公鑰傳送到 server 的 student 帳號底下
- 在 server 上面用 student 觀察是否存在了正確的金鑰檔案?
- 在 client 端,使用root 的身份,透過 rsync 的方法將 /etc 固定在每週日 2 點傳送給 server 的 student 的 ~student/backup/ 目錄中。
- 建立可以本機登入,但無法使用 ssh 登入的帳號
- 先使用 man sshd_config 的方式,搜尋 denygroups 的設定值,觀察如何設定與它的功能為何?
- 建立一個 denyssh 的群組,而且將這個群組設定到無法使用 sshd 的參數中
- 建立一個 nossh 的帳號,這個帳號還加入 denyssh 的次要群組,同時密碼為 1234hehehe
- 嘗試用 tty3 登入這個帳號
- 嘗試用 ssh nossh@localhost 登入系統
- PS: 可以用在特別帳號,讓這個帳號可以使用系統的其他全部服務,但是不可遠端接觸到本機的登入服務,例如 ftp 帳號、mail 帳號,
除了使用 /sbin/nologin 這個永遠都無法登入的 shell 之外,另外可以使用這個功能參數來限制 sshd 而已。
- VNC 伺服器
- 伺服器端先安裝 tigervnc-server 之類的軟體
- 第一次使用時,請參考 vncserver 的指令與參數
- 記得參考 port number 並據以修改 iptables
- 嘗試在 client 端使用 vncviewer 啟動連線到 server 端的功能看看。
- 嘗試看看能不能每次開機都啟用這個 VNC 服務呢?
- XRDP 伺服器
- 透過各種方式 (包括 epel) 安裝好 xrdp 軟體
- 啟動該軟體並且觀察軟體啟動的 port 為何?
- 記得放行防火牆功能
- 用戶端使用 windows 系統,然後連接到 server 端 (遠端連線) 看看是否可以順利連接呢?
- 特別防火牆功能
- 網路搜尋 knock 這個軟體,例如: https://pkgs.org/download/knock-server
- 安裝後,參考一下舊版資料 http://linux.vbird.org/linux_security/knockd.php 加以設定
- 在 client 端也安裝該軟體,然後嘗試敲擊 server 看看!再到 server 看看防火牆是否有啟動呢?
- 如此一來,你就無須擔心跳板的問題了!