Hostwinds Учебники
Результаты поиска для:
Содержание
Теги: CentOS Web Panel, Firewall, Linux
Iptables - это чрезвычайно гибкая утилита брандмауэра на основе командной строки, построенная специально для дистрибутивов Linux.Iptables использует цепочки политики, чтобы позволить или блокировать трафик.Когда соединение устанавливается на вашем сервере, iptables определит правило в своем списке, чтобы определить, какие действия необходимо предпринять.Если для соединения не присутствует правила, он прибегается к действию по умолчанию, определенным для вашей системы.
Обычно IPTables устанавливается по умолчанию в большинстве систем Linux. Чтобы обновить или установить его, вы можете получить пакет IPTables, введя следующие команды:
Примечание: IPTables должен быть предварительно установлен на CentOS 6.
Ubuntu
apt-get install iptables-persistent
CentOS 7
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables
systemctl start iptables
Теперь iPtables будут установлены в вашей системе.Давайте посмотрим, как использовать iptables.
Этот раздел будет охватывать некоторые базовые определенные команды iptables, такие как список текущих наборов и блокировка IP-адреса от установления соединения.
Чтобы перечислить текущую активную учетную запись по спецификации, вы выпустите следующую команду:
iptables -S
Чтобы отобразить правила, применяемые в настоящее время на определенную цепочку, вы можете использовать следующую команду. Этот пример покажет все спецификации правила для цепочки UDP:
iptables -S UDP
Вы можете перечислить все текущие правила IPTables, которые используются в табличном представлении, с помощью следующей команды, которая вызывает параметр -L. Здесь будут перечислены все текущие наборы правил, отсортированные по типу цепочки.
iptables -L
Вы можете удалить правила в iPtables с помощью опции -d.Вы можете удалить наборовки несколькими разными способами.Мы будем охватывать удаление правил по спецификации.Например, если вы хотите удалить правило, которое позволяет всем входящим трафиком на порту 443, вы бы использовали следующую команду:
iptables -D INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
С IPTables вы можете очистить правила. Это можно сделать путем промывки одной цепи или всех цепей. Мы рассмотрим оба метода ниже.
Чтобы промыть одну цепочку, вы можете использовать опцию -F или эквивалентный опция -flush, в сочетании с именем цепочки, который вы хотели бы промыть.Например, вы можете удалить все правила в входной цепи, используя следующую команду:
iptables -F INPUT
Чтобы промыть все цепи, вы бы снова использовали опцию -f или эквивалентный опция без каких-либо дополнительных параметров.Это эффективно удалит все правила брандмауэра, которые в настоящее время активны на сервере.Команда выглядит следующим образом:
iptables -F
Iptables предоставляет возможность блокировать сетевые соединения с определенного IP-адреса.Например, чтобы заблокировать все входящие соединения от 10.10.10.10, вы выполните следующую команду:
iptables -A INPUT -s 10.10.10.10 -j DROP
Вы также можете отклонить соединение, которое ответит с ошибкой «Connection отказано».Заменить падение с отклонением.
iptables -A INPUT -s 10.10.10.10 -j REJECT
Вы также можете блокировать соединения от определенного IP на определенное сетевое устройство, такое как ETH1, используя опцию -i.
iptables -A INPUT -i eth1 -s 10.10.10.10 -j DROP
Чтобы разрешить ВСЕ входящие SSH-соединения на SSH-порт по умолчанию (22), используйте следующие команды:
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Вы также можете ограничить SSH-соединения только с определенного IP-адреса или подсети.Например, если вы хотите разрешить IP-адрес 10.10.10.10, чтобы подключиться к серверу через SSH, вы бы использовали следующую команду:
iptables -A INPUT -p tcp -s 10.10.10.10 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Это также можно сделать для всей подсети, добавив подсеть в команду, например / 27, как показано в следующей команде:
iptables -A INPUT -p tcp -s 10.10.10.10/27 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Ваш брандмауэр может не иметь набора выходных политик.Если это так, вам может потребоваться разрешить исходящие SSH-соединения, если вы хотите подключиться к внешнему серверу с вашего сервера напрямую.Вы можете запустить следующие команды для достижения этого в порту SSH по умолчанию (22).Если вы используете другой порт SSH, замените «22» в следующем примере с номером порта, который вы используете:
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
По умолчанию HTTP-трафик обычно подается в порту 80, а трафик HTTPS обычно обслуживается в порту 443. Вы можете разрешить оба типа подключений к вашему веб-серверу, используя следующие команды.
Запись: Если вы хотите разрешить только один, а не другой, удалите номер порта из команды, которая коррелирует к протоколу, который вы хотите разрешить.
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Iptables позволяет блокировать определенные порты, такие как порт SMTP по умолчанию (25). Например, вы не можете разрешить исходящую почту на вашем сервере. Чтобы остановить это с помощью iptables, вы можете выдать следующую команду:
iptables -A OUTPUT -p tcp --dport 25 -j REJECT
Это настроит iPtables, чтобы отклонить все исходящие трафик на порту 25. Если вы хотите отклонить трафик на другом порту, вы можете заменить «25» с помощью номера порта.
Вы можете разрешить своему серверу отвечать на все SMTP-соединения через порт 25, выполнив следующие команды:
iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Написано Hostwinds Team / Декабрь 13, 2016