Итак, чтобы хоть как-т по началу защитить свой сервер можно применить простые правила в iptables:
- iptables -F INPUT #удаляем все существующие правила на входящие
- iptables -A INPUT -p tcp –dport 80 -j ACCEPT #пускать все входящие на 80 порт
- iptables -A INPUT -p tcp –dport 22 -j ACCEPT #пускать все (тут надо задуматься) входящие на 22 порт
- iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT #разрешаем внутренним соединеняим жить и беспрепятственно обмениваться пакетами внутри сети
- iptables -P INPUT DROP #меняем правило по умолчанию – ничего не пропускать на входящие
- iptables -P OUTPUT ACCEPT #устанавливаем правило по умолчанию разрешать все исходящие пакеты
- iptables -P FORWARD ACCEPT #то же самое делаем и для FORWARD
- service iptables save # (для CentOS) сохраняем все настройки правил в файл /etc/sysconfig/iptables, которые в свою очередь будут применены при следующей загрузке системы.
Напоминаю, что все что вы делаете с правилами в iptables применяется тут же, но будет действовать до перезагрузки системы, если вы конечно же не выполнили команду save.
Ещещ одно вспомогательное правило отловить баги, забытые порты и т.д. – включить логирование непропущенных пакетов, например:
iptables -A INPUT -j LOG –log-level WARN –log-prefix "INPUT DROP: "
Вот и все, нехитро, но и не сложно. В результате, конечно же мы тут себя не спасаем от брутфорса, DDOS и т.д. но все остальные порты точно будут закрыты и все пакеты отправленные на них извне – отброшены.
Да, чуть не забыл, при выполнении команды "iptables -P INPUT DROP" естественно выкинет Вас из вашей текущей сессии в ssh, по этому надо подумать перед тем как ее выполнить. Например это можно сделать из VNC консоли, или с помощью оператора &&, или же в самом конце, после разрешающих правил.
Успешной всем защиты!