♥ Как установить и настроить Firewalld на Debian 10 (Buster)

В этом руководстве мы рассмотрим, как установить и настроить Firewalld на Debian 10 (Buster).

Firewalld — это инструмент управления брандмауэром Linux с поддержкой IPv4, IPv6, мостов Ethernet и настроек брандмауэра ipset.

Firewalld выступает в качестве внешнего интерфейса для сетевого фильтра ядра Linux.

Это стандартное программное обеспечение для управления брандмауэром для дистрибутивов Linux семейства RHEL 7+, но может использоваться в дистрибутивах Linux семейства Debian.

Как установить Firewalld на Debian 10 (Buster)

Пакет firewalld доступен в официальных репозиториях Debian 10 apt.

Установка выполняется так же быстро, как запуск следующих команд в терминале, от имени пользователя root или пользователя с привилегиями sudo.

sudo apt updatesudo apt -y install firewalld

Это установит firewalld на Debian 10 и настроит запуск службы при загрузке.

Вытащите детали пакета с помощью:

$ apt policy firewalldfirewalld:Installed: 0.6.3-5Candidate: 0.6.3-5Version table:*** 0.6.3-5 500500 http://deb.debian.org/debian buster/main amd64 Packages100 /var/lib/dpkg/status

Убедитесь, что служба находится в рабочем состоянии.

$ sudo firewall-cmd --staterunning$ systemctl status firewalld● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor presetActive: active (running) since Sun 2019-07-07 06:35:14 EDT; 1min 33s agoDocs: man:firewalld(1)Main PID: 7955 (firewalld)Tasks: 2 (limit: 2319)Memory: 24.5MCGroup: /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-allpublic (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: dhcpv6-client sshports: protocols: masquerade: noforward-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" --permanentsuccess$ 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 --permanentsudo firewall-cmd --zone=public --add-port={8080,8443}/tcp --permanentsudo firewall-cmd --reload

Для портов UDP замените /tcp на /udp.

5 — Создать новую зону

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

$ sudo firewall-cmd --new-zone=zonename --permanentE.g$ sudo firewall-cmd --new-zone=private --permanent$ sudo firewall-cmd --reload

6 — Включить службу/порт в определенной зоне

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

sudo firewall-cmd --zone= --add-port=/tcp --permanentsudo firewall-cmd --zone= --add-port=/udp --permanentsudo firewall-cmd --zone= --add-service= --permanentsudo firewall-cmd --zone= --add-service={service1,service2,service3} --permanent

7 — Добавить интерфейс в зону

Для систем с более чем одним интерфейсом вы можете добавить интерфейс в зону.

Например, веб-серверы Backend в частной зоне и приложения в общедоступной зоне.

sudo firewall-cmd --get-zone-of-interface=eth1 --permanentsudo firewall-cmd --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

Отправка комментария

0 Комментарии