Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> Linux VPS系統安全設置基礎教程

Linux VPS系統安全設置基礎教程

日期:2017/8/16 9:26:42      編輯:Linux教程
 

雖然說 Linux 系統比 Windows 安全性要高一些,不過一些簡單的安全配置也是必要的。互聯網上有很多工具采用字典方式掃描套取你的管理員密碼,我們可以創造一些麻煩出來,增加被破譯的可能性。

今天,我就來分享一些Linux VPS系統安全設置方面的經驗。

一、用戶權限安全設置

root權限太高,誤操作就相當危險,所以日常操作使用普通賬號,只有特定時候才使用su切換到root身份。

1、新建普通用戶,比如chendexin

useradd chendexin

2、修改密碼,比如root123

passwd root123

3、將帳號加入wheel組

usermod -G wheel chendexin

4、設置只允許這個組的帳號,使用su命令切換到root

vim /etc/pam.d/su

找到 #auth required pam_wheel.so use_uid

去掉行首的注釋符 # 然後使用 :wq 保存退出

接著vim /etc/login.defs

在最末添加 SU_WHEEL_ONLY yes,再用:wq保存退出即可。

Ps:執行 echo "SU_WHEEL_ONLY yes">>/etc/login.defs 亦可。

現在,再建立新的普通帳號,是無法使用su命令切換到root組了,感興趣的可以測試下效果。

5、刪除掉不需要的用戶和用戶組

禁止所有默認的被操作系統本身啟動的並且不必要的賬號,賬號越多,系統就越容易受到攻擊。

userdel adm

userdel lp

userdel sync

userdel shutdown

userdel halt

userdel news

userdel uucp

userdel operator

userdel games

userdel gopher

userdel ftp

groupdel lp

groupdel news

groupdel uucp

groupdel games

groupdel dip

groupdel pppusers

6、鎖定口令文件

執行 chattr 命令給下面的文件加上不可更改屬性,從而防止非授權用戶獲得權限。

BASIC
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow

二、SSH安全設置(修改SSH端口)

默認的SSH使用22端口,眾所周知,所以我們有必要自定義只有自己才知道的端口號,而且增加那些惡意掃描端口的難度,建議把SSH端口改到10000以上,比如使用23212,如下修改:

Ps:修改前,請執行iptables -nL 確認防火牆未設置非22/80訪問限制規則,否則可能導致修改後無法使用自定義端口連接就悲劇了!

vim /etc/ssh/sshd_config 編輯SSH配置文件

01、找到 #Port 22,去掉#號,並在下面添加 Port 23212(先保留22端口,等23212成功連接再去掉22,保險做法)

02、繼續找到 #UseDNS yes,改成UseDNS no,可以提高ssh的連接速度;

03、找到 #PermitRootLogin Yes 改成 PermitRootLogin no 禁止root遠程使用ssh登錄

04、找到 #PermitEmptyPasswords no,去掉#號, 禁止空密碼登錄

最後,使用 :wq 保存退出,再執行 service sshd restart 重啟 ssh服務即可生效。

此時,可以新開一個終端,測試能否通過23212端口連線,如果可以就把之前保留的port 22刪除即可。

三、防火牆簡單安全設定

VPS是直接使用公網IP的,防火牆還是得簡單設置下。

前期如下規劃:

僅作為web服務器使用,所以只需要開放SSH和HTTP端口即可,即只要開放上面定義的23212和80端口,由於不使用ftp,本例未提到21號端口,實際使用請注意辨別。

1、准備工作

由於操作防火牆具有一定的誤操作風險,很可能導致自己也被阻擋在外的悲劇,所以操作防火牆之前事先一定要先建立一個關閉防火牆的計劃任務,比如:

執行 crontab -e 加入:

BASIC
*/5 * * * * root /etc/init.d/iptables stop

表示每5分鐘停止一次防火牆,以防誤操作把自己擋在外面,就算出現誤操作,5分鐘之內將會停止,也不會造成悲劇,這是一個技巧!

2、防火牆設置腳本

以下代碼我親測無誤,請放心使用,策略說明:

01、僅開通HTTP(80)和SSH(自動抓取)端口,其他一律拒絕訪問!可根據實際需要在第10行添加其他端口,比如FTP的21端口、smtp25端口等。

02、單向禁ping設置,即外部IP無法ping通你的公網IP。

策略代碼:

BASIC
#!/bin/bash
ssh_port=`netstat -nutlp | grep sshd | grep 0.0.0.0 | awk '{print $4}' | cut -d ":" -f2`
iptables -F
iptables -F -t nat
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 80,$ssh_port -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
/etc/init.d/iptables save
exit 0

確認無誤後,記得把第1步中的任務計劃取消。

如我的VPS防火牆規則如下:

Linuxsafe01.png

四、其他安全設置

1、禁ping

執行如下命令即可:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

然後用你的電腦 ping 服務器IP就可以看到效果了!

當然如果你用了上面的防火牆腳本,就已經自帶禁ping功能了。兩種方法的區別如下:

以上方法,ping能夠返回消息(前提是防火牆未做阻擋規則,否則直接超時):

Linuxsafe02.png

采用防火牆的方法,則直接超時:

Linuxsafe03.png

Ps:個人推薦使用上文的防火牆腳本設置,更徹底。

2、開啟TCP SYN Cookie保護

執行 echo 1 > /proc/sys/net/ipv4/tcp_syncookies 即可。

做到這裡,你的VPS已經具備不錯的安全性了,當互聯網沒有絕對的安全可言,我們必須時刻注意網絡安全動態,隨時對已經暴露出的和潛在安全漏洞進行修補。

Ps:除了安全設置外,還可以針對VPS做一些優化設置,請參考陳德馨之前的文章:Linux VPS的優化方法收集與整理

Copyright © Windows教程網 All Rights Reserved