Настройка iptables в VDS на базе OpenVZ.

При настройке iptables владельцы VDS созданных на базе OpenVZ часто испытывают трудности. Скрипты типа apf и csf не запускаются, и в результате сервер имеет меньшую степень защиты. В чем же причина некорректной работы iptables. На самом деле все просто: этих модулей просто нет в VDS либо они есть, но не все.
Итак, что можно предпринять.
Если вы сами являетесь владельцем OpenVZ ноды, то есть основного физического сервера, на котором и работают VDS, то нужно предпринять следующие шаги.
1. Сначала на основном сервере в файле /etc/sysconfig/iptables-config изменить переменную IPTABLES_MODULES. Обычно она выглядит вот так:
IPTABLES_MODULES=""

А поменять ее нужно на такую:
IPTABLES_MODULES="ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp"
и перезагрузить службу iptables:
service iptables restart
Следующим шагом будет редактирование файла /etc/sysconfig/vz на основном сервере(ноде)
меняем переменную IPTABLES на:
IPTABLES="ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp"
После чего перезагружаем все VDS командой:
service vz restart
На этом все.
Для установки apf на VDS разработчики OpenVZ также рекомендуют увеличить значение numiptent для VDS. Это значение лимитирует суммарное количество правил которые могут использоваться данным VDS. По умолчанию это значение равно 200, но сам скрипт apf создает около 200 правил. Поэтому разработчики OpenVZ рекомендуют устанавливать значение numiptent около 400 следующей командой:
vzctl set 103 --numiptent 400 --save
где 103 - номер VDS для которого это значение устанавливается.

Долго мучался с apf. Все таки получилось. Постоянно вываливались ошибки типа:
iptables: Memory allocation problem
iptables: Memory allocation problem
Скрипт запускался, но не в полной мере.
Оказалось что все таки значений типа --numiptent 400 недостаточно. Желательно еще увеличить это значение до 500-600.
Альтернативным путем решения этой проблемы является установка другой, более свежей и более гибкой версии настройщика правил для фаервола. Это скрипт csf. Установка практически не отличается от установки apf. Настройка интуитивно понятна, конфигурирование тоже не составляет проблем. Поэтому всем рекомендую.
cd /usr/local/src
wget http://www.configserver.com/free/csf.tgz
tar zxf csf.tgz
cd csf
./install.sh