Добавление большего количества правил (открытие портов и разрешение IP-адреса)
Синтаксис выглядит следующим образом, чтобы открыть порт TCP 22 и 443:
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
1 |
$sudo ufw allow80/tcp $sudo ufw allow443/tcp |
Откройте сервер UDP / 1194 (OpenVPN):
$ sudo ufw allow 1194/udp
1 | $sudo ufw allow1194/udp |
Откройте порт 25 (smtpd / сервер электронной почты):
$ sudo ufw allow 25
1 | $sudo ufw allow25 |
Вы можете разрешить диапазоны портов, TCP и UDP 3000 до 5000:
$ sudo ufw allow 3000:5000/tcp
$ sudo ufw allow 3000:5000/udp
1 |
$sudo ufw allow30005000/tcp $sudo ufw allow30005000/udp |
Разрешить соединения с определенного IP-адреса 1.2.3.4, введите следующую команду:
$ sudo ufw allow from 1.2.3.4
1 | $sudo ufw allow from1.2.3.4 |
Разрешить соединения с определенного IP-адреса 1.2.3.4, к нашему порту 22, введите следующую команду:
$ sudo ufw allow from 1.2.3.4 to any port 22 proto tcp
1 | $sudo ufw allow from1.2.3.4toany port22proto tcp |
ИЛИ (Dest 222.222.222.222 порт 22)
$ sudo ufw allow from 1.2.3.4 to 222.222.222.222 port 22 proto tcp
1 | $sudo ufw allow from1.2.3.4to222.222.222.222port22proto tcp |
Step 6 — Denying Connections
If you haven’t changed the default policy for incoming connections, UFW is configured to deny all incoming connections. Generally, this simplifies the process of creating a secure firewall policy by requiring you to create rules that explicitly allow specific ports and IP addresses through.
However, sometimes you will want to deny specific connections based on the source IP address or subnet, perhaps because you know that your server is being attacked from there. Also, if you want to change your default incoming policy to allow (which is not recommended), you would need to create deny rules for any services or IP addresses that you don’t want to allow connections for.
To write deny rules, you can use the commands described above, replacing allow with deny.
For example, to deny HTTP connections, you could use this command:
Or if you want to deny all connections from you could use this command:
Now let’s take a look at how to delete rules.
Set Up Defaults
One of the things that will make setting up any firewall easier is to define some default rules for allowing and denying connections. UFW’s defaults are to deny all incoming connections and allow all outgoing connections. This means anyone trying to reach your cloud server would not be able to connect, while any application within the server would be able to reach the outside world. To set the defaults used by UFW, you would use the following commands:
sudo ufw default deny incoming
and
sudo ufw default allow outgoing
Note: if you want to be a little bit more restrictive, you can also deny all outgoing requests as well. The necessity of this is debatable, but if you have a public-facing cloud server, it could help prevent against any kind of remote shell connections. It does make your firewall more cumbersome to manage because you’ll have to set up rules for all outgoing connections as well. You can set this as the default with the following:
sudo ufw default deny outgoing
Аутентификация пользователя на основе SSH-ключей
Этот шаг не обязателен, но он значительно повысит безопасность вашего сервера. Поэтому, рекомендуем его не пропускать.
Для начала сгенерируем SSH ключ с помощью команды (не забудьте отключиться от сервера, команду запускаем на локальной машине!):
ssh-keygen
Путь для расположения ключа можно оставить стандартным. Можно придумать и ввести passphrase (секретная фраза). Или же просто оставить всё по умолчанию, нажимая :
Теперь этот ключ нужно скопировать на сервер. В Windows придётся копировать ключ вручную. Займёмся этим.
Подключаемся к серверу:
ssh user@ip_addres
В корневой директории созданного пользователя (/home/john) нужно создать папку . Скорее всего вы уже находитесь в этой директории. Проверить это можно с помощью команды:
pwd
Если вы находитесь в другой директории, то перейдем в нужную нам с помощью команды:
cd /home/john
Здесь создадим директорию :
mkdir .ssh
Проверить создание директории и просмотреть структуру текущей директории:
ls -la
Установим права для этой папки:
chmod 700 .ssh/
Перейдем в эту папку:
cd .ssh
Создадим файл в этой директории:
touch authorized_keys
Установим права для этого файла:
chmod 600 authorized_keys
Вводим команду:
cat >> authorized_keys << EOF
Курсор передвинется на новою строку в ожидании ввода данных от вас:
Переходим в папку на локальном компьютере, куда был сгенерирован ключ и с помощью любого текстового редактора открываем файл . Копируем весь текст из этого файла. Копируйте внимательно, без захвата пробелов в начале и в конце строки!
Вставляем ключ, который скопировали из файла и вводим команду:
EOF
Жмем .
Отлично, мы скопировали и вставили наш ключ в файл . Можно проверить содержимое файла командой:
cat authorized_keys
Теперь при подключении к серверу по SSH, пароль для подключения запрашиваться не будет.
Step 7 — Deleting Rules
Knowing how to delete firewall rules is just as important as knowing how to create them. There are two different ways specify which rules to delete: by rule number or by the actual rule (similar to how the rules were specified when they were created). We’ll start with the delete by rule number method because it is easier, compared to writing the actual rules to delete, if you’re new to UFW.
By Rule Number
If you’re using the rule number to delete firewall rules, the first thing you’ll want to do is get a list of your firewall rules. The UFW status command has an option to display numbers next to each rule, as demonstrated here:
If we decide that we want to delete rule 2, the one that allows port 80 (HTTP) connections, we can specify it in a UFW delete command like this:
This would show a confirmation prompt then delete rule 2, which allows HTTP connections. Note that if you have IPv6 enabled, you would want to delete the corresponding IPv6 rule as well.
By Actual Rule
The alternative to rule numbers is to specify the actual rule to delete. For example, if you want to remove the rule, you could write it like this:
You could also specify the rule by , instead of by service name:
This method will delete both IPv4 and IPv6 rules, if they exist.
2: Политика по умолчанию
Начиная настройку брандмауэра, вы должны продумать и определить политику по умолчанию. Эти правила управляют обработкой трафика, который не отвечает другим правилам. По умолчанию UFW сбрасывает все входящие и разрешает все исходящие соединения. Это значит, что другие пользователи не смогут получить доступ к вашему облачному серверу, но все установленные на сервере приложения могут взаимодействовать с внешними приложениями.
Чтобы вернуться к исходным правилам брандмауэра, введите команды:
Если вы создали пользовательский набор правил, эти команды сбросят его и восстановят исходные правила. Теперь брандмауэр будет сбрасывать все входящие и разрешать исходящие соединения.
Стандартные правила брандмауэра подходят для персональных компьютеров; серверам обычно необходимо принимать входящий трафик.
Зачем устанавливать vpn на Linux
Для пользователей Linux, желающих скрыть IP-адрес, у нас есть отдельная статья, где мы пошагово рассказываем, как установить впн на Linux. Скажем сразу – мы считаем установку vpn обязательным условием безопасности вашего компьютера. Каждый день вы посещаете десятки сайтов, оставляя на них ваши данные, которые становятся доступными администраторам. Имея на руках ваш IP, вам могут как запретить доступ к ресурсам, так и использовать его для проникновения уже на ваш компьютер, если вы чем-то заинтересуете злоумышленников. Большую опасность несет в себе и работа с устройства Linux в незащищенных wi-fi сетях. Никогда не решайте важные финансовые и рабочие вопросы, подключившись к публичному wi-fi без защиты впн-программы!
Интернет-провайдеру тоже ни к чему знать, где вы бываете и что там делаете. Vpn для Linux поможет зашифровать данные и скроет от глаз провайдера посещаемые вами сайты. Таким образом, соединяясь через впн-серверы, вы сможете без проблем заходить даже заблокированные вашим провайдером (к примеру, по запросу Роскомнадзора) интернет-ресурсы. То же и с блокировкой по географическому положению – youtube, Netflix, другие подобные ресурсы очень любят прятать самые интересный контент от неугодных им стран. Но с впн на Linux эти запреты не для вас.
Про установку vpn на Linux читайте здесь, а мы лишь напомним, как включить openvpn на Linux, если он уже установлен, и как отключить, если вы готовы вернуться к своему реальному IP.
Подключаемся к выбранному конфигу openvpn, указав в –config путь до файла конфигурации необходимого сервера:
n
Чтобы проверить, что IP-адрес сменился, введите:
Вы также можете зайти на сайт whoer.net и проверить ваш IP-адрес и другие параметры безопасности в сети.
Чтобы отключить vpn в Linux:
Обратите внимание на то, что vpn-подключение может идти по TCP или UDP-протоколу. О разнице между ними и том, какой выбрать в каком случае, вы можете подробно прочесть здесь, скажем лишь, что UDP немного более быстрый, хоть и не такой надежный
А как отредактировать ваши openvpn-конфиги для Linux и сменить протокол, мы показываем в видео-ролике на ютьюб Меняем TCP на UDP в OpenVPN. Также вы можете при редактировании конфигов отключить некоторые из IP-адресов страны, оставив только необходимые вам. Как это сделать, упоминается в видео Как использовать Whoer VPN в клиенте OpenVPN.
Возможно, вам удобнее будет подключать vpn на Linux через графическое приложение GNOME. Как установить его смотрите в видео Как установить графическое приложение VPN на Linux.
Шаг 1 — Использование IPv6 с UFW (опционально)
Этот обучающий модуль предусматривает использование протокола IPv4, но подходит и для IPv6, если вы активировали этот протокол. Если на вашем сервере Ubuntu активирован протокол IPv6, настройте UFW для поддержки IPv6, чтобы UFW управлял правилами брандмауэра и для IPv6, и для IPv4. Для этого откройте конфигурацию UFW с помощью или своего предпочитаемого редактора.
Убедитесь, что параметр имеет значение . Конфигурация должна выглядеть следующим образом:
/etc/default/ufw excerpt
Сохраните и закройте файл. После активации UFW будет настроен для записи правил брандмауэра для IPv4 и для IPv6. Однако перед включением UFW нужно убедиться, что ваш брандмауэр настроен для подключения через SSH. Для начала настроим политики по умолчанию.
Step 3 — Allowing SSH Connections
If we enabled our UFW firewall now, it would deny all incoming connections. This means that we will need to create rules that explicitly allow legitimate incoming connections — SSH or HTTP connections, for example — if we want our server to respond to those types of requests. If you’re using a cloud server, you will probably want to allow incoming SSH connections so you can connect to and manage your server.
To configure your server to allow incoming SSH connections, you can use this command:
This will create firewall rules that will allow all connections on port , which is the port that the SSH daemon listens on by default. UFW knows what port means because it’s listed as a service in the file.
However, we can actually write the equivalent rule by specifying the port instead of the service name. For example, this command works the same as the one above:
If you configured your SSH daemon to use a different port, you will have to specify the appropriate port. For example, if your SSH server is listening on port , you can use this command to allow connections on that port:
Now that your firewall is configured to allow incoming SSH connections, we can enable it.
7: Блокирование соединений
По умолчанию UFW блокирует все входящие соединения. В целом это очень надежная политика.
Однако иногда вам может потребоваться заблокировать определенные подключения на основе IP-адреса или подсети (например, если вы знаете, что ваш сервер регулярно подвергается атакам оттуда).
Если вы хотите изменить политику брандмауэра по умолчанию на allow, вам нужно уметь блокировать трафик определённых вредоносных IP-адресов или подсетей.
Правила, блокирующие трафик, пишутся точно так же, только вместо allow используется deny.
К примеру, чтобы заблокировать HTTP, нужно ввести:
Чтобы заблокировать все соединения адреса 203.0.113.4, введите команду:
Как просмотреть статус UFW?
По умолчанию UFW в неактивном состоянии т.е. нет правил брандмауэра не настроен и весь трафик разрешен. Чтобы увидеть статус, введите следующую команду:
$ sudo ufw status
1 | $sudo ufw status |
Примеры результата:
<span class=»notranslate»> Статус: неактивный</span>
1 | <span class=»notranslate»>Статуснеактивный</span> |
Настройка политики по умолчанию
По умолчанию, когда UFW активируется он блокирует весь входящий трафик на межсетевой экран / сервер. Только исходящий трафик разрешен. Вы можете просмотреть правила по умолчанию UFW, введя следующую команду:
$ grep ‘DEFAULT_’ /etc/default/ufw
1 | $grep’DEFAULT_’/etc/default/ufw |
Пример результата:
DEFAULT_INPUT_POLICY=»DROP»
DEFAULT_OUTPUT_POLICY=»ACCEPT»
DEFAULT_FORWARD_POLICY=»DROP»
DEFAULT_APPLICATION_POLICY=»SKIP»
1 |
DEFAULT_INPUT_POLICY=»DROP» DEFAULT_OUTPUT_POLICY=»ACCEPT» DEFAULT_FORWARD_POLICY=»DROP» DEFAULT_APPLICATION_POLICY=»SKIP» |
Политика по умолчанию работает хорошо для серверов и ноутбуков / рабочих станции, так как вам нужно только открыть ограниченное количество входящих портов. Это хорошая политика, она закрывает все порты на сервере / брандмауэра, и вам нужно только открыть порты один за другим. Вы можете выполнить следующие команды, чтобы установить политику, блокировать все входящие соединения и разрешить только исходящие соединения от сервера / межсетевого экрана:
$ sudo ufw default allow outgoing
$ sudo ufw default deny incoming
1 |
$sudo ufw defaultallow outgoing $sudo ufw defaultdeny incoming |
Создание первого правила брандмауэра, чтобы разрешить подключение к SSH (TCP-порт 22)
Введите следующую команду, чтобы разрешить SSH-соединения с сервером:
$ sudo ufw allow ssh
1 | $sudo ufw allow ssh |
ИЛИ
sudo ufw allow 22/tcp
1 | sudo ufw allow22/tcp |
Скажем, если вы работаете в SSH на порту 2020, введите следующую команду:
$ sudo ufw allow 2020/tcp
1 | $sudo ufw allow2020/tcp |
Следующие правила открывают доступ к TCP SSH порт 22 только на 10.8.0.1 (т.е. ваш сервер SSH слущает на IP 10.8.0.1 порт 22) из любого места:
$ ufw allow proto tcp from any to 10.86.115.66 port 22
1 | $ufw allow proto tcp from any to10.86.115.66port22 |
Используйте следующий синтаксис
$ sudo ufw rule comment ‘my cool comment here’
1 | $sudo ufw rule comment’my cool comment here’ |
Откройте порт 53 и напишите комментарий о правиле:
ufw allow 53 comment ‘open tcp and udp port 53 for dns’
1 | ufw allow53comment’open tcp and udp port 53 for dns’ |
Другой пример:
ufw allow proto tcp from any to any port 80,443 comment ‘my cool web app ports’
1 | ufw allow proto tcp from any toany port80,443comment’my cool web app ports’ |
Включить брандмауэр на основе UFW
Теперь у вас есть политика по умолчанию и SSH порт разрешен. Это безопасно для того, чтобы включить брандмауэр, введите следующую команду:
$ sudo ufw enable
1 | $sudo ufw enable |
Примеры выходов:
<span class=»notranslate»> <small><kbd>Команда может нарушить существующие соединения SSH.</kbd></small></span> <span class=»notranslate»> <small><kbd>Продолжайте операции (Y | N)? <strong>У</strong></kbd></small></span> <small><kbd>
</kbd></small> <span class=»notranslate»> <small><kbd>Брандмауэр активен и включен при запуске системы</kbd></small></span>
1 |
<span class=»notranslate»><small><kbd>КомандаможетнарушитьсуществующиесоединенияSSH.</kbd></small></span><span class=»notranslate»><small><kbd>Продолжайтеоперации(Y|N)?<strong>У</strong></kbd></small></span><small><kbd> </kbd></small><span class=»notranslate»><small><kbd>Брандмауэрактивенивключенпризапускесистемы</kbd></small></span> |
После включения, брандмауэр запускается и после перезагрузки.
Отключить брандмауэр на основе UFW
Если вам нужно остановить брандмауэр и отключить при запуске системы, введите следующую команду:
$ sudo ufw disable
1 | $sudo ufw disable |
Примеры вывода:
<span class=»notranslate»> <small><kbd>Брандмауэр остановлен и отключен при запуске системы</kbd></small></span>
1 | <span class=»notranslate»><small><kbd>Брандмауэростановлениотключенпризапускесистемы</kbd></small></span> |
Deny Connections to Your Server
The same way it is important to open ports and allow connections to your server, denying connections also carries the same relevance. If you need to deny access to a certain port, use the deny command and optionally the transfer protocol.
For example, to deny access to the default MySQL port.
The above command will block all connections to MySQL through the port, and the database server will receive incoming unless you assign a new custom port or re-enable it. For easier execution, you can use a simplified syntax for the most common service ports by simply listing the application name.
It is highly recommended to restrict access to your SSH port (22) from anywhere except your trusted IP addresses (example: office or home).
Создание нового пользователя с административными правами
Добавляем в систему нового пользователя и предоставляем ему права администратора.
sudo adduser john
Система задаст несколько вопросов. Сначала она предложит ввести пароль для этой учетной записи.
Введите пароль и при желании заполните поля с дополнительной информацией. Это не обязательно, и вы можете просто нажать , если хотите оставить поле пустым по умолчанию.
Проверим добавился ли пользователь :
sudo cat /etc/shadow | grep john
Добавляем нового пользователя в группу :
sudo usermod -aG sudo john
Сменим пользователя и проверим его права:
su - john sudo whoami
Чтобы повысить уровень безопасности вашего сервера, мы настоятельно рекомендуем настроить ключи SSH вместо использования аутентификации по паролю. Мы это сделаем чуть позже, а пока настроим брандмауэр (фаервол) для корректной работы SSH-соединений.
Introduction
The Linux kernel includes the Netfilter subsystem, which is used to manipulate or decide the fate of network traffic headed into or through your server. All modern Linux firewall solutions use this system for packet filtering.
The kernel’s packet filtering system would be of little use to administrators without a userspace interface to manage it. This is the purpose of iptables: When a packet reaches your server, it will be handed off to the Netfilter subsystem for acceptance, manipulation, or rejection based on the rules supplied to it from userspace via iptables. Thus, iptables is all you need to manage your firewall, if you’re familiar with it, but many frontends are available to simplify the task.
Политики UFW по умолчанию
По умолчанию UFW блокирует все входящие соединения и разрешает все исходящие соединения. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы специально не откроете порт, в то время как все приложения и службы, работающие на вашем сервере, смогут получить доступ к внешнему миру.
Политики по умолчанию определены в и могут быть изменены с помощью команды .
Политики брандмауэра являются основой для создания более подробных и определяемых пользователем правил. В большинстве случаев исходная политика UFW по умолчанию является хорошей отправной точкой.
Что такое файрвол и Ubuntu
Первое, что необходимо знать, если вы новичок — Ubuntu это операционная система из семейства Linux, то есть перед нами Linux со всеми вытекающими. Интерфейс, файловая система и всё остальное — родное, с некоторыми изменениями, из-за них Ubuntu и выделяют в отдельную операционную систему, которая входит в четвёрку по популярности среди пользователей семейства.
Файрвол (firewall) — огненная стена, грубо говоря, экран, который контролирует все входящие и исходящие трафики и позволяет контролировать их: разрешать или запрещать. Линукс во многих аспектах намного безопаснее той же Windows, и вирусов нет, и файловая система круче (не фрагментируется), но это не значит, что можно пренебрегать безопасностью и игнорировать прекрасную возможность обезопасить свои данные файрволом.
В разных версиях Linux с файрволом дела обстоят по-разному, в нашем случае предусмотрен стандартный простой ufw, настройка которого в Ubuntu происходит с помощью командной строки. Это долго, сложно и неудобно, тем более при копировании команд некоторые символы могут замениться на альтернативные, и придётся доводить команды вручную или, вообще, набирать их целиком. Обычному пользователю разобраться в этих дебрях не просто, да и не сильно хочется, поэтому мы будем использовать графическую оболочку Gufw, которая позволит нам управлять возможностями файрвола без лишних мучений, просто работая с интерфейсом программы.
В стоковой Линукс предустановлен очень мощный iptables, разобраться с которым неопытному пользователю крайне сложно, поэтому Gufw — настоящий спасательный круг. Давайте разбираться, как его установить и настроить.
Настройка политики по умолчанию
В начале работы с брандмауэром в первую очередь нужно определить политику по умолчанию. Эти правила управляют обработкой трафика, который явно не соответствует никаким другим правилам. По умолчанию UFW блокирует все входящие и разрешает все исходящие соединения. Это означает, что любой, кто пытается получить доступ к серверу, не сможет подключиться, в то время как любое приложение на сервере сможет достичь внешнего мира.
Сначала вернем правила UFW к значениям по умолчанию, чтобы обеспечить корректное поведение команд, представленных в статье. Для этого выполним:
sudo ufw default deny incoming sudo ufw default allow outgoing
Значения по умолчанию запрещают входящие и разрешают исходящие соединения. Этого может быть достаточно для персонального компьютера, но серверам обычно необходимо отвечать на входящие запросы от внешних пользователей. Рассмотрим это далее.
Comments
- Why not a QoS integration in this application?. It’s useful overall if donwload programs use all the bandwidth and use has no option to navigate with commodity. Thanks.
ANSWER This may be included in a future release
-
I have a suggestion which probably is out of scope of this spec: add a default IP filtering range, like in peerguardian, which would block RIAA, MPAA, etc. — AzraelNightwalker 2008-02-07 16:00:04
ANSWER ufw 0.19 now supports port ranges, which will aid in developing these sorts of policies
-
What about binary-specific rules? (Maybe that’s what the package integration does?). Like this: I have installed Konquerior and Firefox and both packages report they want to surf the web (port 80 and 443) but I want to restrict Konquerior to my own internal subnet only while Firefox will be sllowed to surf to any IP-address. This type of configuration is able to do in other firewalls (like «NetLimiter 2 Pro» for windows) and I would be happy to see something similar in Ubuntu’s firewall. — AndersHäggström
- Why not create a ufw.d folder? When users install applications the deb would add a entry. An example would be installing Apache, the deb would add an entry to allow incoming connections to port 80.
ANSWER This is planned. See ‘Package Integration’, above.
- Another option is firehol it has a single configuration file pretty «declarative».
- What about firewall tool ‘X’.
ANSWER Users are still free to use whatever firewall tool best fits their needs. ufw is not enabled by default and will not get in the way of other tools when not enabled.
-
GUI for ufw available: http://gufw.tuxfamily.org/
- Is there a simple way to get ufw to flush the nat table when enabling? I have the line «-A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE» in before.rules to enable outbound nat, however after disabling/enabling ufw I get multiple and sometimes conflicting nat and port-forwarding entries showing up at «iptables -L -t nat».
CategorySpec CategoryComments
Блокирование соединений
UFW по умолчанию блокирует все входящие соединения. Обычно это упрощает процесс создания политики безопасности брандмауэра, но требует создания правил, разрешающих подключение конкретных портов и IP-адресов.
Однако возникают ситуации, когда необходимо блокировать соединения по IP-адресу источника или подсети, например, потому что сервер подвергался атаке с этого адреса. Также, когда требуется изменить политику блокирования соединений по умолчанию на разрешающую, то для блокировки необходимо создавать правила запрещающие трафик с помощью deny.
Чтобы создать правила deny, достаточно в командах выше заменить allow на deny. Например, чтобы заблокировать соединения HTTP, введите:
sudo ufw default allow incoming sudo ufw deny http
Для блокировки соединений IP-адерса 203.0.113.4 воспользуйтесь командой:
sudo ufw deny from 203.0.113.4
Далее рассмотрим способы удаления правил.
Шаг 2 — Настройка политик по умолчанию
Если вы только начинаете работать с брандмауэром, прежде всего нужно настроить политики по умолчанию. Эти правила определяют обработку трафика, который явно не соответствует каким-либо другим правилам. По умолчанию UFW настроен так, чтобы запрещать все входящие соединения и разрешать все исходящие соединения. Это означает, что любые попытки связаться с вашим сервером будут заблокированы, но любые приложения на вашем сервере будут иметь связь с внешним миром.
Восстановим правила UFW по умолчанию, чтобы продолжить выполнение этого обучающего модуля. Для восстановления настроек по умолчанию для UFW необходимо использовать следующие команды:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Эти команды задают значения по умолчанию, запрещая входящие соединения и разрешая исходящие. Такие параметры брандмауэра по умолчанию достаточны для персонального компьютера, но серверам обычно нужно отвечать на поступающие запросы внешних пользователей. Мы рассмотрим это чуть позже.
Шаг 2 — Настройка политик по умолчанию
Если вы только начинаете работать с брандмауэром, прежде всего нужно настроить политики по умолчанию. Эти правила определяют обработку трафика, который явно не соответствует каким-либо другим правилам. По умолчанию UFW настроен так, чтобы запрещать все входящие соединения и разрешать все исходящие соединения. Это означает, что любые попытки связаться с вашим сервером будут заблокированы, но любые приложения на вашем сервере будут иметь связь с внешним миром.
Восстановим правила UFW по умолчанию, чтобы продолжить выполнение этого обучающего модуля. Для восстановления настроек по умолчанию для UFW необходимо использовать следующие команды:
Эти команды задают значения по умолчанию, запрещая входящие соединения и разрешая исходящие. Такие параметры брандмауэра по умолчанию достаточны для персонального компьютера, но серверам обычно нужно отвечать на поступающие запросы внешних пользователей. Мы рассмотрим это чуть позже.
Шаг 2 — Настройка политик по умолчанию
Если вы только начинаете работать с брандмауэром, прежде всего нужно настроить политики по умолчанию. Эти правила определяют обработку трафика, который явно не соответствует каким-либо другим правилам. По умолчанию UFW настроен так, чтобы запрещать все входящие соединения и разрешать все исходящие соединения. Это означает, что любые попытки связаться с вашим сервером будут заблокированы, но любые приложения на вашем сервере будут иметь связь с внешним миром.
Восстановим правила UFW по умолчанию, чтобы продолжить выполнение этого обучающего модуля. Для восстановления настроек по умолчанию для UFW необходимо использовать следующие команды:
Эти команды задают значения по умолчанию, запрещая входящие соединения и разрешая исходящие. Такие параметры брандмауэра по умолчанию достаточны для персонального компьютера, но серверам обычно нужно отвечать на поступающие запросы внешних пользователей. Мы рассмотрим это чуть позже.
Use Cases
Alice uses a desktop system and wants to add a firewall as another layer of protection. Alice can enable the firewall to provide this protection. When new packages are added, Alice can easily enable the services provided by these packages.
Bob installs a server with one network interface and wants to add a firewall as another layer of protection. Bob can enable the firewall to provide this protection, as well as monitor the status of open ports.
Charlie has a cluster of systems with specific applications installed and wants to have an easy to administer firewall on each. Charlie can enable the firewall and use application profiles to allow firewall configuration via packages.
Шаг 7 — Удаление правил
Знать процедуру удаления правил брандмауэра так же важно, как и знать процедуру их создания. Существует два разных способа указывать правила для удаления: по номеру правила или по фактическому правилу (так же, как правила задавались при их создании)
Начнем с метода удаления по номеру правила, поскольку этот метод проще.
По номеру правила
Если вы используете номер правила для удаления правил брандмауэра, прежде всего нужно получить список правил брандмауэра. Команда UFW status имеет опцию отображение номеров рядом с каждым правилом, как показано здесь:
sudo ufw status numbered
Numbered Output:
Если мы решим удалить правило 2, разрешающее соединения через порт 80 (HTTP), мы можем указать его в команде UFW delete, как показано здесь:
sudo ufw delete 2
После этого откроется диалогового окна подтверждения удаления правила 2, разрешающего соединения HTTP. Если вы включили поддержку IPv6, вы можете также удалить соответствующее правило для IPv6.
По фактическому имени правила
Вместо номеров правил можно указывать фактические имена удаляемых правил. Например, если вы хотите удалить правило , вы можете использовать следующую команду:
sudo ufw delete allow http
Также вы можете указать это правило как , а не указывать имя службы:
sudo ufw delete allow 80
Этот метод удалит правила IPv4 и IPv6, если они существуют.
Профили приложений
Профиль приложения — это текстовый файл в формате INI, который описывает службу и содержит правила брандмауэра для службы. Профили приложений создаются в каталоге во время установки пакета.
Вы можете просмотреть все профили приложений, доступные на вашем сервере, набрав:
В зависимости от пакетов, установленных в вашей системе, вывод будет выглядеть следующим образом:
Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте следующую команду:
Выходные данные показывают, что профиль «Nginx Full» открывает порты и .
Вы также можете создавать собственные профили для своих приложений.
Шаг 6 — Запрет соединений
Если вы не изменяли политику по умолчанию для входящих соединений, UFW настроен на запрет всех входящих соединений. Это упрощает процесс создания защищенной политики брандмауэра, поскольку вам нужно создавать правила, прямо разрешающие соединения через конкретные порты и IP-адреса.
Однако в некоторых случаях вам может понадобиться запретить определенные соединения по IP-адресу источника или подсети, например, в случае атаки с этого адреса. Если вы захотите изменить политику по умолчанию для входящих соединений на allow (что не рекомендуется), вам нужно будет создать правила deny для любых служб или IP-адресов, которым вы не хотите разрешать подключение.
Для записи правил deny можно использовать описанные выше команды, заменяя allow на deny.
Например, чтобы запретить соединения по протоколу HTTP, вы можете использовать следующую команду:
Если вы захотите запретить все подключения с IP-адреса , вы можете использовать следующую команду:
Теперь посмотрим, как можно удалять правила.