□ -j действие
ACCEPT
, REJECT
или DENY
;□ -s адрес порт
□ -d адрес порт
4.11.1. Фильтр по умолчанию
Исходя из принципа всеобщего запрета, в качестве правила по умолчанию мы должны запретить любые действия. Изначально в Linux все разрешено, а это безопасно только для отдельно стоящего сервера, который даже не подключен к сети. Проверьте ваши настройки по умолчанию, выполнив команду:
ipchains -L
В результате вы должны увидеть на экране примерно следующее:
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
Chain icmp (0 references) :
В зависимости от дистрибутива настройки по умолчанию могут отсутствовать, тогда вместо правил вы увидите следующее сообщение об ошибке:
ipchains: Incompatible with this kernel (невозможно для этого ядра).
Такая фраза может появиться, если ipchains отсутствует или запущена неверно. Я уже не раз встречал это сообщение, потому что производители дистрибутивов неверно конфигурируют систему по умолчанию. А ведь лечится эта ошибка достаточно просто, и ядро тут ни при чем.
Просмотрите файл /etc/rc.d/init.d/ipchains
с помощью текстового редактора программы МС или командыcat
. Первое будет удобнее. Нужно найти в файле следующую строку:IPCHAINS_CONFIG=/etс/sysconfig/ipchains
Путь к файлу в директиве IPCHAINS_CONFIG
ls /etc/sysconfig/ipchains
Если файл не существует, то его следует создать. Для этого выполним следующую команду:
cat >> /etc/sysconfig/ipchains
Отныне все команды, вводимые в консоль, будут сохраняться в файле. Для того чтобы сервис ipchains заставить работать, достаточно ввести:
:input ACCEPT
Теперь нажмите клавиши
/etc/rc.d/init.d/ipchains restart
Обратите внимание, что нужно указать полный путь. Если этого не сделать, то будет запущена утилита ipchains, а не сценарий запуска из директории /etc/rc.d/init.d/
.Вот теперь команда должна выполниться успешно.
Для начала давайте запретим любой трафик. Но прежде, чем мы перейдем к созданию правил, сделаю еще одно замечание. Любую систему нужно начинать конфигурировать с чистого листа, потому что настройки по умолчанию могут оказаться не слишком эффективными и небезопасными. Выполните команду ipchains -F
Теперь зададим политику по умолчанию. Для этого нужно выполнить команду ipchains
-P
для каждой цепочки и указать политику безопасности:ipchains -Р input DENY
ipchains -Р output REJECT
ipchains -P forward DENY
Обратите внимание, что для входящих (input) и проходящих (forward) пакетов я установил полный запрет, поэтому они будут удаляться без каких-либо предупреждений. Для исходящей информации можно поставить в правило REJECT
Теперь ваш компьютер невиден и недоступен в сети. Попробуйте проскандировать порты или выполнить команду ping
4.11.2. Примеры добавления ipchains-правил
Давайте теперь указывать права, чтобы разрешить какой-либо доступ к серверу. Только вы должны учитывать, что если добавлять правило в конец набора, то нет гарантии, что оно будет работать верно. В цепочке уже может быть запрет, поэтому доступ будет закрыт раньше, чем сработает наше правило. Чтобы не столкнуться с такой проблемой, я в примерах буду вставлять новое правило первым (указывать ключ -I
1
).Если вы добавляете общее правило запрета, то его следует поместить в самый конец. Когда правило касается конкретного действия, порта или адреса, то его место в начале цепочки. Таким образом, в вашем своде сначала будут идти специфические правила, а потом глобальные.