CentOS 7 安裝方式很簡單,所以就不再贅述,如果想要教學指南可參考CentOS 7 安裝,本篇只介紹安裝完後設定的指令。
帳號及密碼
變更 root 密碼
如果你在圖形化介面安裝時 CentOS 時已經有設定 root 密碼,其實可以跳過這個步驟,但是如果你的 root 密碼是使用預設,請務必、一定要在登入的第一時間修改密碼。
新增使用者帳號
因為安全性考量,在玩弄 CentOS 時非常不建議使用 root 帳號,非常容易出人命,所以新建一個帳號來玩耍,如果有需要 root 權限,再使用 sudo 就好了。
安裝及設定套件
檢查 yum 是否安裝
yum 套件非常強大,專司 package 的安裝、更新、移除等工作。
如果有類似以下的內容表示已有安裝 yum1 2 3 4
| yum-metadata-parser-1.1.4-10.el7.x86_64 yum-cron-3.4.3-118.el7.centos.noarch yum-3.4.3-118.el7.centos.noarch yum-plugin-fastestmirror-1.1.31-25.el7_0.noarch
|
安裝 sudo
權限管理套件,能暫時得到 root 權限。
檢查是否已安裝1
| yum list installed | grep sudo
|
在 root ALL=(ALL) ALL
下面複製一樣的內容,並把 root
改為帳號,例如
或是希望使用 sudo 時免輸入密碼
1
| user01 ALL=(ALL) NOPASSWD:ALL
|
以下所有動作都應該使用 sudo 或是先切換成 root 身分操作喔!
禁止 root 使用 ssh 登入
避免有心人士得到 root 密碼後進去搞破壞,所以乾脆不要打開 root 的 ssh。
找到 #PermitRootLogin yes
取消註解,並把 yes
改為no
。
變更 ssh port
ssh 的 port 預設為22,很常成為攻擊的目標,避免不必要的麻煩可以把它改掉。
找到 #Port 22
取消註解並改成你想要的阜號 (1024 – 65535,為避免衝突請先參考 這裡)
安裝及設定 firewalld
firewalld 是 CentOS 7 預設的防火牆使用者介面,安裝後可以查看防火牆狀態,雖然介面是 firewalld,底層仍然是 iptables。
修改設定1
| vi /etc/firewalld/services/ssh.xml
|
讓新的 ssh port 可以通過防火牆,把原本的 port="22″
改為你設定的阜號
安裝及設定 fail2ban
有些無聊人士會使用暴力破解法去猜登入密碼,為了避免這種問題,所以使用 fail2ban 來讓短時間登入失敗次數過多的 ip 被封鎖。
如果失敗,可能因為套件不在套件褲內,先執行以下指令,再用 yum 安裝1
| rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
|
修改 log 設定1
| vi /etc/fail2ban/fail2ban.conf
|
把 #logtarget = SYSLOG
取消註解並更改路徑為/var/log/fail2ban.log
設定封鎖規則1 2
| cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local vi /etc/fail2ban/jail.local
|
找到[sshd]
,在他前面新增規則如下
登入失敗連續 3+1 次,封鎖 43200 秒1 2 3 4 5 6
| [ssh-iptables] enabled = true filter = sshd logpath = /var/log/secure maxretry = 3 bantime = 43200
|
如果沒有作用請執行1
| systemctl restart fail2ban.service
|
檢查 ssh 的封鎖狀態1
| fail2ban-client status sshd
|
誤鎖救援方式
查看被 f2b-ssh-iptables 規則所封鎖的 IP1
| iptables f2b-ssh-iptables -L
|
解除封鎖,結尾的 N 表示第幾個 IP1
| iptables -D f2b-ssh-iptables N
|