Настройка, программирование, распределённые вычисления
Модераторы: Olej, bellic, vikos
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 14 май 2020, 16:10
Olej писал(а): ↑05 фев 2020, 11:51
Собственно, ufw не является файерволом, так что тема названа поверхностно.
ufw - это, не больше и не меньше, как пользовательский интерфейс
управления правилами iptables в ядре, но с гораздо более простым синтаксисом, по крайней мере для простых случаев: защита по портам одиночного хоста.
Детально синтаксис правил ufw смотрим:
Но даже при простоте ufw там достаточно много деталей...
Есть несколько руководств, которые позволяют для несложных случаев вспомнить и настроить "в лёт":
Фаервол UFW. Базовая настройка.
07 окт. 2017
...
Особенность UFW заключается в том, что каждое новое правило добавляется в конец списка существующих правил. При поступлении пакета правила проверяются одно за другим до тех пор, пока не будет найдено подходящее. Теперь представим ситуацию, при которой вы сначала добавили общее разрешающее правило, а затем — более конкретное запрещающее. В таком случае последнее правило не будет работать, поскольку пакет пройдет благодаря предыдущему правилу.
Настройка фаервола в Ubuntu с помощью утилиты UFW
9 октябрь 2016 г.
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
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
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
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
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
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
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
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
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 25 фев 2023, 02:32
Olej писал(а): ↑14 май 2020, 19:47
Из Ubuntu пришёл и такой удобный GUI инструмент управления как:
При запуске, естественно, запросит пароль администратора:
Код: Выделить всё
olej@ACER:~$ gufw
DtsGetHWFeatures: Create File Failed
...
Ну а дальше всё понятно, наглядно и удобно...
-
Вложения
-
-
- Снимок экрана от 2020-05-14 19-42-25.png (53.38 КБ) 2069 просмотров
-
- Снимок экрана от 2020-05-14 19-44-27.png (66.18 КБ) 2069 просмотров
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 19 мар 2023, 21:19
Olej писал(а): ↑14 май 2020, 16:10
Детально синтаксис правил ufw смотрим:
Прошло 3 года ... и новый виток интреса к ufw возник в связи с установкой SOCKS5 прокси-сервера:
SOCKS proxy
Идея состоит в том, что для прокси-серверов (HTTPS, SOCKS5 и др.)
нужно открывть используемые ними порты ... TCP или/и UDP.
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
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
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
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
Olej
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей