файервол ufw

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

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

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

файервол ufw

Непрочитанное сообщение Olej » 26 дек 2019, 02:23

У нас уже есть тема относительно файерволов Fedora/CentOS: firewalld & iptables
Теперь самое время посмотреть в сторону файервола ufw, используемого в Debian, Ubuntu ...

P.S. Меня не интересует сам по себе ufw, но он важен в контексте управления VDS сервером, на котором крутится вот этот форум, который вы читаете, см. PHP и WEB-хостинг...
Следующее, что сразу же нужно сделать для хостинга, что непосредственно никак не относится к PHP, это настроить файервол.
НАСТРОЙКА UFW UBUNTU
Во всех дистрибутивах Linux для обеспечения сетевой безопасности и изоляции внутренних процессов от внешней среды используется брандмауэр iptables. Но его настройка может показаться очень сложной для новых пользователей, поэтому многие дистрибутивы создают собственные оболочки, которые упрощают процесс настройки.
В Ubuntu используется оболочка под названием UFW или Uncomplicated FireWall.
Но мы, к счастью, не в Ubuntu... :lol: Поэтому Как использовать UFW в Debian 10 Buster Linux:
Опубликовано : 11.07.2019
Здесь подробнейшим образом расписано как настроить ufw для самых разнообразных портов.

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

Re: файервол ufw

Непрочитанное сообщение Olej » 26 дек 2019, 02:31

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

root@277938:~# ufw --help

Usage: ufw COMMAND

Commands:
 enable                          enables the firewall
 disable                         disables the firewall
 default ARG                     set default policy
 logging LEVEL                   set logging to LEVEL
 allow ARGS                      add allow rule
 deny ARGS                       add deny rule
 reject ARGS                     add reject rule
 limit ARGS                      add limit rule
 delete RULE|NUM                 delete RULE
 insert NUM RULE                 insert RULE at NUM
 route RULE                      add route RULE
 route delete RULE|NUM           delete route RULE
 route insert NUM RULE           insert route RULE at NUM
 reload                          reload firewall
 reset                           reset firewall
 status                          show firewall status
 status numbered                 show firewall status as numbered list of RULES
 status verbose                  show verbose firewall status
 show ARG                        show firewall report
 version                         display version information

Application profile commands:
 app list                        list application profiles
 app info PROFILE                show information on PROFILE
 app update PROFILE              update PROFILE
 app default ARG                 set default application policy
Из типовых:

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

root@277938:~# ufw app list
Available applications:
  AIM
  Bonjour
  CIFS
  DNS
  Deluge
  IMAP
  IMAPS
  IPP
  KTorrent
  Kerberos Admin
  Kerberos Full
  Kerberos KDC
  Kerberos Password
  LDAP
  LDAPS
  LPD
  MSN
  MSN SSL
  Mail submission
  NFS
  OpenSSH
  POP3
  POP3S
  PeopleNearby
  SMTP
  SSH
  Socks
  Telnet
  Transmission
  Transparent Proxy
  VNC
  WWW
  WWW Cache
  WWW Full
  WWW Secure
  XMPP
  Yahoo
  qBittorrent
  svnserve

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

Re: файервол ufw

Непрочитанное сообщение Olej » 26 дек 2019, 02:38

Первоначально мне нужны для работы форума:

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

root@277938:~# sudo ufw allow "WWW Full"
Rule added
Rule added (v6)

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

root@277938:~# sudo ufw allow "OpenSSH"
Rule added
Rule added (v6)
Но пока ufw не активный, не работающий (что очень удобно).
Активируем:

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

root@277938:~# ufw status
Status: inactive
В итоге имеем:

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

root@277938:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
WWW Full                   ALLOW       Anywhere                  
8044                       ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
WWW Full (v6)              ALLOW       Anywhere (v6)             
8044 (v6)                  ALLOW       Anywhere (v6)       
Лишнее я потом уберу...

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

Re: файервол ufw

Непрочитанное сообщение Olej » 26 дек 2019, 02:42

Olej писал(а):
26 дек 2019, 02:38
Активируем:
Пока я вожусь с почтой (уведомление при регистрации новых пользователей) я добавлю (пока наугад):

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

root@277938:~# sudo ufw allow out SMTP
Rule added
Rule added (v6)

root@277938:~# sudo ufw allow in POP3
Rule added
Rule added (v6)

root@277938:~# sudo ufw allow in IMAP
Rule added
Rule added (v6)

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

root@277938:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
WWW Full                   ALLOW       Anywhere                  
8044                       ALLOW       Anywhere                  
POP3                       ALLOW       Anywhere                  
IMAP                       ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
WWW Full (v6)              ALLOW       Anywhere (v6)             
8044 (v6)                  ALLOW       Anywhere (v6)             
POP3 (v6)                  ALLOW       Anywhere (v6)             
IMAP (v6)                  ALLOW       Anywhere (v6)             

SMTP                       ALLOW OUT   Anywhere                  
SMTP (v6)                  ALLOW OUT   Anywhere (v6)             
Вот очень полезный режим (для последующего удаления):

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

root@277938:~# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] OpenSSH                    ALLOW IN    Anywhere                  
[ 2] WWW Full                   ALLOW IN    Anywhere                  
[ 3] 8044                       ALLOW IN    Anywhere                  
[ 4] SMTP                       ALLOW OUT   Anywhere                   (out)
[ 5] POP3                       ALLOW IN    Anywhere                  
[ 6] IMAP                       ALLOW IN    Anywhere                  
[ 7] OpenSSH (v6)               ALLOW IN    Anywhere (v6)             
[ 8] WWW Full (v6)              ALLOW IN    Anywhere (v6)             
[ 9] 8044 (v6)                  ALLOW IN    Anywhere (v6)             
[10] SMTP (v6)                  ALLOW OUT   Anywhere (v6)              (out)
[11] POP3 (v6)                  ALLOW IN    Anywhere (v6)             
[12] IMAP (v6)                  ALLOW IN    Anywhere (v6)             
И вот с уточнением до портов:

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

root@277938:~# 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                  
8044                       ALLOW IN    Anywhere                  
110/tcp (POP3)             ALLOW IN    Anywhere                  
143/tcp (IMAP)             ALLOW IN    Anywhere                  
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)             
80,443/tcp (WWW Full (v6)) ALLOW IN    Anywhere (v6)             
8044 (v6)                  ALLOW IN    Anywhere (v6)             
110/tcp (POP3 (v6))        ALLOW IN    Anywhere (v6)             
143/tcp (IMAP (v6))        ALLOW IN    Anywhere (v6)             

25/tcp (SMTP)              ALLOW OUT   Anywhere                  
25/tcp (SMTP (v6))         ALLOW OUT   Anywhere (v6)             

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

Re: файервол ufw

Непрочитанное сообщение Olej » 04 фев 2020, 22:36

Как это выглядит сканирование видимое снаружи на текущий момент на VDS сервере этого нашего форума:

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

olej@ACER:~$ nmap -p1-10240 185.178.47.95

Starting Nmap 7.70 ( https://nmap.org ) at 2020-02-04 21:33 EET
Stats: 0:00:00 elapsed; 0 hosts completed (0 up), 1 undergoing Ping Scan
Ping Scan Timing: About 100.00% done; ETC: 21:33 (0:00:00 remaining)
Nmap scan report for linux-ru.ru (185.178.47.95)
Host is up (0.060s latency).
Not shown: 10234 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  closed https
6665/tcp closed irc
6666/tcp closed irc
8080/tcp closed http-proxy

Nmap done: 1 IP address (1 host up) scanned in 31.78 seconds

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

Re: файервол ufw

Непрочитанное сообщение Olej » 05 фев 2020, 11:51

Olej писал(а):
26 дек 2019, 02:23
посмотреть в сторону файервола ufw,
Собственно, ufw не является файерволом, так что тема названа поверхностно.
ufw - это, не больше и не меньше, как пользовательский интерфейс управления правилами iptables в ядре, но с гораздо более простым синтаксисом, по крайней мере для простых случаев: защита по портам одиночного хоста.
В отличие от непосредственного использования таких базовых инструментов как iptables, nftables, firewal (из Fedora) - это инструменты для профессиональных (на жаловании ;)) администраторов, обеспечивающих защиту корпоративных сетей, часто достаточно сложной топологии. Для HOME-намерений это - из пушки по воробьям.

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

Re: файервол ufw

Непрочитанное сообщение Olej » 05 фев 2020, 11:56

Olej писал(а):
05 фев 2020, 11:51
ufw - это, не больше и не меньше, как пользовательский интерфейс управления правилами iptables в ядре,
Olej писал(а):
04 фев 2020, 22:36
Как это выглядит сканирование видимое снаружи на текущий момент на VDS сервере этого нашего форума:
Вот как правилами ufw определяется такая видимая nmap картина портов и разрешений:

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

olej@277938:~$ sudo /sbin/ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
WWW Full                   ALLOW       Anywhere                  
6666                       ALLOW       Anywhere                  
6665                       ALLOW       Anywhere                  
8080                       ALLOW       Anywhere                  

SMTP                       ALLOW OUT   Anywhere                  
А вот какой набор правил iptables порождает собой это определение:

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

root@277938:~# iptables --list
Chain INPUT (policy DROP)
target     prot opt source               destination         
f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
ufw-before-logging-input  all  --  anywhere             anywhere            
ufw-before-input  all  --  anywhere             anywhere            
ufw-after-input  all  --  anywhere             anywhere            
ufw-after-logging-input  all  --  anywhere             anywhere            
ufw-reject-input  all  --  anywhere             anywhere            
ufw-track-input  all  --  anywhere             anywhere            

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ufw-before-logging-forward  all  --  anywhere             anywhere            
ufw-before-forward  all  --  anywhere             anywhere            
ufw-after-forward  all  --  anywhere             anywhere            
ufw-after-logging-forward  all  --  anywhere             anywhere            
ufw-reject-forward  all  --  anywhere             anywhere            
ufw-track-forward  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ufw-before-logging-output  all  --  anywhere             anywhere            
ufw-before-output  all  --  anywhere             anywhere            
ufw-after-output  all  --  anywhere             anywhere            
ufw-after-logging-output  all  --  anywhere             anywhere            
ufw-reject-output  all  --  anywhere             anywhere            
ufw-track-output  all  --  anywhere             anywhere            

Chain ufw-before-logging-input (1 references)
target     prot opt source               destination         

Chain ufw-before-logging-output (1 references)
target     prot opt source               destination         

Chain ufw-before-logging-forward (1 references)
target     prot opt source               destination         

Chain ufw-before-input (1 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ufw-logging-deny  all  --  anywhere             anywhere             ctstate INVALID
DROP       all  --  anywhere             anywhere             ctstate INVALID
ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     udp  --  anywhere             anywhere             udp spt:bootps dpt:bootpc
ufw-not-local  all  --  anywhere             anywhere            

ACCEPT     udp  --  anywhere             224.0.0.251          udp dpt:mdns
ACCEPT     udp  --  anywhere             239.255.255.250      udp dpt:1900
ufw-user-input  all  --  anywhere             anywhere            

Chain ufw-before-output (1 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ufw-user-output  all  --  anywhere             anywhere            

Chain ufw-before-forward (1 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ufw-user-forward  all  --  anywhere             anywhere            

Chain ufw-after-input (1 references)
target     prot opt source               destination         
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:netbios-ns
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:netbios-dgm
ufw-skip-to-policy-input  tcp  --  anywhere             anywhere             tcp dpt:netbios-ssn
ufw-skip-to-policy-input  tcp  --  anywhere             anywhere             tcp dpt:microsoft-ds
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:bootps
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:bootpc
ufw-skip-to-policy-input  all  --  anywhere             anywhere             ADDRTYPE match dst-type BROADCAST

Chain ufw-after-output (1 references)
target     prot opt source               destination         

Chain ufw-after-forward (1 references)
target     prot opt source               destination         

Chain ufw-after-logging-input (1 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (1 references)
target     prot opt source               destination         

Chain ufw-after-logging-forward (1 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-reject-input (1 references)
target     prot opt source               destination         

Chain ufw-reject-output (1 references)
target     prot opt source               destination         

Chain ufw-reject-forward (1 references)
target     prot opt source               destination         

Chain ufw-track-input (1 references)
target     prot opt source               destination         

Chain ufw-track-output (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW
ACCEPT     udp  --  anywhere             anywhere             ctstate NEW

Chain ufw-track-forward (1 references)
target     prot opt source               destination         

Chain ufw-logging-deny (2 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere             ctstate INVALID limit: avg 3/min burst 10
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-logging-allow (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW ALLOW] "

Chain ufw-skip-to-policy-input (7 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            

Chain ufw-skip-to-policy-output (0 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain ufw-skip-to-policy-forward (0 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            

Chain ufw-not-local (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type MULTICAST
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type BROADCAST
ufw-logging-deny  all  --  anywhere             anywhere             limit: avg 3/min burst 10
DROP       all  --  anywhere             anywhere            

Chain ufw-user-input (1 references)
target     prot opt source               destination         
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

Chain ufw-user-output (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp /* 'dapp_SMTP' */
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh /* 'dapp_OpenSSH' */

Chain ufw-user-forward (1 references)
target     prot opt source               destination         

Chain ufw-user-logging-input (0 references)
target     prot opt source               destination         

Chain ufw-user-logging-output (0 references)
target     prot opt source               destination         

Chain ufw-user-logging-forward (0 references)
target     prot opt source               destination         

Chain ufw-user-limit (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 5 LOG level warning prefix "[UFW LIMIT BLOCK] "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain f2b-sshd (1 references)
target     prot opt source               destination         
REJECT     all  --  222.186.42.7         anywhere             reject-with icmp-port-unreachable
REJECT     all  --  187.112.84.14.static.host.gvt.net.br  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  198-200-124-197.cpe.distributel.net  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  dedicated-ajb156.rev.nazwa.pl  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  82-64-160-93.subs.proxad.net  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  174.138.36.91        anywhere             reject-with icmp-port-unreachable
REJECT     all  --  51-15-165-211.rev.poneytelecom.eu  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  222.186.30.209       anywhere             reject-with icmp-port-unreachable
REJECT     all  --  125.234.101.33.hcm.viettel.vn  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  218.92.0.138         anywhere             reject-with icmp-port-unreachable
REJECT     all  --  mail.groupe-telnet.net  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  www.beta.upiicsa.ipn.mx  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  178.62.239.205       anywhere             reject-with icmp-port-unreachable
REJECT     all  --  222.186.30.12        anywhere             reject-with icmp-port-unreachable
REJECT     all  --  host156-44-static.241-95-b.business.telecomitalia.it  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  190.64.204.140       anywhere             reject-with icmp-port-unreachable
REJECT     all  --  99-185-76-161.lightspeed.clmasc.sbcglobal.net  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  192-3-67-107-host.colocrossing.com  anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere            
В 1-м случае это по числу строк определений:

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

olej@277938:~$ sudo /sbin/ufw status | wc -l
12
А во 2-м, эквивалентном:

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

root@277938:~# iptables --list | wc -l
202

Ответить

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

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

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