ПРИМЕЧАНИЕ: Версия iptables в Red Hat 7.1 сильно устарела и, наверное неплохим решением будет установить более новую версию.
Для начала нужно отключить ipchains, чтобы предотвратить загрузку соответствующих модулей в будущем. Чтобы добиться этого, нам потребуется изменить имена некоторых файлов в дереве каталогов /etc/rc.d/. Следующая команда, выполнит требуемые действия:
chkconfig –level 0123456 ipchains off
В результате выполнения этой команды, в некоторых именах ссылок, указывающих на файлы в каталоге /etc/rc.d/init.d/ipchains, символ S (который сообщает, что данный сценарий отрабатывает на запуске системы) будет заменен символом K (от слова Kill, который указывает на то, что сценарий отрабатывает, при завершении работы системы. Таким образом мы предотвратим запуск ненужного сервиса в будущем.
Однако ipchains по-прежнему остаются в работе. Теперь надо выполнить команду, которая остановит этот сервис:
service ipchains stop
И в заключение необходимо запустить сервис iptables. Для этого, во-первых, надо определиться с уровнями запуска операционной системы, на которых нужно стартовать этот сервис. Обычно это уровни 2, 3 и 5. Об этих уровнях мы знаем:
2. Многопользовательский режим без поддержки NFS или то же самое, что и 3, но без сетевой поддержки.
3. Полнофункциональный многопользовательский режим.
5. X11. Данный уровень используется для автоматической загрузки Xwindows.
Чтобы запустить iptables на этих уровнях нужно выполнить команду:
chkconfig –level 235 iptables on
Хочется упомянуть об уровнях, на которых не требуется запуска iptables: Уровень 1 – однопользовательский режим работы, как правило используется в экстренных случаях, когда мы «поднимаем» «упавшую» систему. Уровень 4 – вообще не должен использоваться. Уровень выполнения 6 – это уровень остановки системы при выключении или перезагрузке компьютера.
Для активации сервиса iptables подадим команду:
service iptables start
Итак, мы запустили iptables, но у нас пока еще нет ни одного правила. Чтобы добавить новые правила в Red Hat 7.1 можно пойти двумя путями, во-первых: подправить файл /etc/rc.d/init.d/iptables, но этот способ имеет одно негативное свойство – при обновлении iptables из RPM-пакетов все ваши правила будут утеряны, а во-вторых: занести правила и сохранить их командой iptables-save, сохраненные таким образом правила будут автоматически восстанавливаться при загрузке системы.
В случае, если вы избрали первый вариант установки правил в iptables, то вам необходимо занести их в секцию start сценария /etc/rc.d/init.d/iptables (для установки правил при загрузке системы) или в функцию start(). Для выполнения действий при остановке системы – внесите соответствующие изменения в секцию stop) или в функцию stop(). Так же не забудьте про секции restart и condrestart. Хочется еще раз напомнить, что в случае обновления iptables из RPM-пакетов или через автоматическое обновление по сети, вы можете утерять все изменения, внесенные в файл /etc/rc.d/init.d/iptables.
Второй способ загрузки правил предпочтительнее. Он предполагает следующие шаги. Для начала – запишите правила в файл или непосредственно, через команду iptables, смотря что для вас предпочтительнее. Затем исполните команду iptables-save. Эта команда эквивалентна команде iptables-save > /etc/sysconfig/iptables. В результате, весь набор правил будет сохранен в файле /etc/sysconfig/iptables, который автоматически подгружается при запуске сервиса iptables. Другим способом сохранить набор правил будет подача команды service iptables save, которая полностью идентична вышеприведенной команде. Впоследствии, при перезагрузке компьютера, сценарий iptables из rc.d будет выполнять команду iptables-restore для загрузки набора правил из файла /etc/sysconfig/iptables.
И наконец, в завершение установки, неплохо было бы удалить старые версии ipchains и iptables. Это необходимо сделать для того, чтобы система не «перепутала» старый пакет iptables с вновь установленным. Удаление старого пакета iptables необходимо произвести только в том случае, если вы производили установку из исходных текстов. Дело в том, что RPM пакеты устанавливаются в несколько иное место нежели пакеты, собранные из исходных текстов, а поэтому новый пакет не «затирает» старый. Чтобы выполнить деинсталляцию предыдущей версии iptables выполните следующую команду:
rpm -e iptables
Аналогичным образом удалим и ipchains, поскольку оставлять этот пакет в системе более нет никакого смысла.
rpm -e ipchains