Linux伺服器安全登入設定記錄

2021-09-22 10:48:25 字數 3557 閱讀 2335

在日常運維工作中,對加固伺服器的安全設定是乙個機器重要的環境。比較推薦的做法是:

1)嚴格限制ssh登陸(參考:linux系統下的ssh使用(依據個人經驗總結)):

修改ssh預設監聽埠

禁用root登陸,單獨設定用於ssh登陸的賬號或組;

禁用密碼登陸,採用證書登陸;

listenaddress繫結本機內網ip,即只能ssh連線本機的內網ip進行登陸;

2)對登陸的ip做白名單限制(iptables、/etc/hosts.allow、/etc/hosts.deny)

3)可以專門找兩台機器作為堡壘機,其他機器做白名單後只能通過堡壘機登陸,將機房伺服器的登陸進去的口子收緊;

另外,將上面限制ssh的做法用在堡壘機上,並且最好設定登陸後的二次驗證環境(google-authenticator身份驗證)

4)嚴格的sudo許可權控制(參考:linux系統下的許可權知識梳理)

5)使用chattr命令鎖定伺服器上重要資訊檔案,如/etc/passwd、/etc/group、/etc/shadow、/etc/sudoers、/etc/sysconfig/iptables、/var/spool/cron/root等

6)禁ping(echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all)

今天這裡主要說下伺服器安全登陸的白名單設定,通過下面兩種方法:

1)iptables對ssh埠做限制;

2)/etc/hosts.allow和/etc/hosts.deny限制;這兩個檔案是控制遠端訪問設定的,通過他可以允許或者拒絕某個ip或者ip段的客戶訪問linux的某項服務。

如果當iptables、hosts.allow和hosts.deny三者都設定時或設定出現衝突時,遵循的優先順序是

hosts.allow > hosts.deny >iptables

下面來看一下幾個限制本地伺服器登陸的設定:

1)iptables和hosts.allow設定一致,hosts.deny不設定。如果出現衝突,以hosts.allow設定為主。

[root@localhost ~]# cat /etc/sysconfig/iptables

.....

-a input -s 192.168.1.0/24 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 114.165.77.144 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 133.110.186.130 -m state --state new -m tcp -p tcp --dport 22 -j accept

sshd:192.168.1.*,114.165.77.144,133.110.186.130,133.110.186.139:allow     //最後的allow可以省略

如上的設定,133.110.186.139雖然沒有出現在iptables的白名單設定裡,但是出現在hosts.allow設定裡,那麼它是允許登陸本地伺服器的;

也就是說hosts.allow裡設定的ip都可以登陸本地伺服器,hosts.allow裡沒有設定而iptables裡設定的ip不能登陸本地伺服器;

所以,只要hosts.allow裡設定了,iptables其實就沒有必要再對ssh進行限制了;

2)hosts.allow不設定,iptables和hosts.deny設定(二者出現衝突,以hosts.deny為主)

[root@localhost ~]# cat /etc/sysconfig/iptables

.....

-a input -s 192.168.1.0/24 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 114.165.77.144 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 133.110.186.130 -m state --state new -m tcp -p tcp --dport 22 -j accept

以上雖然133.110.186.130在iptables裡設定了,但是在hosts.deny裡也設定了,這時要遵循hosts.deny的設定,即133.110.186.130這個ip不能登陸本地伺服器;

也就是說上面只有192.168.1.0網段和114.165.77.144能登陸本地伺服器;

3)當iptables、hosts.allow、hosts.deny三者都設定時,遵循的hosts.allow!

[root@localhost ~]# cat /etc/sysconfig/iptables

.....

-a input -s 192.168.1.0/24 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 114.165.77.144 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 133.110.186.130 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 133.110.186.133 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 133.110.186.137 -m state --state new -m tcp -p tcp --dport 22 -j accept

上面設定之後,只有hosts.allow裡面設定的192.168.1.*,114.165.77.144,133.110.186.130,133.110.186.139這些ip能登陸本地伺服器

4)還有一種設定,hosts.deny不動,在hosts.allow裡面設定deny

[root@localhost ~]# cat /etc/sysconfig/iptables

.....

-a input -s 192.168.1.0/24 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 114.165.77.144 -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -s 133.110.186.130 -m state --state new -m tcp -p tcp --dport 22 -j accept

sshd:all:deny  

//這個本來是在hosts.deny裡的設定,也可以放在這,表示出了上面的ip之外都被限制登陸了。

5)iptables關閉,則hosts.allow和hosts.deny檔案同時設定才有效。

***************當你發現自己的才華撐不起野心時,就請安靜下來學習吧***************

分類: 

效能除錯及安全防範

linux 伺服器安全登入手冊

公鑰金鑰登入 服務端公金鑰生成 ssh keygen t rsa 然後回撤一路敲下去將.ssh目錄下的私鑰匯出,公鑰複製到authorized keys中 這裡儲存公鑰,許可權是400 r 1 root root 408 dec 2114 28 authorized keys 這是私鑰供外部使用 r...

設定安全的linux伺服器

1 用防火牆關閉不須要的任何埠 2 更改ssh埠 3 刪除系統多餘的賬號 userdel adm userdel lp userdel sync userdel shutdown userdel halt userdel news userdel uucp userdel operator user...

伺服器安全設定

一 作業系統的安裝我這裡說的作業系統以windows 2000為例,高版本的windows也有類似功能。格式化硬碟時候,必須格式化為ntfs的,絕對不要使用fat32型別。c盤為作業系統盤,d盤放常用軟體,e盤 格式化完成後立刻設定磁碟許可權,c盤預設,d盤的安全設定為administrator和s...