Как установить брандмауэр в 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

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

systemctl status ufw

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

                ● 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

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

ufw status

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

Status: inactive

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

 
ufw enable

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

ufw disable

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

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

ufw default allow outgoing

Результат:

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

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

ufw default deny incoming

Результат:

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

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

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

ufw allow 22/tcp

Результат:

Skipping adding existing rule Skipping adding existing rule (v6)

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

ufw allow ssh

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

ufw delete allow 22/ssh

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

ufw deny service-name

Например

ufw deny ssh

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

cat /etc/services | less

Результат:

            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

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

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

 ufw enable

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

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

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

Firewall is active and enabled on system startup

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

ufw status

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

Результат:

            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)

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

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

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

ufw allow service-name

ИЛИ

ufw allow port/tcp

Например

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

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

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

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

ufw allow from 10.200.20.45

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

ufw allow from 10.200.20.45 to any port 22

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

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

ufw allow from 192.168.1.0/24

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

ufw allow from 192.168.1.0/24 to any port 22

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

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

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

ufw allow in on eth0 to any port 80

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

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

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

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

ufw deny from 192.168.1.15

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

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

ufw deny from 150.165.125.0/24

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

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

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

ufw deny 80/tcp

ИЛИ

ufw deny http

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

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

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

ufw status numbered

Результат:

            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)

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

 ufw delete 2

Примечание :

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

 ufw delete allow http

Сброс правил

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

ufw reset

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

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

 ufw logging on

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

 

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.
 ufw reload

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

 ufw show added

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

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

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

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

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

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

/etc/default/ufw

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

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

 sudo ufw allow 100

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

 ufw allow 100

Результат:

Skipping adding existing rule Skipping adding existing rule (v6)

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

 ufw allow 101/udp
 ufw allow 101/tcp

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

ufw allow 101

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

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

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

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

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

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

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

# systemctl status firewalld

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

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

# systemctl stop firewalld

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

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

# systemctl disable firewalld

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

# systemctl status firewalld

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

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