本文將向您介紹基本的linux游戲服務(wù)器安全保護措施,側(cè)重于debian/ubuntu,但是您可以將本文介紹的所有內(nèi)容應(yīng)用于其他linux發(fā)行版。
要保護游戲服務(wù)器,您應(yīng)該做的第一件事是更新本地存儲庫,并通過應(yīng)用最新的補丁來升級操作系統(tǒng)和已安裝的應(yīng)用程序。
關(guān)于ubuntu和debian:
$ sudo apt update && sudo apt upgrade -y
在fedora,centos或rhel上:
$ sudo dnf upgrade
2. 創(chuàng)建一個新的特權(quán)用戶帳戶
接下來,創(chuàng)建一個新的用戶帳戶。永遠不要以root用戶身份登錄服務(wù)器。相反,創(chuàng)建您自己的帳戶(<user>),賦予它sudo權(quán)限,并使用它登錄到您的服務(wù)器。
首先創(chuàng)建一個新用戶:
$ adduser <用戶名>
通過將(-a)sudo組(-g)附加到用戶的組成員身份,授予新用戶帳戶sudo權(quán)限:
$ usermod -a -g sudo <用戶名>
3.上傳您的ssh密鑰
使用ssh密鑰登錄到新游戲服務(wù)器。您可以使用ssh-copy-id命令將預(yù)先生成的ssh密鑰上傳到新服務(wù)器:
$ ssh-copy-id
@ip_address
現(xiàn)在,您無需輸入密碼即可登錄新服務(wù)器。
4. 安全的ssh
接下來,進行以下三個更改:
禁用ssh密碼認證
限制root遠程登錄
限制對ipv4或ipv6的訪問
使用您選擇的文本編輯器打開/ etc / ssh / sshd_config并確保以下行:
passwordauthentication yes
permitrootlogin yes
像這樣:
passwordauthentication no
permitrootlogin no
接下來,通過修改addressfamily選項將ssh服務(wù)限制為ipv4或ipv6 。要將其更改為僅使用ipv4(對大多數(shù)人來說應(yīng)該沒問題),請進行以下更改:
addressfamily inet
重新啟動ssh服務(wù)以啟用您的更改。請注意,在重新啟動ssh服務(wù)器之前,與游戲服務(wù)器建立兩個活動連接。有了額外的連接,您可以在重新啟動出錯的情況下修復(fù)所有問題。
在ubuntu上:
$ sudo service sshd restart
在fedora或centos或任何使用systemd的系統(tǒng)上:
$ sudo systemctl restart sshd
5. 啟用防火墻
安裝防火墻,啟用防火墻并對其進行配置,以僅允許您指定的網(wǎng)絡(luò)流量。簡易防火墻(ufw)是iptables的易于使用的界面,可大大簡化防火墻的配置過程。
您可以通過以下方式安裝ufw:
$ sudo apt install ufw
默認情況下,ufw拒絕所有傳入連接,并允許所有傳出連接。這意味著游戲服務(wù)器上的任何應(yīng)用程序都可以訪問互聯(lián)網(wǎng),但是任何嘗試訪問服務(wù)器的內(nèi)容都無法連接。
首先,確保您可以通過啟用對ssh、http和https的訪問來登錄:
$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https
然后啟用ufw:
$ sudo ufw enable
您可以通過以下方式查看允許和拒絕哪些服務(wù):
$ sudo ufw status
如果您想禁用ufw,可以通過鍵入以下內(nèi)容來禁用:
$ sudo ufw disable
您也可以使用firewall-cmd,它已經(jīng)安裝并集成到某些發(fā)行版中。
6. 安裝fail2ban
fail2ban是一個用于檢查服務(wù)器日志以查找重復(fù)或自動攻擊的應(yīng)用程序。如果找到任何內(nèi)容,它將更改防火墻以永久地或在指定的時間內(nèi)阻止攻擊者的ip地址。
您可以通過鍵入以下內(nèi)容來安裝fail2ban:
$ sudo apt install fail2ban -y
然后復(fù)制隨附的配置文件:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
并重新啟動fail2ban:
$ sudo service fail2ban restart
該軟件將不斷檢查日志文件以查找攻擊。一段時間后,該應(yīng)用程序?qū)⒔⒑芏嗟慕筰p地址列表。您可以通過以下方法請求ssh服務(wù)的當前狀態(tài)來查看此列表:
$ sudo fail2ban-client status ssh
7.刪除未使用的面向網(wǎng)絡(luò)的服務(wù)
幾乎所有l(wèi)inux游戲服務(wù)器操作系統(tǒng)都啟用了一些面向網(wǎng)絡(luò)的服務(wù)??赡苣MA羝渲写蠖鄶?shù),但是,需要刪除一些內(nèi)容。您可以使用ss命令查看所有正在運行的網(wǎng)絡(luò)服務(wù):
$ sudo ss -atpu
ss的輸出將取決于您的操作系統(tǒng)。這是您可能看到的示例。它顯示ssh(sshd)和ngnix(nginx)服務(wù)正在偵聽并準備連接:
tcp listen 0 128 *:http *:* users:((nginx,pid=22563,fd=7))
tcp listen 0 128 *:ssh *:* users:((sshd,pid=685,fd=3))
刪除未使用的服務(wù)(<service_name>)的方式將因您的操作系統(tǒng)及其使用的程序包管理器而異。
要刪除debian / ubuntu上未使用的服務(wù):
$ sudo apt purge
要在red hat / centos上刪除未使用的服務(wù):
$ sudo yum remove
再次運行ss -atup以確認不再安裝和運行未使用的服務(wù)。
本文介紹了保護linux游戲服務(wù)器的一些基本步驟。您還可以根據(jù)使用服務(wù)器的方式,啟用其他安全方法,包括單個應(yīng)用程序配置、入侵檢測軟件以及啟用訪問控制(例如,雙重身份驗證)等功能。