файервол ufw

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: файервол ufw

Непрочитанное сообщение Olej » 14 май 2020, 16:10

Olej писал(а):
05 фев 2020, 11:51
Собственно, ufw не является файерволом, так что тема названа поверхностно.
ufw - это, не больше и не меньше, как пользовательский интерфейс управления правилами iptables в ядре, но с гораздо более простым синтаксисом, по крайней мере для простых случаев: защита по портам одиночного хоста.
Детально синтаксис правил ufw смотрим:

Код: Выделить всё

olej@ACER:~$ man ufw
...
Но даже при простоте ufw там достаточно много деталей...
Есть несколько руководств, которые позволяют для несложных случаев вспомнить и настроить "в лёт":
Фаервол UFW. Базовая настройка.
07 окт. 2017
...
Особенность UFW заключается в том, что каждое новое правило добавляется в конец списка существующих правил. При поступлении пакета правила проверяются одно за другим до тех пор, пока не будет найдено подходящее. Теперь представим ситуацию, при которой вы сначала добавили общее разрешающее правило, а затем — более конкретное запрещающее. В таком случае последнее правило не будет работать, поскольку пакет пройдет благодаря предыдущему правилу.
Настройка фаервола в Ubuntu с помощью утилиты UFW
9 октябрь 2016 г.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: файервол ufw

Непрочитанное сообщение Olej » 14 май 2020, 16:56

Olej1 писал(а):
14 май 2020, 15:38
Ждём гостя так:
...

Код: Выделить всё

root@277938:~# ufw show raw | grep 186
       0        0 REJECT     tcp  --  *      *       186.2.160.0/24       0.0.0.0/0            multiport sports 80,443 reject-with tcp-reset
Оно же:

Код: Выделить всё

root@277938:~# ufw show user-rules
IPV4 (user):
Chain ufw-user-input (1 references)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 REJECT     tcp  --  *      *       186.2.160.0/24       0.0.0.0/0            multiport sports 80,443 reject-with tcp-reset
     250    14828 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 /* 'dapp_OpenSSH' */
     596    35760 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 /* 'dapp_WWW%20Full' */
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:6666
       0        0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:6666
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:6665
       0        0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:6665
       1       40 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
       0        0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:8080

Chain ufw-user-forward (1 references)
    pkts      bytes target     prot opt in     out     source               destination         

Chain ufw-user-output (1 references)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25 /* 'dapp_SMTP' */

Chain ufw-user-limit-accept (0 references)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-user-limit (0 references)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
       0        0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
Или оно же на уровне правил iptables:

Код: Выделить всё

root@277938:~# iptables --list ufw-user-input
Chain ufw-user-input (1 references)
target     prot opt source               destination         
REJECT     tcp  --  ddos-guard.net/24    anywhere             multiport sports http,https reject-with tcp-reset
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh /* 'dapp_OpenSSH' */
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https /* 'dapp_WWW%20Full' */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:6666
ACCEPT     udp  --  anywhere             anywhere             udp dpt:6666
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:6665
ACCEPT     udp  --  anywhere             anywhere             udp dpt:6665
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt
ACCEPT     udp  --  anywhere             anywhere             udp dpt:http-alt
И 1-е даёт адрес (диапазон подсети) 186.2.160.0/24, а 2-е - его же, но в виде DNS-разрешённого имени урода, ddos-guard.net/24 ... почему я застрял на некоторое время в поиске этих правил. :-?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: файервол ufw

Непрочитанное сообщение Olej » 14 май 2020, 19:25

Управляется (останавливается - запускается) ufw собственными командами:

Код: Выделить всё

root@277938:~# ufw --help | grep able
 enable                          enables the firewall
 disable                         disables the firewall
Но тем не менее, это самый обычный сервис, управляемый systemd:

Код: Выделить всё

root@277938:~# systemctl status ufw
● ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2020-03-30 01:02:33 MSK; 1 months 15 days ago
     Docs: man:ufw(8)
 Main PID: 202 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 544)
   Memory: 0B
   CGroup: /system.slice/ufw.service

Код: Выделить всё

root@277938:/lib/systemd/system# pwd
/lib/systemd/system

root@277938:/lib/systemd/system# ls *ufw*
ufw.service

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: файервол ufw

Непрочитанное сообщение Olej » 14 май 2020, 19:37

Olej писал(а):
14 май 2020, 19:25
Но тем не менее, это самый обычный сервис, управляемый systemd:
Но при остановке фаервола (выключение Netfilter в ядре?) сам сервис не останавливается:

Код: Выделить всё

root@ACER:~# ufw disable
Firewall stopped and disabled on system startup
root@ACER:~# systemctl status ufw
● ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2020-05-14 13:03:10 EEST; 6h ago
     Docs: man:ufw(8)
  Process: 532 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
 Main PID: 532 (code=exited, status=0/SUCCESS)

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Логи ufw - в /var/log/ufw.log, уровень логирования определяется командой:

Код: Выделить всё

root@277938:~# ufw --help | grep log
 logging LEVEL                   set logging to LEVEL

ufw(8):

Код: Выделить всё

LEVEL may be 'off', 'low', 'medium', 'high' and 'full'.
Стандартно установлен уровень low - только отражённые запросы. Выглядит это как-то так:

Код: Выделить всё

root@277938:/lib/systemd/system# tail /var/log/ufw.log 
May 14 19:32:54 277938 kernel: [3954595.773915] [UFW BLOCK] IN=eth0 OUT= MAC=de:73:e9:53:45:1a:80:71:1f:c7:cd:00:08:00 SRC=209.222.101.41 DST=185.200.243.3 LEN=40 TOS=0x00 PREC=0xC0 TTL=239 ID=18298 PROTO=TCP SPT=41030 DPT=16489 WINDOW=1024 RES=0x00 SYN URGP=0 
May 14 19:33:19 277938 kernel: [3954620.245805] [UFW BLOCK] IN=eth0 OUT= MAC=de:73:e9:53:45:1a:80:71:1f:c7:cd:00:08:00 SRC=170.130.187.34 DST=185.200.243.3 LEN=44 TOS=0x00 PREC=0xC0 TTL=246 ID=30085 PROTO=TCP SPT=55020 DPT=3306 WINDOW=1024 RES=0x00 SYN URGP=0 
May 14 19:33:40 277938 kernel: [3954641.870382] [UFW BLOCK] IN=eth0 OUT= MAC=de:73:e9:53:45:1a:80:71:1f:c7:cd:00:08:00 SRC=185.156.73.38 DST=185.200.243.3 LEN=40 TOS=0x00 PREC=0xC0 TTL=247 ID=30 PROTO=TCP SPT=54841 DPT=1999 WINDOW=1024 RES=0x00 SYN URGP=0 
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: файервол ufw

Непрочитанное сообщение Olej » 14 май 2020, 19:47

Из Ubuntu пришёл и такой удобный GUI инструмент управления как:

Код: Выделить всё

olej@ACER:~/2020_WORK/rus.linux.net.hist/local$ aptitude search gufw
p   gufw                                                                               - графический интерфейс пользователя для ufw                                                  

Код: Выделить всё

olej@ACER:~/2020_WORK/rus.linux.net.hist/local$ sudo apt install gufw
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  gufw
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 873 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 3 534 kB.
Пол:1 http://deb.debian.org/debian buster/main amd64 gufw all 18.10.0-1 [873 kB]
Получено 873 kB за 1с (1 618 kB/s)
Выбор ранее не выбранного пакета gufw.
(Чтение базы данных … на данный момент установлен 441841 файл и каталог.)
Подготовка к распаковке …/gufw_18.10.0-1_all.deb …
Распаковывается gufw (18.10.0-1) …
Настраивается пакет gufw (18.10.0-1) …
Обрабатываются триггеры для desktop-file-utils (0.23-4) …
Обрабатываются триггеры для mime-support (3.62) …
Обрабатываются триггеры для hicolor-icon-theme (0.17-2) …
Обрабатываются триггеры для man-db (2.8.5-2) …

Код: Выделить всё

olej@ACER:~/2020_WORK/rus.linux.net.hist/local$ which gufw
/usr/bin/gufw

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: файервол ufw

Непрочитанное сообщение Olej » 25 фев 2023, 02:32

Olej писал(а):
14 май 2020, 19:47
Из Ubuntu пришёл и такой удобный GUI инструмент управления как:
При запуске, естественно, запросит пароль администратора:

Код: Выделить всё

olej@ACER:~$ gufw
DtsGetHWFeatures: Create File Failed
...
Ну а дальше всё понятно, наглядно и удобно...
Вложения
Снимок экрана от 2020-05-14 19-41-47.png
Снимок экрана от 2020-05-14 19-42-25.png
Снимок экрана от 2020-05-14 19-42-25.png (53.38 КБ) 1958 просмотров
Снимок экрана от 2020-05-14 19-44-27.png
Снимок экрана от 2020-05-14 19-44-27.png (66.18 КБ) 1958 просмотров

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

файервол ufw

Непрочитанное сообщение Olej » 19 мар 2023, 21:19

Olej писал(а):
14 май 2020, 16:10
Детально синтаксис правил ufw смотрим:
Прошло 3 года ... и новый виток интреса к ufw возник в связи с установкой SOCKS5 прокси-сервера: SOCKS proxy
Идея состоит в том, что для прокси-серверов (HTTPS, SOCKS5 и др.) нужно открывть используемые ними порты ... TCP или/и UDP.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

файервол ufw

Непрочитанное сообщение Olej » 04 апр 2023, 09:30

Olej писал(а):
19 мар 2023, 21:19
и новый виток интреса к ufw возник
И тут же возникла потребность разрешить IPv6 для работы безопасной сети Yggdrasil :!:

How to allow an IP (ipv6) address using ufw?
How To Setup a Firewall with UFW
Как настроить брандмауэр UFW на Ubuntu и Debian

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

файервол ufw

Непрочитанное сообщение Olej » 04 апр 2023, 09:37

Olej писал(а):
04 апр 2023, 09:30
разрешить IPv6
Имеем на сервере (этого форума):

Код: Выделить всё

root@277938:/etc/default# grep IPV6 /etc/default/ufw
#IPV6=yes
IPV6=no
Меняем на:

Код: Выделить всё

root@277938:/etc/default# grep IPV6 /etc/default/ufw
IPV6=yes
#IPV6=no
Там же, в конфиг файле, написано:

Код: Выделить всё

# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
Делаем:

Код: Выделить всё

olej@277938:~$ sudo ufw disable
Firewall stopped and disabled on system startup

Код: Выделить всё

olej@277938:~$ sudo ufw status
Status: inactive
Уже в этот момент убеждаемся что IPv6 пошёл :!: :

Код: Выделить всё

olej@277938:~$ ping -6 -c3 202:1a41:b65a:dbd6:c433:bd44:ea25:343f
PING 202:1a41:b65a:dbd6:c433:bd44:ea25:343f(202:1a41:b65a:dbd6:c433:bd44:ea25:343f) 56 data bytes
64 bytes from 202:1a41:b65a:dbd6:c433:bd44:ea25:343f: icmp_seq=1 ttl=64 time=575 ms
64 bytes from 202:1a41:b65a:dbd6:c433:bd44:ea25:343f: icmp_seq=2 ttl=64 time=138 ms
64 bytes from 202:1a41:b65a:dbd6:c433:bd44:ea25:343f: icmp_seq=3 ttl=64 time=137 ms

--- 202:1a41:b65a:dbd6:c433:bd44:ea25:343f ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 137.442/283.665/575.226/206.165 ms
И в завершение подымаем файервол:

Код: Выделить всё

olej@277938:~$ sudo ufw enable
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

файервол ufw

Непрочитанное сообщение Olej » 04 апр 2023, 09:39

Olej писал(а):
04 апр 2023, 09:37
Уже в этот момент убеждаемся что IPv6 пошёл
И в завершение снова подымаем файервол, как был:

Код: Выделить всё

olej@277938:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Код: Выделить всё

olej@277938:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere
80,443/tcp (WWW Full)      ALLOW IN    Anywhere
6666                       ALLOW IN    Anywhere
6665                       ALLOW IN    Anywhere
8080                       ALLOW IN    Anywhere
10050                      ALLOW IN    Anywhere
10050/tcp                  ALLOW IN    Anywhere
2222                       ALLOW IN    Anywhere
1080                       ALLOW IN    Anywhere

25/tcp (SMTP)              ALLOW OUT   Anywhere
И финальная проверка IPv6:

Код: Выделить всё

olej@277938:~$ ping -6 -c3 202:1a41:b65a:dbd6:c433:bd44:ea25:343f
PING 202:1a41:b65a:dbd6:c433:bd44:ea25:343f(202:1a41:b65a:dbd6:c433:bd44:ea25:343f) 56 data bytes
64 bytes from 202:1a41:b65a:dbd6:c433:bd44:ea25:343f: icmp_seq=1 ttl=64 time=385 ms
64 bytes from 202:1a41:b65a:dbd6:c433:bd44:ea25:343f: icmp_seq=2 ttl=64 time=139 ms
64 bytes from 202:1a41:b65a:dbd6:c433:bd44:ea25:343f: icmp_seq=3 ttl=64 time=136 ms

--- 202:1a41:b65a:dbd6:c433:bd44:ea25:343f ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 136.030/220.079/385.241/116.794 ms

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей