CentOS 7 初始化設定

Tak Matsumoto

CentOS 7 安裝方式很簡單,所以就不再贅述,如果想要教學指南可參考CentOS 7 安裝,本篇只介紹安裝完後設定的指令。

帳號及密碼

變更 root 密碼:

如果你在圖形化介面安裝時 CentOS 時已經有設定 root 密碼,其實可以跳過這個步驟,但是如果你的 root 密碼是使用預設,請務必、一定要在登入的第一時間修改密碼。

修改 root 密碼
1
passwd

新增使用者帳號:

因為安全性考量,在玩弄 CentOS 時非常不建議使用 root 帳號,非常容易出人命,所以新建一個帳號來玩耍,如果有需要 root 權限,再使用 sudo 就好了。

新增使用者(user01)
1
adduser user01
設定密碼
1
passwd user01

安裝及設定套件

檢查 yum 是否安裝

yum 套件非常強大,專司 package 的安裝、更新、移除等工作。

檢查 yum 是否已安裝
1
rpm -qa | grep yum
如果有類似以下的內容表示已有安裝 yum
1
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
安裝 sudo
1
yum install sudo
修改 sudo 設定
1
vi /etc/sudoers

root ALL=(ALL) ALL 下面複製一樣的內容,並把 root 改為帳號,例如

1
user01 ALL=(ALL) ALL

或是希望使用 sudo 時免輸入密碼

1
user01 ALL=(ALL) NOPASSWD:ALL

以下所有動作都應該使用 sudo 或是先切換成 root 身分操作喔!

禁止 root 使用 ssh 登入

避免有心人士得到 root 密碼後進去搞破壞,所以乾脆不要打開 root 的 ssh。

修改 ssh 設定
1
vi /etc/ssh/sshd_config

找到 #PermitRootLogin yes 取消註解,並把 yes 改為no

變更 ssh port

ssh 的 port 預設為22,很常成為攻擊的目標,避免不必要的麻煩可以把它改掉。

修改 ssh 設定
1
vi /etc/ssh/sshd_config

找到 #Port 22 取消註解並改成你想要的阜號 (1024 – 65535,為避免衝突請先參考 這裡)

重啟 ssh
1
service sshd restart

安裝及設定 firewalld

firewalld 是 CentOS 7 預設的防火牆使用者介面,安裝後可以查看防火牆狀態,雖然介面是 firewalld,底層仍然是 iptables。

使用 yum 來安裝
1
yum install firewalld
修改設定
1
vi /etc/firewalld/services/ssh.xml

讓新的 ssh port 可以通過防火牆,把原本的 port="22″ 改為你設定的阜號

重載
1
firewall-cmd --reload

安裝及設定 fail2ban

有些無聊人士會使用暴力破解法去猜登入密碼,為了避免這種問題,所以使用 fail2ban 來讓短時間登入失敗次數過多的 ip 被封鎖。

用 yum 安裝套件
1
yum install fail2ban
如果失敗,可能因為套件不在套件褲內,先執行以下指令,再用 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
chkconfig fail2ban on
啟動服務
1
service fail2ban start
如果沒有作用請執行
1
systemctl restart fail2ban.service
檢查 ssh 的封鎖狀態
1
fail2ban-client status sshd

誤鎖救援方式

查看規則,應該可以找到名為 f2b-ssh-iptables 的 chain
1
iptables -L
查看被 f2b-ssh-iptables 規則所封鎖的 IP
1
iptables f2b-ssh-iptables -L
解除封鎖,結尾的 N 表示第幾個 IP
1
iptables -D f2b-ssh-iptables N
Share Comments