
我剛剛向雲端提供者租用了一台伺服器,該提供者無法將 SSH 存取列入白名單。我正在嘗試找出一種方法來遠端將我的 IP 位址列入白名單,以便透過 SSH 存取我的伺服器並將其他所有人列入黑名單。我正在考慮使用 IP 表,但這永遠不會起作用,因為我的 IP 位址是動態的。類似AWS安全群組。我願意使用付費服務,只要它不貴,或者如果有人知道一種服務或一種有效的方法,在 ip 更改/鎖定的情況下我可以遠端管理 iptables,那就更好了。
答案1
使用腳本更新 iptables 和 DDNS 服務相當簡單。
將 IP 操作放在單獨的鏈中:
-A MYIP -s 1.2.3.4/32 -j ACCEPT
-A MYIP -j DROP
然後在你的 SSH 連接埠上運行這個鏈,例如
-A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 22 -j MYIP
然後定期(例如)執行腳本,該腳本對動態 IPcron
執行操作,並在檢測到變更時刷新/重寫鏈。nslookup
MYIP
#!/bin/bash
IPSAVE=/etc/sysconfig/iptables
update_iptables() {
MN=$1
CHAIN=$2
IP=`nslookup ${MN} | tail --lines=-3 | grep Address | awk '{print $2}'`
if [ `echo ${IP} | wc -m` -gt 0 ]
then
C=`grep -c "\-A ${CHAIN} \-j " ${IPSAVE}`
D=`grep "\-A ${CHAIN} \-s " ${IPSAVE} | grep -c "${IP}"`
if [ ${C} -gt 0 ] && [ ${D} -eq 0 ]
then
/sbin/iptables -F ${CHAIN}
/sbin/iptables -A ${CHAIN} -s ${IP}/32 -j ACCEPT
/sbin/iptables -A ${CHAIN} -j DROP
fi
fi
}
update_iptables my.dynamic.hostname.com MYIP