本文內(nèi)容基于AlmaLinux 8系統(tǒng)。
以下為一鍵運(yùn)行腳本,此腳本在AlmaLinux8,9系統(tǒng)上測試通過,其它版本系統(tǒng)無法保證全部功能正常運(yùn)行。推薦僅在全新的服務(wù)器操作系統(tǒng)上運(yùn)行此腳本,如二次執(zhí)行可能會出現(xiàn)未知錯(cuò)誤!
# bash <(curl -L https://github.com/AlexWalker97/Shell/raw/main/linux_init.sh)
一、修改主機(jī)名
通常在購買一臺新的服務(wù)器時(shí)服務(wù)器Hostname會被云廠商定義為特定的名稱,如果需要修改的話可以按照下面步驟進(jìn)行:
1. 查看系統(tǒng)信息
你可以使用下面指令查看到主機(jī)的相關(guān)信息:
# hostnamectl
例如下面截圖是我的服務(wù)器信息:
2. 修改主機(jī)名
接下來修改服務(wù)器主機(jī)名:
# hostnamectl set-hostname 主機(jī)名
?修改成功并重連ssh后可以看到服務(wù)器名稱變成了server007:
二、禁用ICMP協(xié)議
部分攻擊者會使用ping工具來測試服務(wù)器是否"存在",我們可以禁用ICMP協(xié)議(讓我們的服務(wù)器不響應(yīng)其它服務(wù)器的ping請求)來保護(hù)服務(wù)器安全。
在 /etc/sysctl.conf 文件中增加一行?net.ipv4.icmp_echo_ignore_all = 1 (= 號后面的值0表示允許,1表示禁止),之后執(zhí)行 sysctl -p 使新配置生效:
# echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
# sysctl -p
此時(shí)使用windows cmd工具ping服務(wù)器時(shí)會發(fā)現(xiàn)無法ping通:
三、關(guān)閉SELinux
y1s1,SELinux是個(gè)好東西,它能為linux服務(wù)器帶來很強(qiáng)的安全防護(hù)功能。但是這個(gè)系統(tǒng)總是會和各種軟件之間出現(xiàn)莫名其妙的沖突,有些問題排查極為浪費(fèi)時(shí)間。在此直接將SELinux一關(guān)了之,再見!
?輸入getenforce檢測selinux是否打開:
# getenforce
如結(jié)果如下:
?
Enforcing或Permissive表示SELinux為已打開(后者表示臨時(shí)關(guān)閉,但重啟后還會打開),若結(jié)果為Disabled則代表selinux系統(tǒng)未啟用,無需關(guān)閉。
?輸入以下指令已永久關(guān)閉SELinux:
# setenforce 0
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
四、修改ssh端口
22端口為服務(wù)器默認(rèn)ssh端口,因此易受攻擊。我們可以通過修改服務(wù)器默認(rèn)ssh端口的方式來規(guī)避風(fēng)險(xiǎn)。
1. 準(zhǔn)備端口
首先確認(rèn)我們需要開放的ssh端口(此處以端口1234為例)未被占用:
安裝lsof工具(便捷查看端口占用情況):
# yum -y install lsof
查看端口占用:
# lsof -i:1234
結(jié)果如下所示則代表端口未被使用:
2. 防火墻開放端口
執(zhí)行以下命令開放1234端口:
# firewall-cmd --add-port=1234/tcp --permanent
重啟防火墻:
# firewall-cmd --reload
查看防火墻已開放端口:
# firewall-cmd --zone=public --list-ports
結(jié)果如下:
3.修改ssh端口?
修改文件/etc/ssh/sshd_config:
# vi /etc/ssh/sshd_config
將其中的#Port 22取消注釋并修改為Port 1234:
重啟sshd服務(wù):
# systemctl restart sshd
我們可以通過sudo lsof -i -P -n | grep LISTEN指令來查看所有系統(tǒng)監(jiān)聽的端口:?
之后我們在ssh工具中只能使用1234端口登錄服務(wù)器。
五、創(chuàng)建新用戶
為了安全起見一般不建議直接使用root用戶進(jìn)行操作,為此我們需要創(chuàng)建新的用戶,并在需要時(shí)給予他們r(jià)oot權(quán)限。新用戶名最好不要使用user,admin等常見詞,以下使用user1僅作為演示。
1. 創(chuàng)建用戶
# adduser 用戶名
2. 修改密碼
為剛剛創(chuàng)建的用戶設(shè)置密碼:
# passwd 用戶名
完成后結(jié)果如下:
3. 賦予新用戶管理員權(quán)限
在AlmaLinux 8系統(tǒng)上,用戶組 wheel 成員都可以使用sudo以管理員權(quán)限訪問系統(tǒng)。如果你想要新創(chuàng)建的用戶擁有管理員權(quán)限,添加用戶到wheel用戶組:
# usermod -aG wheel 用戶名
查看屬于wheel組中的用戶:
# cat /etc/group |grep wheel
結(jié)果如下:
六、禁止root用戶遠(yuǎn)程登陸
這點(diǎn)十分重要。一臺暴露在互聯(lián)網(wǎng)上的服務(wù)器每天可能會受到成千上百次的ip掃描或root密碼暴力破解,其中遠(yuǎn)程ssh連接的用戶名基本默認(rèn)為root,因此我們有必要禁止root用戶遠(yuǎn)程登陸,并使用我們上一步創(chuàng)建的新用戶名登錄。
1. 修改配置:
# vi /etc/ssh/sshd_config
將其中如下圖位置所示Permitrootlogin改為no:
2.?重啟sshd服務(wù):
# systemctl restart sshd
現(xiàn)在如果我們斷開此次ssh會話并再次嘗試使用root登錄會有如下報(bào)錯(cuò):
這說明修改已經(jīng)生效。
七、(可選)為服務(wù)器開啟bbr
TCP BBR是谷歌出品的TCP擁塞控制算法,可以使 Linux 服務(wù)器顯著地提高吞吐量和減少 TCP 連接的延遲。Linux4.9之后的內(nèi)核自帶bbr算法,如果linux內(nèi)核版本低于4.9需要升級內(nèi)核,這篇文章不會涉及到服務(wù)器升級內(nèi)核的內(nèi)容,僅針對服務(wù)器內(nèi)核>4.9的系統(tǒng)。
1.查看內(nèi)核
$ uname -r
如下可以看到我們的內(nèi)核為4.18,因此可以直接開啟bbr。
2.開啟bbr并設(shè)定隊(duì)列算法為fq_codel(隊(duì)列算法有很多種如:fq,fq_pie,cake等,這里選擇fq_codel演示):
首先進(jìn)入管理員賬戶:
$ sudo su
之后執(zhí)行:
# echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
# echo "net.core.default_qdisc = fq_codel" >> /etc/sysctl.conf
# sysctl -p
執(zhí)行這一步時(shí)可能會有報(bào)錯(cuò):"sysctl: setting key "net.core.default_qdisc": No such file or directory",我們直接忽略掉錯(cuò)誤重啟機(jī)器。
3.重啟電腦后輸入如下指令:
$ sysctl net.ipv4.tcp_congestion_control
$ sysctl net.core.default_qdisc
$ lsmod | grep bbr
如果均出現(xiàn)bbr則說明啟用成功,如下圖所示:
文章來源:http://www.zghlxwxcb.cn/news/detail-421537.html
總結(jié)
以上是一臺新服務(wù)器到手后的一些簡單安全防護(hù)及優(yōu)化內(nèi)容,更高級的保護(hù)措施(如:fail2ban,蜜罐技術(shù)等)之后有需要的話會再匯總成一篇文章,歡迎關(guān)注~文章來源地址http://www.zghlxwxcb.cn/news/detail-421537.html
到了這里,關(guān)于Linux服務(wù)器初始化工作的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!