ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

В этой статье мы покажем вам, как настроить брандмауэр UFW на Ubuntu 18.04. В Ubuntu, брандмауэр по умолчанию UFW, коротко Uncomplicated FireWall. Это было вокруг начиная с версии Ubuntu 18.04 и было построено, чтобы упростить конфигурацию Iptables, который был довольно сложным.

При использовании любой операции, брандмауэр является одним из наиболее важных функций, которые необходимо учитывать, что касается безопасности вашей системы. Брандмауэр – это щит или барьер, который существует между вашим компьютером и интернетом и блокирует несанкционированный трафик, такой как удаленный доступ к вашей системе, и помогает защитить от вредоносного кода, который постоянно проходит через интернет. Брандмауэр может быть аппаратным или программным. Аппаратный брандмауэр – это автономная система брандмауэра, размещенная в сети для добавления защитного слоя путем управления потоком трафика в сеть и из нее, а также блокирования доступа пользователей к нежелательным сайтам. Программный брандмауэр встроен в операционные системы, такие как Linux и Windows, и помогает защитить вашу систему от внешних атак.

Установка 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-05-15 20:32:12 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 15 20:32:12 ip-112-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

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

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 allow 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 logging off

 

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

tail -f /var/log/ufw.log /pre>

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.

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

 

Exit mobile version