🐹 CentOS 7: Первичная настройка брандмауэра web-сервера. Проброс 80 порта и 443 порта. Настройка firewalld или iptables.

Содержание:

1. Введение.
2. Настройка firewalld.
3. Установка и настройка iptables.

3.1. Отключение firewalld.
3.2. Установка iptables.
3.3. Настройка iptables.

4. Оригиналы источников информации.


1. Введение.

Для успешной работы web-сервера требуется пробросить 80 порт и 443 порт через брандмауэр.

На сегодняшний день в CentOS 7 популярны 2 фаервола:

  • firewalld;
  • iptables.

Брандмауэр firewalld установлен в CentOS 7 по умолчанию сразу после установки этой операционной системы из любой комплектации. Брандмауэр iptables требуется доустанавливать из сторонних репозиториев. Оба брандмауэра хорошие, но есть люди, которые исторически привыкли работать с iptables. Делайте так, как удобно вам. После настройки брандмауэра на web-сервере лезть снова в его настройку не потребуется.

2. Настройка firewalld.

Начнем с самого простого и с самого ленивого — настройка предустановленного брандмауэра firewalld.

Кому лень устанавливать и настраивать iptables или просто удобнее работать с firewalld выполните следующие команды:

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

Проверить, открылись ли порты можно командой.

# firewall-cmd --list-all

Всё. Настройка окончена успешно. 80 порт и 433 порт проброшены. 22 порт ssh уже был проброшен по умолчанию при установке операционной системы CentOS 7.

3. Установка и настройка iptables.

3.1. Отключение firewalld.

Первым делом отключим firewalld, который присутствует в CentOS 7 по-умолчанию сразу после установки:

# systemctl stop firewalld

Теперь удалим его из автозагрузки, чтобы он не включился снова после рестарта:

# systemctl disable firewalld

Удалим с сервера CentOS 7 брандмауэра firewalld:

# yum -y remove firewalld

После этого на сервере настройки сетевого экрана становятся полностью открытыми.

Посмотреть правила iptables можно командой:

# iptables -L -v -n

3.2. Установка iptables.

На самом деле фаервол у нас на сервере уже стоит и работает, просто нет никаких правил, все открыто. Установить нам нужно будет дополнительные утилиты управления, без которых конфигурировать iptables невозможно. Дополнительно поставим текстовый редактор mc.

# yum -y install iptables-services mc

Теперь можно добавить iptables в автозагрузку и запустить:

# systemctl start iptables.service

# systemctl enable iptables.service

3.3. Настройка iptables.

Открываем файл конфигурации iptables текстовым редактором:

# mcedit /etc/sysconfig/iptables

И в середине массива строк, под разрешением работы SSH с портом 22, добавляем строку точно такую же строку:

  • порт http — это порт 80,
  • порт https — это порт 443.
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Должно получиться так:

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Чтобы iptables это учел в работе, нужно его перезапустить:

# systemctl restart iptables

Если после этой команды вышла ошибка:

Внимательно проверяйте, что вы там написали. В вашем конфигурационном файле содержатся опечатки!

Всё. Настройка окончена успешно. 80 порт и 433 порт проброшены. 22 порт ssh уже был проброшен по умолчанию при установке iptables.

4. Оригиналы источников информации.

Нет

Читайте также: