Как установить брандмауэр в Linux

Брандмауэр - это функция безопасности, которая фильтрует входящий и исходящий трафик и блокирует потенциально вредоносные приложения. Кроме того, брандмауэр дает системному администратору право определять, какие службы и порты разрешить, а какие заблокировать или запретить.

В Linux существует множество систем межсетевых экранов. Чаще всего используются межсетевые экраны Firewalld и Iptables. Firewalld - это интерфейсная служба динамического управления брандмауэром, доступная по умолчанию как на серверах CentOS, так и на серверах Fedora. Firewalld - это мощная служба управления межсетевым экраном, которая теперь заменила Iptables. Он управляет трафиком IPv4 и IPv6.

Как установить и настроить брандмауэр UFW в Ubuntu 18.04

В Ubuntu брандмауэр по умолчанию - UFW, сокращение от Uncomplicated FireWall . Он существует с момента выпуска Ubuntu 18.04 и был создан для упрощения настройки iptables, что было довольно сложно.

Установка UFW

По умолчанию Ubuntu 18.04 поставляется с установленным ufw. Однако для более ранних систем вам нужно будет выполнить команду ниже

apt-get install ufw
Markup

Чтобы проверить, запущен ли ufw, запустите

systemctl status ufw
Markup

Если он запущен, вы должны получить результат ниже

 ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab
Active: active (exited) since Tue 2018-04-10 22:03:30 UTC; 4min 1s ago
Process: 376 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU
Main PID: 376 (code=exited, status=0/SUCCESS)
    Tasks: 0
Memory: 0B
    CPU: 0
CGroup: /system.slice/ufw.service

Apr 10 22:03:30 ip-172-31-41-251 systemd[1]: Started Uncomplicated firewall.
Warning: Journal has been rotated since unit was started. Log output is incomple
Markup

Чтобы проверить, активен он или неактивен, запустить

ufw status
Markup

Если он неактивен, вы получите вывод ниже

Status: inactive
Markup

Чтобы включить UFW с набором правил по умолчанию, выполните

 
ufw enable
Markup

Чтобы отключить брандмауэр, запустите

ufw disable
Markup

Настройка правил ufw по умолчанию

Чтобы настроить правила по умолчанию, разрешающие все исходящие протоколы, войдите в систему как root и запустите

ufw default allow outgoing
Markup

Результат:

Default outgoing policy changed to 'allow' (be sure to update your rules accordingly)
Markup

Чтобы запретить все входящие соединения, запустите

ufw default deny incoming
Markup

Результат:

Default outgoing policy changed to 'deny' (be sure to update your rules accordingly)
Markup

Вышеупомянутые команды разрешают все исходящие соединения и запрещают или блокируют все входящие соединения.
На этом этапе вы можете включить брандмауэр, однако, прежде чем это делать, сначала разрешите ssh. Это предотвращает отключение от сервера, поскольку ранее мы указали запрет всех входящих подключений.

Чтобы разрешить ssh, запустите

ufw allow 22/tcp
Markup

Результат:

Skipping adding existing rule Skipping adding existing rule (v6)
Markup

Доступ по ssh также может быть разрешен по имени службы,

ufw allow ssh
Markup

Если вы хотите удалить правило, запустите

ufw delete allow 22/ssh
Markup

Чтобы запретить услугу по имени, запустите

ufw deny service-name
Markup

Например

ufw deny ssh
Markup

Чтобы увидеть все службы, которые могут быть разрешены или запрещены в системе, проверьте /etc/servicesфайл.

cat /etc/services | less
Markup

Результат:

ftp-data        20/tcp
ftp             21/tcp
fsp             21/udp          fspd
ssh             22/tcp                          # SSH Remote Login Protocol
ssh             22/udp
telnet          23/tcp
smtp            25/tcp          mail
time            37/tcp          timserver
time            37/udp          timserver
rlp             39/udp          resource        # resource location
nameserver      42/tcp          name            # IEN 116
whois           43/tcp          nicname
tacacs          49/tcp                          # Login Host Protocol (TACACS)
tacacs          49/udp
re-mail-ck      50/tcp                          # Remote Mail Checking Protocol
re-mail-ck      50/udp
domain          53/tcp                          # Domain Name Server
domain          53/udp
Markup

Запуск брандмауэра ufw

Чтобы активировать брандмауэр, войдите в систему как root и выполните следующую команду:

ufw enable
Markup

Вам может быть предложено следующее предупреждение

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Markup

Если вы выберете да, вы получите результат ниже.

Firewall is active and enabled on system startup
Markup

Брандмауэр теперь активен и запускается при каждой загрузке. Мы можем снова взглянуть на правила брандмауэра:

ufw status
Markup

Теперь выходные данные будут отображать статус брандмауэра плюс разрешенные службы / порты.

Результат:

ufw status active
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22                         ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
22 (v6)                    ALLOW       Anywhere (v6)
Markup

Разрешение подключений в ufw

Вы можете легко разрешить входящее соединение по порту / диапазону, имени приложения, IP-адресу / подсети в ufw.
Ознакомьтесь с примерами ниже.

а) Разрешение приложений по имени или номеру порта / диапазону

ufw allow service-name
Markup

ИЛИ

ufw allow port/tcp
Markup

Например

ufw allow ssh or ufw allow 22/tcp
Markup
ufw allow ftp or ufw allow 21/tcp
Markup

sudo ufw разрешить 1500: 2000 / tcp

б) Разрешает IP-адрес / подсети

Нижеприведенные команды разрешают подключения с определенного IP-адреса или подсетей, а также мы можем использовать определенные номера портов.
Чтобы разрешить соединения с определенного IP-адреса

ufw allow from 10.200.20.45
Markup

Чтобы указать IP-адрес, по которому разрешено подключаться к определенному порту, запустите

ufw allow from 10.200.20.45 to any port 22
Markup

Вышеупомянутое позволяет IP-адресу 10.200.20.45 подключаться только через ssh.

Чтобы разрешить определенной подсети IP-адресов для подключения к системе, используйте нотацию CIDR для указания сетевой маски.

ufw allow from 192.168.1.0/24
Markup

Вышеупомянутое позволяет IP-адресам от 192.168.1 до 192.168.1.254 подключаться к системе.
Вы также можете указать порт назначения подсети.

ufw allow from 192.168.1.0/24 to any port 22
Markup

Это означает, что IP-адреса от 192.168.1 до 192.168.1.254 могут подключаться к системе через порт 22, который является ssh.

в) Разрешить по имени интерфейса

Если нам нужно разрешить соединения через имя интерфейса, это возможно

ufw allow in on eth0 to any port 80
Markup

Как запретить соединения в ufw

По умолчанию ufw настроен на запрет всех входящих подключений.

а) IP-адрес / подсеть

Если мы хотим заблокировать доступ к определенному IP-адресу, мы можем сделать это с помощью следующей команды:

ufw deny from 192.168.1.15
Markup

Это заблокирует все входящие соединения с хоста с IP-адресом 192.168.1.15.

Далее заблокируем всю подсеть:

ufw deny from 150.165.125.0/24
Markup

Это заблокирует все подключения, исходящие из этой подсети.

б) Запретить порты и приложения

Чтобы запретить порт или услугу

ufw deny 80/tcp
Markup

ИЛИ

ufw deny http
Markup

sudo ufw deny 1500: 2000 / tcp * Это запретит диапазоны портов *

Удаление и отслеживание правил

Когда вы добавляете много правил, вы можете лучше отслеживать их, просматривая их номера. Вы можете получить числа с помощью следующей команды:

ufw status numbered
Markup

Результат:

ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 22                         ALLOW IN    Anywhere
[ 3] 80/tcp                     ALLOW IN    Anywhere
[ 4] 53/tcp                     ALLOW IN    Anywhere
[ 5] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 6] 22 (v6)                    ALLOW IN    Anywhere (v6)
[ 7] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 8] 53/tcp (v6)                ALLOW IN    Anywhere (v6)
Markup

Допустим, мы хотим удалить правило номер 2. Мы делаем это с помощью следующей команды:

ufw delete 2
Markup

Примечание :

После удаления второго правила в брандмауэре правило 3 станет новым правилом 2. Поэтому, если вы хотите удалить текущее правило 3, вы удалите его, используя номер 2.

ufw delete allow http
Markup

Сброс правил

Если вас не устраивают текущие правила и вы хотите начать все сначала, вы можете сделать это, запустив

ufw reset
Markup

Регистрация и перезагрузка

Чтобы включить ведение журнала, используйте следующую команду:

ufw logging on
Markup

Если вы по какой-то причине хотите отключить ведение журнала (не рекомендуется), вы можете использовать эту команду:

 

sudo ufw выход из системы

Журналы по умолчанию находятся /var/log/ufw.logв режиме реального времени. Чтобы просмотреть их в реальном времени, используйте tail -f следующим образом:

tail -f /var/log/ufw.log

            You will see all actions of firewall in that file.
            If you need to reload firewall for some reason,
            because you changed some config files manually,
            use following command.
Markup
ufw reload
Markup

Если вы хотите увидеть недавно добавленные правила

ufw show added
Markup

Файлы конфигурации UFW

В большинстве сценариев вы можете использовать команды терминала, но в некоторых случаях вам нужно напрямую редактировать файлы конфигурации. У ufw есть несколько файлов конфигурации, а именно:

/etc/ufw/before.rules
Markup
/etc/ufw/before6.rules
Markup

Эти два файла содержат правила, которые оцениваются перед всеми правилами, добавленными вами с помощью команд ufw. Так что, если вы хотите, чтобы какое-то правило было применено первым, вы хотите, чтобы оно было там. Первый файл предназначен для ipv4, а второй - для v6.

/etc/ufw/after.rules
Markup
/etc/ufw/after6.rules
Markup

Они оцениваются после правил команды ufw. Их удобно использовать, если вы хотите отменить какое-то правило и применить его, несмотря ни на что. Опять же, два файла для двух версий протокола IP, которые используются в настоящее время.

/etc/default/ufw
Markup

Здесь у нас есть модули ядра, которые использует ufw, а также другие общие настройки. Вы можете редактировать любой из этих файлов конфигурации только как root, и вы можете использовать любой текстовый редактор, который вам нравится.

Избегайте добавления повторяющихся правил.
Теперь давайте рассмотрим механизм против дублирования правил. Сначала откроем порт 101

sudo ufw allow 100
Markup

Обратите внимание, что команда без протокола, как указано выше, открывает порт UDP и TCP. Итак, давайте снова запустим ту же команду, чтобы посмотреть, что произойдет.

ufw allow 100
Markup

Результат:

Skipping adding existing rule Skipping adding existing rule (v6)
Markup

Это не позволяет нам добавлять повторяющееся правило. Это хорошо, но все же есть шанс добавить повторяющееся правило с помощью этой серии команд:

ufw allow 101/udp
Markup
ufw allow 101/tcp
Markup

После разрешения TCP и UDP на порт 101 мы все еще можем добавить открытый порт 101 для всех протоколов, и это повторяющееся правило, поскольку порт 101 открывается дважды, один раз для каждого протокола и один раз для всех.

ufw allow 101
Markup

Это оставляет место для ошибки, и обычно это не очень хорошая практика. Нам нужно отменить все три команды с помощью команды ufw delete, если мы хотим вернуться к настройкам по умолчанию для порта 101.

Чтобы закрыть какой-либо порт, вы запускаете те же команды, просто вместо этого введите deny.

Как остановить и отключить брандмауэр в CentOS 8

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

Если вы используете CentOS 8 / RHEL 8, Fedora 20 и более поздние версии, выполните описанную ниже процедуру, чтобы остановить и отключить Firewalld.

1) Как проверить статус Firewalld

Войдите на свой сервер через SSH и выполните команду ниже, чтобы проверить или проверить состояние вашего брандмауэра.

# systemctl status firewalld
Markup

2) Как остановить Firewalld

Чтобы остановить брандмауэр, введите следующую команду:

# systemctl stop firewalld
Markup

3) Как отключить Firewalld

Наконец, чтобы отключить брандмауэр при загрузке, выполните команду:

# systemctl disable firewalld
Markup

Отключив брандмауэр, нам нужно убедиться, что он действительно отключен. Опять же, чтобы проверить статус firewalld, введите команду:

# systemctl status firewalld
Markup

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

Читать по теме
Интересные статьи