Не могли бы вы порекомендовать хорошее вступление к iptables? [закрыто]

Мне нужно установить брандмауэр на сервере Linux (весь мой предыдущий опыт связан с Windows). Мои правила должны быть довольно простыми - запретить все, разрешить некоторые порты для всех, разрешить некоторые порты для определенных IP-подсетей, в то время как сеть небольшая, но сложная (каждый хост имеет IP-адреса как минимум в 2 192.168 ... сетях, каждый может соединить много разных способов). Я думаю, что использование оберток iptables может чрезмерно усложнить систему, логически вводя множество ненужных сущностей, и было бы лучше сделать ее простой и напрямую использовать iptables.

Можете ли вы порекомендовать хорошее краткое введение о том, как писать правила iptables?

15
задан 9 July 2010 в 03:37
3 ответа

Ссылки на официальную и рекомендуемую документацию существуют на веб-сайте Netfilter.

Это не новый предмет, ресурсы безграничны.

Большинство основных команд довольно интуитивно и может легко быть ссылкой на страницу справочника.

netfilter, который является технологией уровня ядра, которая включает пакетную фильтрацию, вполне совершенствуется. Существуют дополнительные таблицы, которые могут исказить пакеты, перевести пакеты и иначе влиять на маршрутизацию. iptables утилита является инструментом пространства пользователя для взаимодействия с netfilter. Если Вы хотите узнать о передовой функциональности, я предлагаю, чтобы Вы сослались на вышеупомянутую документацию. Для введения в основную функциональность читайте далее.

Перечислять все существующие правила:

iptables -L -n

-n препятствует тому, чтобы iptables разрешил дюйм/с, который производит быстрее вывод.

Таблица по умолчанию filter таблица, которая является, что используется для применения основных правил брандмауэра к этим трем цепочкам. Три цепочки по умолчанию в filter таблица INPUT, OUTPUT, и FORWARD.

Цепочки в основном сам объяснительные. ВХОДНАЯ цепочка влияет на входящие пакеты, ВЫХОДНОЕ влияние цепочки локально сгенерированные пакеты, и наконец ПЕРЕДАЙТЕ для любых пакетов, которые направляют через систему.

Среди целей можно указать, Вы можете DROP пакеты, означая просто игнорируют и не отвечают. Вы можете REJECT пакеты, куда icmp ответ был бы отправлен в источник отказа. Наконец, Вы можете ACCEPT их, который позволяет пакетам продолжать направлять.

Часто с внешним брандмауэром направления выбор по умолчанию будет DROP в противоположность REJECT, поскольку это уменьшает видимое место Вашей сети в Интернете. Например, IP, который иначе ограничивает сервисы определенным хостом, имел бы меньше видимости с DROP.

Примечание, -A средства добавляют в конец цепочки. Если Вы хотите вставить в вершину, можно использовать -I. Все правила обрабатываются от вершины вниз. -D для удаления.

Кому: DROP входящий пакет, прибывающий из 192.168.235.235:

iptables -A INPUT -s 192.168.235.235 -j DROP

Это переходит к DROP цель для всех протоколов, прибывающих из того IP.

Принять:

iptables -A INPUT -s 192.168.235.235 -j ACCEPT

Предотвратить доступ к тому IP от Вашего локального сервера или сети:

iptables -A OUTPUT -d 192.168.235.235 -j DROP

Можно указать -p протокол, -s источник пакета, -d место назначения для пакета, целевого порта --dport, исходный порт --sport, и много других флагов, которые будут влиять, как пакеты рассматривает правило.

Если Ваше значение по умолчанию INPUT политика была DROP и Вы хотели позволить всем в 192.168.123.0/24 подсеть к доступу SSH на Вашем сервере, вот пример:

iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT

Правильно, можно использовать нотацию CIDR также!

Вообще говоря, лучшая политика по умолчанию DROP для всех цепочек. Каждая цепочка имеет политику по умолчанию, которая указана -P флаг. Даже если Вам установили Вашу политику для установки по умолчанию DROP, все еще рекомендуется иметь заключительную запись в цепочке, чтобы быть a DROP также.

Например, для изменения политики на DROP для ВХОДА ПЕРЕДАЙТЕ и ПРОИЗВЕДИТЕ цепочки:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

Будьте осторожны при определении политики по умолчанию ОТБРАСЫВАНИЯ для ВХОДА в удаленной системе без первого разрешения себе доступ SSH Вы могли препятствовать тому, чтобы себя получили доступ к системе. Если в удаленной системе, Вы могли бы указать временный crontab для сбрасывания всех правил каждые 5 минут как отказоустойчивого.

Удалить все правила и позволить весь трафик:

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F

Примечание, -X удаляет все созданные цепочки. -F сбросы все правила.

Существуют собственные инструменты, чтобы сохранить и восстановить правила. Особенно, iptables-save и iptables-restore. Большинство современных дистрибутивов Linux имеет save и restore функциям в iptables init файл предоставляют систему.

Существуют другие лучшие практики брандмауэра, такие как отбрасывание уродливых пакетов и другого типа нежелательного трафика. Это - одно преимущество использования утилиты фронтэнда, такой как Shorewall, поскольку это реализует многих из этих полицейских по умолчанию. Тем не менее, я соглашаюсь с Вашим подходом и предпочитаю поддерживать свои собственные правила непосредственно также, и эти те же лучшие практики могут быть реализованы без фронтэнда.

26
ответ дан 2 December 2019 в 20:47
2
ответ дан 2 December 2019 в 20:47

Я нашел https://help.ubuntu.com/community/IptablesHowTo полезным недавно. Я не думаю, что что-либо там является особенно определенным для Ubuntu.

1
ответ дан 2 December 2019 в 20:47
  • 1
    , я использую Arch на своем ноутбуке, но Ubuntu, Ясный Сервер точно, что задача настроить. Таким образом, это может прибыть в руку, если не устаревший (она обращается к Ubuntu 8.04 насколько я вижу). –  Ivan 9 July 2010 в 16:14

Теги

Похожие вопросы