Ubuntu
使用 pam 通過特定 ip 配置 ssh 訪問
我目前正在嘗試配置伺服器,並且僅當 ssh 來自文件 /etc/remote-hosts 中存在的 IP 時,我才允許 UID 為 6000-6500 的每個使用者通過 ssh 進入我的伺服器。我已經有一種方法可以將希望配置此條件的使用者的使用者名放在wantedUIDS 上。
目前我有以下內容
sudo nano /etc/security/access.conf
:# This line works just fine + : @g67 asist : ALL # This line is commented because I don't know what this will do or if this will work. # + : pam_listfile.so item=user file=/etc/wantedUIDS : pam_listfile.so item=ip file=/etc/remote-hosts
這個對嗎?這行得通嗎?我不知道我是否可以在這個特定文件中使用pam 文件語法…
iptables``OUTPUT
只能跟踪鏈中的 UID 或 GID(按名稱或數值) 。因此它不會在INPUT
鏈中工作(預設情況下)。為此,我建議您創建一個使用者組(employees
例如)。然後將允許 SSH 訪問的所有使用者添加到該employees
組。然後編輯
/etc/sshd_config
文件,如下所示:AllowGroups employees
您可以在此配置文件中添加 IP 地址(白名單),但如果您的列表很長,它可能看起來很笨拙。而是
iptables
以自動方式使用 , 。接下來,跳到 iptables。假設您的 IP 白名單包含十 (10) 個地址(在此範例中我將使用虛擬私有 IP 地址):
$ cat whitelist.txt 10.0.0.0/24 10.2.1.3 192.168.10.0/24 192.168.22.25 172.16.4.1 172.17.80.0/26 192.168.80.4/30 10.10.10.0/26 192.168.1.1 172.20.20.4
我們可以使用簡單的 bash 腳本將所有這些 IP 地址添加到 iptables
$ cat script.sh #!/bin/bash for i in $(cat whitelist.txt) do iptables -I INPUT -s $i -p tcp -m tcp --dport 22 -j ACCEPT done iptables -I INPUT -p tcp -m tcp --dport 22 -j REJECT
這就是你所需要的。您現在可以測試功能。如果一切順利,請考慮保存 iptables 規則。