
У меня есть арендованный выделенный сервер, на котором я размещаю определенные сервисы.
Из соображений безопасности я создал цепочку правил, которая будет проверять перечисленные адреса DDNS и подключаться только к тем соединениям, которые соответствуют. Это, похоже, лучше, чем блокировать или принимать по стране.
Бывший.
-A ПРИНЯТЬ_ПЕРСОНАЛЬНЫЙ -s xxx.dns.com -j ПРИНЯТЬ
-A ПРИНЯТЬ_ПЕРСОНАЛЬНЫЙ -s yyy.dns.com -j ПРИНЯТЬ
Некоторое время все работало хорошо, но через несколько дней я внезапно не смог получить доступ к своему серверу. После некоторой поддержки хостинга я смог получить доступ через webmin и обнаружил, что мои адреса DDNS в iptable были заменены на реальные IP, и поскольку они изменились по какой-то причине.
Есть идеи, что случилось? Я проверил задания cron, особенно еженедельные, но ничего подозрительного не нашел.
Также я использую Webmin для установки значений.
решение1
Разрешение DNS происходит до загрузки правила брандмауэра в ядро, поэтому вы не сможете сделать то, что хотите, с помощью iptables.
решение2
Вы упомянули, что проверяете по перечисленным адресам DDNS. Много раз я видел, что эти списки не надежны на 100%. Мой собственный статический IP в некоторых списках классифицируется как динамический. Так что, возможно, публичный IP, с которого вы пытались получить доступ к своей машине, также попал в список DDNS. Если вы пытаетесь защитить свою систему от атак SSH, я бы предложил подумать, какDenyHosts
решение3
Как сказал womble, iptables делает разрешение имен, когда правила загружены. Вы можете захотеть управлять доступом, используя hosts.allow
, например
sshd: xxx.dns.com
sshd: yyy.dns.com
Вы также можете управлять доступом с помощью «AllowUsers» в sshd_config
. Любой из этих методов будет искать ваш адрес во время подключения.
решение4
fail2banотлично сработало для меня на моем виртуальном сервере. Его можно настроить для работы с несколькими службами, ssh, ftp и т. д. В настоящее время я использую его для блокировки попыток подбора пароля на SSH и FTPS. Он автоматически забанит IP на определенный период времени с помощью iptables после X неудачных попыток входа на ваш сервер.