
Я только что арендовал сервер у облачного провайдера, у которого нет возможности внести в белый список доступ по SSH. Я пытаюсь найти способ удаленно внести в белый список свой IP-адрес, чтобы иметь доступ к своему серверу через SSH и в черный список всех остальных. Я думал об использовании таблиц IP-адресов, но это никогда не сработает, так как мой IP-адрес динамический. Подобно группам безопасности AWS. Я готов использовать платные услуги, если это не дорого или, что еще лучше, если кто-то знает услугу или эффективный способ, с помощью которого я могу удаленно управлять iptables в случае изменения/блокировки IP-адреса.
решение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
Затем периодически (например cron
) запускайте скрипт, который выполняет операцию nslookup
на динамическом IP-адресе и очищает/перезаписывает 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