Skip to content

Использование и настройка брандмауэра Linux

1. Обзор

После развертывания проекта в системе Linux системе необходимо открыть порт проекта, прежде чем к его адресу смогут получить доступ другие компьютеры.

2. Брандмауэр Centos 7

2.1 Основные возможности использования firewalld

Запустите брандмауэр: systemctl start firewalld

Отключите брандмауэр: systemctl stop firewalld

Проверьте состояние брандмауэра: systemctl status firewalld

Отключение загрузки: systemctl disable firewalld

Включите загрузку: systemctl enable firewalld

2.2 Базовое использование systemctl

Запуск службы: systemctl start firewalld.service
Завершение работы службы: systemctl stop firewalld.service
Перезапуск службы: systemctl restart firewalld.service
Показать состояние службы: systemctl status firewalld.service
Включить службу во время загрузки: systemctl enable firewalld.service
Отключите службу во время загрузки: systemctl disable firewalld.service
Проверьте, включена ли служба во время загрузки: systemctl is-enabled firewalld.service
Проверка списка запущенных служб: systemctl list-unit-files|grep enabled
Проверьте список неудачных служб: systemctl --failed

2.3 Настройка firewalld-cmd

Просмотр версии: firewall-cmd --version

Просмотр справки: firewall-cmd --help

Показать состояние: firewall-cmd --state

Просмотрите все открытые порты: firewall-cmd --zone=public --list-ports

Обновите правила брандмауэра: firewall-cmd --reload

Просмотр информации о зонах: firewall-cmd --get-active-zones

Чтобы просмотреть зону, к которой принадлежит указанный интерфейс: firewall-cmd --get-zone-of-interface=eth0

Отклонить все пакеты: firewall-cmd --panic-on

Отменить статус отказа: firewall-cmd --panic-off

Проверьте наличие отказов: firewall-cmd --query-panic

2.4 Процедура открытия порта

2.4.1 Добавление портов

1) Включите брандмауэр

Используйте systemctl status firewalld, чтобы проверить состояние брандмауэра, если он не включен, используйтеsystemctl start firewalld, чтобы включить брандмауэр.

Как показано на рисунке ниже:

1623053464812396.png

2) Открытые порты

Используйтеfirewall-cmd --list-port, чтобы посмотреть, какие порты открыты на брандмауэре, если он не возвращается, это доказывает, что ни один порт не открыт. Используйте firewall-cmd --zone=public --add-port=8083/tcp --permanent, чтобы открыть порт, и firewall-cmd --reload, чтобы перезагрузить его. Это показано ниже:

1623053847724899.png

2.4.2 Другие заявления о конфигурации порта

1) Просмотр порта

firewall-cmd --zone=public --query-port=8083/tcp

1623054006496865.png

2) Удалите открытые порты

  
firewall-cmd --zone=public --remove-port=8083/tcp --permanent firewall-cmd --reload

1623054143824576.png

3) Настройте политику по умолчанию (по умолчанию запретить весь доступ, изменить на разрешить весь доступ)

  
firewall-cmd --permanent --zone=public --set-target=ACCEPT firewall-cmd --reload

4) Открыть несколько портов для определенного IP

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.159.   
  
60.29" port protocol="tcp" port="1:65535" accept" firewall-cmd --reload

3. Centos 6 iptables

3.1 Базовое использование iptables

Запуск: service iptables start

Завершение работы: service iptables stop

Проверьте состояние: service iptables status

Отключить при загрузке: chkconfig iptables off

Включить при загрузке: chkconfig iptables on

3.2 Заявление об открытии указанного порта

1) Разрешите локальные loopback-интерфейсы (т. е. запустите local, чтобы получить доступ к local): iptables -A INPUT -i lo -j ACCEPT

Примечание: Параметры -A и -I добавляются в конец правила и в его верхнюю часть, соответственно.

2) Разрешить установленные или связанные проходы: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

3) Разрешите весь локальный исходящий доступ: iptables -P INPUT ACCEPTiptables -A OUTPUT -j ACCEPT

4) Разрешите доступ к порту 22:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 10.159.1.0/24 --dport 22 -j ACCEPT
Примечание: за -s может следовать IP-сегмент или указанный IP-адрес, и правила аналогичны, если есть другие порты.

5) Разрешить пингование: iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

6) Запретить доступ к другим правилам, которые не разрешены:

iptables -A INPUT -j REJECT

iptables -A FORWARD -j REJECT

Примечание: Если порт 22 не добавлен в разрешающее правило, соединение SSH просто отключится.

3.3 Маскировка IP

1) Заблокируйте один IP-адрес: iptables -I INPUT -s 123.45.6.7 -j DROP

2) Заблокируйте весь сегмент от 123.0.0.1 до 123.255.255.254: iptables -I INPUT -s 123.0.0.0/8 -j DROP

3) Заблокируйте IP-сегменты от 123.45.0.1 до 123.45.255.254: iptables -I INPUT -s 124.45.0.0/16 -j DROP

4) Заблокируйте IP-сегменты с 123.45.6.1 по 123.45.6.254: iptables -I INPUT -s 123.45.6.0/24 -j DROP

3.4 Правила iptables

**Просмотр существующих правил:**iptables -L -n

N: отображает только IP-адрес и номер порта, не преобразует IP в доменное имя

Чтобы отобразить все iptables в виде порядковых номеров, выполните следующие действия: iptables -L -n --line-numbers

Добавление правил

iptables -A и iptables -I

1) iptables -A

Добавленное правило добавляется в конец. Например, добавьте правило для цепочки INPUT, чтобы получать данные с порта eth0 с адресом источника 192.168.0.0/16 на локальную машину:

iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT

2) iptables -I

Добавленные правила по умолчанию добавляются к первому. Если вы хотите указать, куда вставлять правило, просто укажите номер расположения при использовании iptables -I.

Удаление правил

Если указанное правило удаляется, используйте команду iptables -D. За командой может следовать порядковый номер или iptables -D для подробного определения.

Если вы хотите избавиться от всех правил, используйте iptables -F.

3.5 Сохранение и восстановление правил

Резервное копирование правил iptables

Используйте команду iptables-save, например iptables-save > /etc/sysconfig/iptables.save

Восстановление правил iptables

Используйте команду iptables, например, iptables-restore < /etc/sysconfig/iptables.save

Сохранение конфигурации iptables

изменения конфигурации будут потеряны после перезагрузки устройства. Их можно сохранить с помощью сервиса iptables save.

Перезапустите службу iptables, чтобы она вступила в силу: service iptables save

Добавьте правило и сохраните перезагрузку, чтобы оно вступило в силу: service iptables restart

3.6 Процедура открытия порта

3.6.1 Метод 1: через командную строку

  
  
iptables -A INPUT -p tcp --dport 80 -j ACCEPT служба iptables сохранить службу перезапуск iptables

3.6.2 Метод 2: Редактирование файла конфигурации

Конфигурационный файл для iptables - /etc/sysconfig/iptables

Отредактируйте файл конфигурации: vi /etc/sysconfig/iptables

1) Добавьте его в файл конфигурации:

-A INPUT -p tcp --dport 80 -j ACCEPT

2) Выполните команду service iptables restart и перезагрузитесь, чтобы она вступила в силу.

4. условия

Облачные серверы требуют создания дополнительных групп безопасности и открытия соответствующих портов.