[教學] CentOS 6.3 設定 – (1) 基本調效與 SSH 連線
在完成 最小安裝 與 網路設定 之後,此時你的 CentOS 已經處於 On Live 狀態,在預設的安裝中,CentOS 會內建並啟動 SSH 遠端連線的服務,且啟動防火牆,只允許 ICMP 與 SSH 連線,這表示你已經可以透過網路連線,而不再需要直接操作實體主機。
但,這樣就夠安全了嗎?其實 SSH 一點都不安全,當你的主機開啟此類服務時,表示任何人都可能透過網路的方式來嘗試連線到你的主機,透過 Port 掃瞄、字典檔或暴力破解,無論如何,root 密碼最終還是會被破解,而你的主機就淪為駭客的溫床。
因此,本文將引導大家透過設定 SSH ,降低被攻擊的可能,在配合防火牆的配置,只允許許可的網段連線,讓駭客無從而入。最後再針對環境配置,讓系統運作更加乾淨利落。
一、使用 SSH 連線 (PuTTY , PieTTY)
在剛安裝完後的主機,預設就會開啟 SSH 服務,而 Port 也為預設的 22,要遠端連線這個服務,就必須去下載 SSH 的 Client 軟體,一般在 Windows 環境下,幾乎所有使用 Linux 系統的玩家,都會推薦使用 PuTTY (支援中文的版本為 PieTTY) 這一套來連線。
只要輸入您的主機 IP 與 Port ,就會透過網路遠端連線到該主機
使用 SSH 第一次連線時,會進行 RSA2 的金鑰交換,來達成整個連線,傳輸資料的安全(加密傳輸),這就是 SSH 比一般連線還安全的原因(能防止中途攔截時,封包內容被解讀)
再來就會看到登入畫面,輸 root 帳戶與密碼就會登入成功了,這也意味著任何能夠知道 IP 的人,都能嘗試登入你的 root 帳號
二、設定 SSH 服務
如上面所說,目前的 SSH 是可能會被任何人連線的,因此,我們可以透過 SSH 服務的設定檔來增加安全性,目標作以下幾項變更:
- 更改 Port 為 3322 (防止掃瞄Port)
- 不允許 root 登入(自己建立另一個新使用者來登入)
- DNS反查關閉(加快登入速度)
- 只允許指定的帳號登入(如範例為 yenpai 和 jess)
SSH 服務的設定檔 /etc/ssh/sshd_config
[root@localhost ~]# vi /etc/ssh/sshd_config Port 3322 PermitRootLogin no UseDNS no AllowUsers yenpai jess [root@localhost ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ] [root@localhost ~]#
設定完後要重啟服務(service sshd restart)才會真正生效,可以透過 netstat 指令來確認重啟後的 SSH 服務是否以 Port 3322 來接受連線
[root@localhost ~]# netstat -ant | grep :3322 tcp 0 0 0.0.0.0:3322 0.0.0.0:* LISTEN tcp 0 0 :::3322 :::* LISTEN
目前 SSH 的 Port 已經被更改到 3322,並且 root 帳戶無法登入,所以要建立另一個使用者帳戶來登入(adduser 新增帳戶,passwd 設定帳戶密碼)
[root@localhost ~]# adduser yenpai [root@localhost ~]# passwd yenpai Changing password for user yenpai. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@localhost ~]#
三、設定防火牆
目前 SSH 的 Port 已經被更改到 3322,並且 root 帳戶無法登入,但實際上,預設的防火牆(iptables)是僅接受 Port 22 的連線,所以目前是沒有任何人可以透過網路來連線到 Port 3322 的。當我們未來新增一個服務時,也會希望開啟相對應的防火牆設定,因此,我的習慣是將 iptables 設定撰寫成一個 Shell Script 檔,日後只要更改這個檔案並執行,新的 iptables 設定就會生效。
在 root 的家目錄產生一個命名為 set_iptables.sh 的新檔案(你可以自由命名)
[root@localhost ~]# vi ~/set_iptables.sh #!/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATH iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ### 允許本機和已經建立連線的封包通過 ### iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ### icmp 全部開放 ### iptables -A INPUT -p icmp -j ACCEPT ### sshd 內網 開放 ### iptables -A INPUT -i eth0 -p tcp -s 192.168.1.0/24 --dport 3322 -j ACCEPT ### 儲存設定檔給下次開機使用 ### iptables-save > /etc/sysconfig/iptables
執行這個 Shell Script 並查看目前的 iptables 設定
[root@localhost ~]# sh ~/set_iptables.sh [root@localhost ~]# [root@localhost ~]# iptables -L -n Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp dpt:3322 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@localhost ~]#
從上面可以發現,目前 iptables 設定只允許本機、ICMP 封包和在 192.168.1.0/24 網段的 SSH 連線,這樣是不是安全許多了呀。
下次要新連線主機時,就要記得你的 Port 已經被更改為 3322 喔。
四、一些基本的調效(非必要)
其實在 CentOS 安裝時若選用最小安裝,那系統已經是十分乾淨,直接運作都十分穩定,以下設定僅是提供參考,可視情況再微調。
關閉 SELinux
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0
安裝常用的工具
#網路工具 yum -y install sudo wget openssh-clients #排程,發信 yum -y install vixie-cron crontabs postfix
設定開機時自動啟用的服務(僅列出習慣會開的服務)
chkconfig crond on chkconfig iptables on chkconfig lvm2-monitor on chkconfig messagebus on chkconfig network on chkconfig rsyslog on chkconfig sshd on chkconfig udev-post on
更新所有套件
yum -y update
修改語系(通常預設為 UTF8 就可,但也可能需要建構 BIG5 環境)
vi /etc/sysconfig/i18n #LANG="en_US.UTF-8" LANG="en_US" SYSFONT="latarcyrheb-sun16"
修改本機 tty console (使用網路 SSH 來連,不需開太多的 Console 端)
vi /etc/sysconfig/init ACTIVE_CONSOLES=/dev/tty[1-2]
您可以延伸閱讀這些文章:
友站鏈結
標籤
Cache CentOS Convert Image Convert Photo DISK ESX Firewall FTP Highlighter htop HTTP iftop ImageMagick iotop IPTABLES LinkWithin Linux Manager Tools Memory Network Network Setting Nginx OS PHP PHP-FPM Proftpd Security Server Service SSH Syntax VMDK VMware VMware Tools vSphere Web Windows Live Write WLW WordPress WordPress Plugin XmlRpc 資訊安全 防火牆免責聲明
本網站對於任何使用或引用本網站網頁資料,引致之損失或損害,概不負責。 本網站亦有權隨時刪除、暫停或編輯本網站所登載之各項資料,以維護本網站之權益。