В этом руководстве мы рассмотрим, как установить и настроить Firewalld на Debian 10 (Buster).
Firewalld – это инструмент управления брандмауэром Linux с поддержкой IPv4, IPv6, мостов Ethernet и настроек брандмауэра ipset.
Firewalld выступает в качестве внешнего интерфейса для сетевого фильтра ядра Linux.
Это стандартное программное обеспечение для управления брандмауэром для дистрибутивов Linux семейства RHEL 7+, но может использоваться в дистрибутивах Linux семейства Debian.
- Как установить Firewalld на Debian 10 (Buster)
- Использование Firewalld в Debian 10 (Buster)
- 1 – список всех настроенных правил брандмауэра
- 2 – Список служб, которые могут быть включены / отключены
- 3 – Включить сервис / Список сервисов
- 4 – Включить порт TCP
- 5 – Создать новую зону
- 6 – Включить службу / порт в определенной зоне
- 7 – Добавить интерфейс в зону
- 8 – разрешить доступ к порту из определенной подсети / IP
- 9 – Список правил rich
- 10 – Настройка переадресации портов
- 11 – Удаление порта или службы
Как установить Firewalld на Debian 10 (Buster)
Пакет firewalld доступен в официальных репозиториях Debian 10 apt.
Установка выполняется так же быстро, как запуск следующих команд в терминале, от имени пользователя root или пользователя с привилегиями sudo.
sudo apt update
sudo apt -y install firewalld
Это установит firewalld на Debian 10 и настроит запуск службы при загрузке.
Вытащите детали пакета с помощью:
$ apt policy firewalld
firewalld:
Installed: 0.6.3-5
Candidate: 0.6.3-5
Version table:
*** 0.6.3-5 500
500 http://deb.debian.org/debian buster/main amd64 Packages
100 /var/lib/dpkg/status
Убедитесь, что служба находится в рабочем состоянии.
$ sudo firewall-cmd --state running $ systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset Active: active (running) since Sun 2019-07-07 06:35:14 EDT; 1min 33s ago Docs: man:firewalld(1) Main PID: 7955 (firewalld) Tasks: 2 (limit: 2319) Memory: 24.5M CGroup: /system.slice/firewalld.service └─7955 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid
Если у вас включен UFW, отключите его, чтобы сделать FireWalld вашим брандмауэром по умолчанию
Использование Firewalld в Debian 10 (Buster)
Теперь, когда пакет установлен и запущена служба firewalld, давайте рассмотрим несколько примеров того, как его можно использовать для защиты вашего сервера / рабочей станции.
1 – список всех настроенных правил брандмауэра
Чтобы просмотреть текущие правила, используйте команду:
$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Службы ssh и dhcpv6-client разрешены по умолчанию при запуске службы firewalld.
2 – Список служб, которые могут быть включены / отключены
Чтобы получить полный список служб, которые можно включить или отключить, используйте следующую команду.
sudo firewall-cmd --get-services
3 – Включить сервис / Список сервисов
Чтобы разрешить службу в брандмауэре, синтаксис команды следующий:
$ sudo firewall-cmd --add-service="servicename" --permanent
В приведенном ниже примере активируется служба http.
$ sudo firewall-cmd --add-service="http" --permanent
success
$ sudo firewall-cmd --reload
Для списка служб, разделите их запятой.
$ sudo firewall-cmd --add-service={http,https,smtp,imap} --permanent --zone=public
$ sudo firewall-cmd --reload
4 – Включить порт TCP
Синтаксис для включения порта TCP:
$ sudo firewall-cmd --add-port=port/tcp --permanent
$ sudo firewall-cmd --reload
Вот как включить порт 8080 и 8443.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port={8080,8443}/tcp --permanent
sudo firewall-cmd --reload
Для портов UDP замените /tcp на /udp.
5 – Создать новую зону
Чтобы создать новую зону брандмауэра, используйте команду:
$ sudo firewall-cmd --new-zone=zonename --permanent
E.g
$ sudo firewall-cmd --new-zone=private --permanent
$ sudo firewall-cmd --reload
6 – Включить службу / порт в определенной зоне
Чтобы включить службу / порт в определенной зоне, синтаксис:
sudo firewall-cmd --zone=<zone> --add-port=<port>/tcp --permanent
sudo firewall-cmd --zone=<zone> --add-port=<port>/udp --permanent
sudo firewall-cmd --zone=<zone> --add-service=<service> --permanent
sudo firewall-cmd --zone=<zone> --add-service={service1,service2,service3} --permanent
7 – Добавить интерфейс в зону
Для систем с более чем одним интерфейсом вы можете добавить интерфейс в зону.
Например, веб-серверы Backend в частной зоне и приложения в общедоступной зоне.
sudo firewall-cmd --get-zone-of-interface=eth1 --permanent
sudo firewall-cmd --zone=<zone> --add-interface=eth1 --permanent
8 – разрешить доступ к порту из определенной подсети / IP
Доступ к услуге или порту может быть ограничен определенным IP-адресом или подсетью. с использованием rich правил.
$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="192.168.0.12/32" accept' --permanent
$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="10.1.1.0/24" accept' --permanent
9 – Список правил rich
sudo firewall-cmd --list-rich-rules
10 – Настройка переадресации портов
Смотрите примеры ниже.
# Enable masquerading
$ sudo firewall-cmd --add-masquerade --permanent
# Port forward to a different port within same server ( 22 > 2022)
$ sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toport=2022 --permanent
# Port forward to same port on a different server (local:22 > 192.168.2.10:22)
$ sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toaddr=192.168.2.10 --permanent
# Port forward to different port on a different server (local:7071 > 10.50.142.37:9071)
$ sudo firewall-cmd --add-forward-port=port=7071:proto=tcp:toport=9071:toaddr=10.50.142.37 --permanent
11 – Удаление порта или службы
Чтобы удалить порт или службу из брандмауэра, замените –add на –-remove в каждой команде, используемой для включения службы.
См. также:
- Введение в команду firewalld и firewall-cmd в Linux
- Как заблокировать IP-адреса из стран, используя Iptables Geoip Addons