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