Эта статья является моим переводом Ubuntu manpage.
НАИМЕНОВАНИЕ
ufw - программа для управления межсетевым экраном netfilter
ОПИСАНИЕ
Эта программа предназначена для управления межсетевым экраном Linux firewall, с целью предоставления удобного инструмента для пользователя.
ИСПОЛЬЗОВАНИЕ
ufw [--dry-run] enable|disable|reload
ufw [--dry-run] default allow|deny|reject [incoming|outgoing]
ufw [--dry-run] logging on|off|LEVEL
ufw [--dry-run] reset
ufw [--dry-run] status [verbose|numbered]
ufw [--dry-run] show REPORT
ufw [--dry-run] [delete] [insert NUM] allow|deny|reject|limit [in|out]
[log|log-all] PORT[/protocol]
ufw [--dry-run] [delete] [insert NUM] allow|deny|reject|limit [in|out
on INTERFACE] [log|log-all] [proto protocol] [from ADDRESS [port PORT]]
[to ADDRESS [port PORT]]
ufw [--dry-run] delete NUM
ufw [--dry-run] app list|info|default|update
ПАРАМЕТРЫ
--version
показывает версию программы.
-h, --help
показывает подсказку по команде.
--dry-run
ничего не изменять, только вывести результат выполнения команды.
enable
перегрузить межсетевой экран и включять его при загрузке системы.
disable
отключить межсетевой экран и не включать его при загрузке системы.
reload
перезагрузить межсетевой экран.
default allow|deny|reject DIRECTION
изменить политику по умолчанию для указанного трафика DIRECTION, где
DIRECTION принимает значение incoming(входящий) или outgoing(исходящий).
Заметьте, что существующие правила должны быть перенесены вручную при изменении политики.
См. RULE SYNTAX для получения дополнительной информации о deny и reject.
logging on|off|LEVEL
изменить журналирование. Для регистрирпции в журнале пакетов используются возможности syslog LOG_KERN.
Параметр LEVEL указывает на степень детализации журнала. По умолчанию используется уровень ’low’. Детали в LOGGING.
reset
Отключает и сбрасывает настройки межсетевого экрана к настройкам по умолчанию. Можно использовать
ключ --force
для отключения запроса подтверждения.
status
показывает состояние межсетевого экрана и список правил ufw. Используйте status
verbose
для получения расширеной информации. В выводе status, ’Anywhere’
является синонимом значений ’any’ и ’0.0.0.0/0’.
show REPORT
отображает информацию о межсетевом экране. См. REPORTS
allow ARGS
добавить разрешающее правило. См. RULE SYNTAX
deny ARGS
добавить запрещающее (игнорирование) правило. см. RULE SYNTAX
reject ARGS
добавить отказывающее (с уведомлением источника) правило. См. RULE SYNTAX
limit ARGS
добавить ограничивающее(блокирующие) правило (rate limit). В настоящий момент поддерживается только IPv4. См. RULE
SYNTAX
delete RULE|NUM
удалить указанное правило RULE
insert NUM RULE
втсавить указанное правило RULE в цепочку правил с номером NUM
RULE SYNTAX
Пользователи могут использовать простой или полный ситаксис задания правил. При простом синтаксисе указывается только порт и опционально протокол которые разрешаются или запрещяются на хосте. Например:
ufw allow 53
Это правило разрешает прохождение пакетов через tcp и udp порт 53 для любых адресов на данном хосте. Для указания протокола, добавте ’/protocol’ к номеру порта. Например:
ufw allow 25/tcp
Это разрешает прохождение пакетов через tcp порт 25 для любых адресов хоста. Также ufw использует /etc/services для проверки портов и протоколов заданных по наименованию. Например:
ufw allow smtp
ufw позволяет фильтрировать входящие и исходящие пакеты и пользователь может указать направление опциями in или out для входящего и исходящего трафика. Если направление не указано, правило применяется для входящего трафика. Например:
ufw allow in http
ufw reject out smtp
Пользователи могут использовать также полный синтаксис, указывая адрес источник, адрес назначения и порт. Этот синтаксис основан на синтаксисе межсетевого экрана PF OpenBSD. Например:
ufw deny proto tcp to any port 80
Данное правило запрещает весть трафик через tcp порт 80 на хосте. Другой пример:
ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25
Это правило запрещает весь трафик из сети RFC1918 класса A для tcp порта 25 для хоста с адресом 192.168.0.1.
ufw deny proto tcp from 2001:db8::/32 to any port 25
Это правило запрещает весь трафик от IPv6 2001:db8::/32 на tcp порт 25 на данном хосте. Заметьте, что IPv6 должен быть включен в /etc/default/ufw для работы межсетевого экрана с IPv6 .
ufw allow proto tcp from any to any port 80,443,8080:8090
Это правило разрешает весь трафик на tcp порты 80, 443 и 8080-8090 включительно. Указывать множество портов необходимо в числовом формате, список портов не должно содержать пробелов и должны изменяться потом тем же списком. Например, в приведенном выше примере вы не можете позже удалить только ’443’ порт. Не возможно задать более, чем 15 портов (ranges count as 2 ports, so the port count in the above example is 4).
ufw поддерживает ограничение соединений(rate limit), которое может быть полезно для защиты от атак "в лоб" (brute-force). ufw будет запрещать соединения с IP адресов которые пытаются установить более 6 соединений в течении 30 секунд. См. http://www.debian-administration.org/articles/187 Типичное использование:
ufw limit ssh/tcp
Иногда бывает полезно отказать в соединении с сообщением об этом другой стороне вместо того, чтобы просто игнорировать этот трафик. В данном случае, используется парамет reject вместо deny. Например:
ufw reject auth
По умолчанию, ufw применяет правила ко всем доступным сетевым интерфейсам. Для ограничения этого поведения, указывается DIRECTION on INTERFACE, где DIRECTION принимает значение in или out (псевдонимы интерфейсов не поддерживаются). Например, для разрешения всех входящих http соединений на сетевой интерфейс eth0, используется правило:
ufw allow in on eth0 to any port 80 proto tcp
Для удаления правила, просто укажите префикс delete перед созданным ранее правилом. Например, если ранее было добавлено правило :
ufw deny 80/tcp
то его удаление выполняется командой:
ufw delete deny 80/tcp
Вы можете также ссылаться на правило по его номеру NUM, который отображается в выводе команды status. Например, если для удаления правило с номером ’3’, используйте команду:
ufw delete 3
Если у вас включена поддержка IPv6 и удаляется правило с сылкой по номеру, которое обрабатывает IPv4 и IPv6 (например ’ufw allow 22/tcp’),то будет удалено только правило с данным номером. Чтобы удалить оба правила одной командой, необходимо использовать префикс delete перед добавленым правилом (ufw delete allow 22/tcp) .
Для вставки правила, укажите номер правила перед которым вы хотите его вставить. Например, если у вас имеется четыре правила, и вы хотите вставить новое правило в список правил под третьим номером:
ufw insert 3 deny to any port 22 from 10.0.0.135 proto tcp
Для получения пронумерованного списка правил, используйте команду:
ufw status numbered
ufw обеспечивает журналирование работы правил. По умолчанию, если правило пакет соответствует правилу журналирование не выполняется. Указание параметра log в добавляемом правиле позволит вам регистрировать в журнале пакеты обрабатываемые этим правилом. Например, для разрешения с ведением протокола журналирования ssh соединений, используйте команду:
ufw allow log 22/tcp
Дополнительная информация в разделе LOGGING.
ПРИМЕРЫ
Запретить любые соединения на 53 порт:
ufw deny 53
Разрешить доступ всем на tcp порт 80:
ufw allow 80/tcp
Разрешить все соединения к хосту из сетей RFC1918:
ufw allow from 10.0.0.0/8
ufw allow from 172.16.0.0/12
ufw allow from 192.168.0.0/16
Запретить соединения на udp порт 514 с хоста с адресом 1.2.3.4:
ufw deny proto udp from 1.2.3.4 to any port 514
Разрешить доступ к хосту с адресом 1.2.3.4 на udp порт 5469 от хоста 1.2.3.5 с портов 5469:
ufw allow proto udp from 1.2.3.5 port 5469 to 1.2.3.4 port 5469
УДАЛЕННОЕ УПРАВЛЕНИЕ
When running ufw enable or starting ufw via its initscript, ufw will flush its chains. This is required so ufw can maintain a consistent state, but it may drop existing connections (eg ssh). ufw does support adding rules before enabling the firewall, so administrators can do:
ufw allow proto tcp from any to any port 22
before running ’ufw enable’. The rules will still be flushed, but the ssh port will be open after enabling the firewall. Please note that once ufw is ’enabled’, ufw will not flush the chains when adding or removing rules (but will when modifying a rule or changing the default policy). By default, ufw will prompt when enabling the firewall while running under ssh. This can be disabled by using ’ufw --force enable’.
ИНТЕГРАЦИЯ В ПРИЛОЖЕНИЯ (APPLICATION INTEGRATION)
ufw supports application integration by reading profiles located in /etc/ufw/applications.d. To list the names of application profiles known to ufw, use:
ufw app list
Users can specify one of the applications names when adding rules. For example, when using the simple syntax, users can use:
ufw allow
Or for the extended syntax:
ufw allow from 192.168.0.0/16 to any app
You should not specify the protocol with either syntax, and with the extended syntax, use app in place of the port clause.
Details on the firewall profile for a given application can be seen with:
ufw app info
where ’
After creating or editing an application profile, user’s can run:
This command will automatically update the firewall with updated
profile information. If specify ’all’ for name, then all the profiles
will be updated. To update a profile and add a new rule to the
firewall automatically, user’s can run:
The behavior of the update --add-new command can be configured using:
The default application policy is skip, which means that the update
--add-new command will do nothing. Users may also specify a policy of
allow or deny so the update --add-new command may automatically update
the firewall. WARNING: it may be a security to risk to use a default
allow policy for applications profiles. Carefully consider the security
ramifications before using a default allow policy.
ЖУРНАЛИРОВАНИЕ (LOGGING)
ufw поддерживает несколько степеней детализации журналирования. По умолчанию ufw уровень журналирования
установлен в ’low’. Пользователи могут установить уровень детализации командой:
где LEVEL может принимать значения ’off’, ’low’, ’medium’, ’high’ и 'full':
off журналирование отключено
low регистрируются все блокируемые пакеты не соответствующие политике по умолчанию (включая
rate limiting), as well as packets matching logged rules
medium как и low, плюс все разрешенные пакеты не соответствующие политике по умолчанию,
все INVALID пакеты и все новые соединения. All
logging is done with rate limiting.
high как и medium (without rate limiting), плюс все пакеты с
rate limiting
full как и high без rate limiting
Уровень детализации журналов выше medium генерируют большое количество сообщений и могут быстро заполнить
ваш диск. Loglevel medium may generate a lot of
logging output on a busy system.
В случае, если журналирование было отключено, то при его включении с опциией ’on’, включает журналирование уровня ’low’.
СООБЩЕНИЯ (REPORTS)
The following reports are supported. Each is based on the live system
and with the exception of the listening report, is in raw iptables
format:
The raw report shows the complete firewall, while the others show a
subset of what is in the raw report.
The listening report will display the ports on the live system in the
listening state for tcp and the open state for udp, along with the
address of the interface and the executable listening on the port. An
’*’ is used in place of the address of the interface when the
executable is bound to all interfaces on that port. Following this
information is a list of rules which may affect connections on this
port. The rules are listed in the order they are evaluated by the
kernel, and the first match wins.
ПРИМЕЧАНИЯ
On installation, ufw is disabled with a default incoming policy of deny
and a default outgoing policy of allow, with stateful tracking for NEW
connections. Having a default policy of allow without stateful tracking
can be achieved by using ACCEPT_NO_TRACK instead of ACCEPT in
/etc/defaults/ufw.
Rule ordering is important and the first match wins. Therefore when
adding rules, add the more specific rules first with more general rules
later.
ufw is not intended to provide complete firewall functionality via its
command interface, but instead provides an easy way to add or remove
simple rules. It is currently mainly used for host-based firewalls.
The status command shows basic information about the state of the
firewall, as well as rules managed via the ufw command. It does not
show rules from the rules files in /etc/ufw. To see the complete state
of the firewall, users can ufw show raw. This displays the filter,
nat, mangle and raw tables using:
See the iptables and ip6tables documentation for more details.
If the default policy is set to REJECT, ufw may interfere with rules
added outside of the ufw framework. See README for details.
IPv6 is blocked by default and only IPv6 traffic on the loopback
interface is allowed. To change this behavior, set IPV6 to ’yes’ in
/etc/defaults/ufw and reload ufw. Once IPv6 is enabled, you may specify
rules in the same way as for IPv4 rules, and they will be displayed
with ufw status. Rules that match both IPv4 and IPv6 addresses apply to
both IP versions. For example, when IPv6 is enabled, the following rule
will allow access to port 22 for both IPv4 and IPv6 traffic:
IPv6 over IPv4 tunnels and 6to4 are supported by using the ’ipv6’
protocol (’41’). This protocol can only be used with the full syntax.
For example:
In addition to the command-line interface, ufw also provides a
framework which allows administrators to take full advantage of
netfilter. See the ufw-framework manual page for more information.
СМ. ТАКЖЕ
ufw-framework, iptables(8), ip6tables(8), iptables-restore(8),
ip6tables-restore(8), sysctl(8), sysctl.conf(5)
AUTHOR
ufw is Copyright 2008-2009, Canonical Ltd.
ufw and this manual page was originally written by Jamie Strandboge
ufw app update
ufw app update --add-new
ufw app default
ufw logging LEVEL
raw
builtins
before-rules
user-rules
after-rules
logging-rules
listening
iptables -n -L -v -x -t
ip6tables -n -L -v -x -t
ufw allow 22
ufw allow to 10.0.0.1 proto ipv6
ufw allow to 10.0.0.1 from 10.4.0.0/16 proto ipv6