Простая настройка фаервола в ufw в ubuntu

UFW

Чтобы настроить простой межсетевой экран, не обязательно разбираться с тонкостями работы netfilter или изучать синтаксис iptables.
Можно воспользоваться более простой в использовании конфигурационной утилитой ufw.

sudo apt install ufw

Для включения межсетевого экрана достаточно отдать команду, выполняется единожды при установке в дальнейшем стартует вместе с системой.

sudo ufw enable

Для его отключения: 

sudo ufw disable

Далее запретить входящие соединения при помощи команд:

sudo ufw default deny

Запретить порт 25:

sudo ufw deny 25

Разрешить ssh:

sudo ufw allow ssh

Просмотр состояния:

sudo ufw status

Просмотр дополнительных сведений:

sudo ufw status verbose

Отключение лога:

sudo ufw logging off

Включение логов:

sudo ufw logging on

Если перезагрузившись status не активен, то можно прописать в файле /etc/ufw/ufw.conf:

ENABLED=yes

Так же можно посмотреть файл с дефолтными настройками ufw /etc/default/ufw.
Статус всегда активен, если добавить программой rcconf или любой подобной утилитой ufw в автостарт.
В общем порядок самой простой настройки таков: включение, запрет на входящие.
Обратите внимание, что речь здесь идёт именно о соединениях, а не о входящих пакетах вообще — после команды sudo ufw default deny инициировать входящее соединение с вашей машиной станет невозможно, при этом входящие пакеты для соединений, инициированных вами, приниматься будут.
Например, будет работать ICQ или торрент-клиент, но на машину нельзя будет зайти по telnet или http. Кроме того, ufw позволяет добавлять собственные правила фильтрации трафика, например команда:

sudo ufw allow from 192.168.0.0/24

Открывает полный доступ к вашей машине из сети 192.168.0.0/24
Запретить доступ, скажем, к 80-му tcp-порту можно следующим образом:

sudo ufw deny 80

или с помощью iptables:

iptables -I INPUT 1 -p tcp --dport 80 -j DROP

Разрешить порт:

sudo ufw allow 8080

Разрешить один порт с определенного хоста:

ufw allow proto tcp from 195.218.237.130 to any port 5901

Разрешить диапазон портов с определенного хоста:

ufw allow proto tcp from 194.48.218.4 to any port 2210:2218

Можно разрешать или запрещать доступ к портам для конкретного диапазона ip-адресов, работать с группой портов, удалять созданные правила и так далее. Притом все изменения применяются немедленно и сохраняются после перезагрузки компьютера. Для получения подробной информации по синтаксису ufw наберите команду: man ufw

Подробный вывод правил:

ufw status verbose

О профилях приложений

Ufw позволяет создавать профили приложений. в которых можно указать все порты которые используются и удобно добавлять их в правила. Так к примеру можно создать профиль для веб-сервера Apache, указав что слушает он 80 и 443 порты по протоколу tcp. Профили приложений являются текстовыми файлами и могут быть отредактированы любым текстовым редактором. все файлы хранятся в директории /etc/ufw/applications.d

Вывести список профилей можно с помощью команды:

sudo ufw app list
Доступные приложения: OpenSSH

Детальную информацию по профилю можно просмотреть с помощью команды

sudo ufw app info OpenSSH
Профиль: OpenSSH
Название: Secure shell server, an rshd replacement
Описание: OpenSSH is a free implementation of the Secure Shell protocol.
Порт: 22/tcp

Добавление правил для приложения, команда:

sudo ufw app default allow|deny OpenSSH

После добавления или изменения профиля приложения (в файле) необходимо дать знать файрволу о новом профиле:

sudo ufw app update OpenSSH

Можно в файле hosts.deny (/etc/hosts.deny) раскомментировать строку #ALL: PARANOID

Предохранение вашей системы от ответов на ping запросы, отключение широковещательных сообщений и включение предупреждений обо всех неправильных сообщениях.

sudo nano /etc/ufw/sysctl.conf

и исправить 0 на 1

# Ignore bogus ICMP errors
net.ipv4.icmp._echo_ignore_broadcasts=1
net.ipv4.icmp._ignore_bogus_error_responses=1
net.ipv4.icmp._echo._ignore_all=1

Затем перезагрузить сеть:

sudo /etc/init.d/networking restart

Просканировать порты на открытые можно на онлайн сервисах или с помощью программы nmap:

sudo nmap -sT 192.168.1.100

или просканировать все порты системы:

sudo nmap -p1-65535 192.168.1.100

ip ставится на который настроен интернет или

sudo nmap localhost

Источник