Брандмауэры

Revision as of 13:02, 18 January 2023 by Krotesk (talk | contribs) (Created page with "Теперь, если бы мы захотели запретить ssh на ipv6, то должны использовать команду: $usercmd9")
Other languages:
English • ‎Türkçe • ‎русский • ‎فارسی • ‎中文(中国大陆)‎

Обзор

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

UFW

UFW расшифровывается как Uncomplicated FireWall (несложный брандмауэр) и является программой для управления брандмауэром netfilter. Она предоставляет интерфейс командной строки и стремится быть понятной и легкой в использовании. UFW намного проще, чем iptables и является хорошим местом для начала, если у вас нет очень специализированных потребностей.

Установка UFW

Вы можете установить пакет ufw с помощью своего любимого менеджера пакетов или команды:

user $ pamac install ufw COPY TO CLIPBOARD


После установки UFW необходимо запустить и включить его с помощью команд:

user $ sudo systemctl enable ufw.service COPY TO CLIPBOARD


user $ sudo ufw enable COPY TO CLIPBOARD



Внимание
Не включайте одновременно службы iptables.service и ufw.service

Добавление правил

Для просмотра текущей конфигурации можно использовать команду ufw status. Вот как это выглядит при новой установке:


$ sudo ufw status verbose

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip


Это означает, что он будет блокировать весь входящий трафик и разрешать весь исходящий. Это хорошая отправная точка для большинства настольных систем. Однако часто мы хотим разрешить некоторый входящий трафик. Это можно сделать с помощью команды ufw allow. Например, если мы хотим разрешить входящий ssh-трафик, чтобы подключаться к машине с других машин в сети, мы должны использовать команду:

user $ sudo ufw allow ssh COPY TO CLIPBOARD


Если бы мы хотели также установить tcp-соединения с локальным веб-сервером на нестандартный https-порт 8443 - мы должны были бы использовать команду:

user $ sudo ufw allow in 8443/tcp COPY TO CLIPBOARD



Подсказка
Когда вы не указываете "in" или "out" - предполагается "in"

UFW и приложения

Вы можете заметить разницу в двух приведенных выше командах. Когда мы создавали правила для ssh - мы использовали имя службы, а для https - номер порта 8443. Это связано с тем, что UFW имеет небольшую базу данных приложений, для которых он знает порты. Вы можете просмотреть список с помощью команды:

user $ sudo ufw app list COPY TO CLIPBOARD


Для приложений из списка вы можете добавить их по имени. Если захотите просмотреть конфигурацию для одного из приложений - можете использовать команду ufw app info. Например, к конфигурации для ssh:


$ sudo ufw app info SSH

Profile: SSH
Title: SSH server
Description: SSH server
 
 
Port:
  22/tcp


Подсказка
При использовании приложения ufw команды чувствительны к регистру, но при добавлении правил - нет

Некоторые дополнительные предварительно настроенные приложения можно добавить, установив пакет ufw-extras с помощью своего любимого менеджера пакетов или команды:

user $ pamac install ufw-extras COPY TO CLIPBOARD


Удаление правил

Правила можно удалить с помощью команды ufw delete. Например, чтобы удалить наши правила для порта 8443 - мы должны использовать команду:

user $ sudo ufw delete allow 8443/tcp COPY TO CLIPBOARD


Вы также можете удалять их по номерам. Это проще, если у вас есть нумерованный список, который можно просмотреть с помощью команды:


$ sudo ufw status numbered

Status: active
To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere
[ 2] 22 (v6)                    ALLOW IN    Anywhere (v6)


Теперь, если бы мы захотели запретить ssh на ipv6, то должны использовать команду:

user $ sudo ufw delete 2 COPY TO CLIPBOARD


GUFW

Prefer to use GUI applications and still want to manage your firewall? No problem. GUFW is a GTK front-end for UFW that aims to make managing a Linux firewall as accessible and easy as possible. It features pre-sets for common ports and p2p applications.

If it is not installed already gufw can be installed from the repos:

user $ pamac install gufw COPY TO CLIPBOARD


It will now be available in the menu as Firewall Configuration or by running gufw directly.

iptables

iptables is included as part of the Linux kernel. iptables is significantly more complicated than using a tool like UFW. As a result, a full tutorial on iptables is beyond the scope of this wiki. Using iptables on Manjaro should be the same for every distribution of Linux so there is plenty of available documentation. Some of this is linked below. Here are some basics to get you started.

To enable loading rules on startup you can use the command:

user $ sudo systemctl enable iptables.service COPY TO CLIPBOARD


This will load the rules from the file /etc/iptables/iptables.rules.

To display the currently loaded rules:

user $ sudo iptables -L COPY TO CLIPBOARD


To save the current rules to a file

user $ sudo sh -c "iptables-save > /etc/iptables/iptables.rules" /etc/iptables/iptables.rules" " aria-disabled="false">COPY TO CLIPBOARD


To load the rules from a file

user $ sudo sh -c "iptables-restore > /etc/iptables/iptables.rules" /etc/iptables/iptables.rules" " aria-disabled="false">COPY TO CLIPBOARD


To allow ssh connections

user $ sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT COPY TO CLIPBOARD


user $ sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT COPY TO CLIPBOARD


See Also