В этой статье мы покажем вам, как настроить брандмауэр 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, который является несложным брандмауэром, используемым для разрешения или ограничения трафика. Это очень мощный брандмауэр для регулирования трафика в вашей системе. Не стесняйтесь опробовать команды в вашей системе.