<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ChooseLinux &#187; ufw</title>
	<atom:link href="http://chooselinux.org.ua/tag/ufw/feed/" rel="self" type="application/rss+xml" />
	<link>http://chooselinux.org.ua</link>
	<description>Choose Life. Choose a job. Choose a career. Choose a family. Choose linux...</description>
	<lastBuildDate>Fri, 03 Feb 2012 05:03:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Настройка ufw в Ubuntu</title>
		<link>http://chooselinux.org.ua/nastrojka-ufw-v-ubuntu/</link>
		<comments>http://chooselinux.org.ua/nastrojka-ufw-v-ubuntu/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 15:09:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Сервер]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ufw]]></category>

		<guid isPermaLink="false">http://chooselinux.org.ua/?p=254</guid>
		<description><![CDATA[Начиная с версии Ubuntu 8.04 в ее состав по умолчанию включена новая упрощенная оболочка для работы с файрволом – ufw (Uncomplicated firewall – «незамысловатый» брэндмауер). Как известно Linux по умолчанию имеет очень мощный встроенный сетевой фильтр – netfilter. Стандартной утилитой для управления настройками netfilter является утилита iptables. Ufw создан для того что бы сделать более [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://chooselinux.org.ua/wp-content/uploads/2010/01/firewall.jpg" alt="ubuntu ufw настройка" title="ubuntu ufw настройка" width="400" height="291" class="aligncenter size-full wp-image-261" /><br />
Начиная с версии Ubuntu 8.04 в ее состав по умолчанию включена новая упрощенная оболочка для работы с файрволом – ufw (Uncomplicated firewall – «незамысловатый» брэндмауер). Как известно Linux по умолчанию имеет очень мощный встроенный сетевой фильтр – netfilter. Стандартной утилитой для управления настройками netfilter является утилита iptables. Ufw создан для того что бы сделать более простым настройку netfilter-а. По сути ufw – это скрипт, который получает команды в одном формате и преобразует их в формат iptables.<br />
<span id="more-254"></span><br />
Так как ufw является упрощенной утилитой настройки файрвола, он так же является и более ограниченным в своих возможностях по сравнения с iptables. Практика показывает что большинству пользователей вполне достаточно функционала который предоставляет ufw. В то же время, в случае необходимости всегда можно дописать нужное правило с помощью iptables.</p>
<p><strong>Функционал ufw</strong><br />
Основными функциями файрвола ufw является:<br />
1.	Работа в одном из двух режимов: разрешено все кроме того что описано правилами, запрещено все, кроме описанного правилами.<br />
2.	Создание правил для фильтрации пакетов с действиями allow, deny, reject<br />
3.	Создание правил с учетом адреса и порта получателя и отправителя, используемого протокола<br />
4.	Логирование пакетов подпадающих под правило<br />
5.	Блокировка частых неправильных попыток авторизации по ssh<br />
6.	Настраиваемые профили для приложений</p>
<p><strong>Запуск ufw</strong><br />
Ufw может быть включен или выключен системным администратором сервера, для этого используется команад:<br />
<code># ufw enable</code><br />
Межсетевой экран активен и будет запущен при запуске системы<br />
<code># ufw disable</code><br />
Файрвол остановлен и деактивирован при загрузке</p>
<p>Просматривать состояние можно с помощью команды:<br />
<code># ufw status [numbered]<br />
Статус: активно</code></p>
<p>Параметр numbered может быть использован для отображения правил файрвола с соответствующей нумерацией.</p>
<p>Изменение политики по умолчания:<br />
<code># ufw default allow [in|out]<br />
# ufw default deny [in|out]<br />
# ufw default reject [in|out]</code></p>
<p>Где allow подразумевает что все пакеты будут пропущены, кроме тех, для которых есть запрещающее правило: deny – все пакеты будут заблокированы, кроме тех, для которых есть разрешающие правила; reject – все пакеты будут заблокированы с соответствующим уведомлением подключающуюся сторону.<br />
Параметры in|out указывают для какого направления мы хотим применять политику, для входящих или исходящих пакетов соответственно.</p>
<p>Управление правилами осуществляется с помощью команд allow, deny, reject, delete, insert.<br />
allow – добавить разрешающее правило<br />
deny – добавить запрещающее правило (файрвол не предпринимает действий при попадании в это правило)<br />
reject – добавить запрещающее правило (файрвол даст знать подключающемуся что этот порт закрыт)<br />
limit – добавляет ограничивающее правило для указанного порта. В случае если с одного и того же адреса в течении 30 секунд будет произведено 6 и более неуспешных попыток авторизации в службу удаленного доступа ssh, ufw заблокирует удаленный адрес.<br />
delete – удалить добавленное ранее правило<br />
insert – вставить правило в определенную позицию в цепочке</p>
<p><strong>Построение правил файрвола</strong><br />
Конструкция построения правил<br />
<code>ufw allow|deny|reject|limit [in|out on INTERFACE] [log|log-all] [proto protocol] [from ADDRESS [port PORT]] [to ADDRESS [port PORT]]</code><br />
Подробнее о параметрах:<br />
allow|deny|reject|limit – указываем что будет делать это правило (см. описание выше).<br />
[in|out on INTERFACE] – указываем будет это правило относится к входящему трафику (in) или исходящему (out) и хотим ли мы ограничить данное правило отдельным сетевым интерфейсом (к примеру eth0).<br />
[log|log-all] – при желании можно логировать события которые подпадают под правило. По умолчанию лог пишется в /var/log/syslog. При использовании опции log – в файл будут записаны лишь пакеты участвующие при установке соединения с сервером. Используя опцию log-all в лог файл будут записаны все пакеты подпадающие под правило.<br />
[proto protocol] – в правиле можно указать для какого протокола оно действует: tcp или udp.<br />
[from ADDRESS [port PORT]] – адрес и порт источника пакета<br />
[to ADDRESS [port PORT]] – адрес и порт получателя пакета</p>
<p><strong>Профили приложений</strong><br />
Ufw позволяет создавать профили приложений. в которых можно указать все порты которые используются и удобно добавлять их в правила. Так к примеру можно создать профиль для веб-сервера Apache, указав что слушает он 80 и 443 порты по протоколу tcp.<br />
Профили приложений являются текстовыми файлами и могут быть отредактированы любым текстовым редактором. все файлы хранятся в директории /etc/ufw/applications.d:<br />
<code>root@server:/etc/ufw/applications.d# pwd<br />
/etc/ufw/applications.d<br />
root@server:/etc/ufw/applications.d# ls -l<br />
итого 12<br />
-rw-r--r-- 1 root root 406 2009-11-13 00:52 apache2.2-common<br />
-rw-r--r-- 1 root root 145 2009-10-22 22:50 openssh-server<br />
-rw-r--r-- 1 root root 241 2009-09-22 16:52 postfix<br />
</code><br />
Рассмотрим пример профиля приложения apache2.2-common:<br />
<code>[Apache]<br />
title=Web Server<br />
description=Apache v2 is the next generation of the omnipresent Apache web server.<br />
ports=80/tcp<br />
[Apache Secure]<br />
title=Web Server (HTTPS)<br />
description=Apache v2 is the next generation of the omnipresent Apache web server.<br />
ports=443/tcp<br />
[Apache Full]<br />
title=Web Server (HTTP,HTTPS)<br />
description=Apache v2 is the next generation of the omnipresent Apache web server.<br />
ports=80,443/tcp</code><br />
В одном файле может находится несколько профилей. В данном примере 3: Apache, Apache Secure, Apache Full. Структура записей проста: сначала имя профиля в квадратных скобка ([Apache Full]), далее развернутое наименования приложения, далее описание приложения и список портов с указанием протокола которые задействованы в профиле (80,443/tcp).</p>
<p>Вывести список профилей можно с помощью команды:<br />
<code># ufw app list<br />
Доступные приложения:<br />
Apache<br />
Apache Full<br />
Apache Secure<br />
OpenSSH<br />
Postfix<br />
Postfix Submission</code></p>
<p>Детальную информацию по профилю можно просмотреть с помощью команды:<br />
<code># ufw app info OpenSSH<br />
Профиль: OpenSSH<br />
Название: Secure shell server, an rshd replacement<br />
Описание: OpenSSH is a free implementation of the Secure Shell<br />
protocol.<br />
Порт:<br />
22/tcp</code><br />
После добавления или изменения профиля приложения (в файле) необходимо дать знать файрволу о новом профиле:<br />
<code># ufw app update OpenSSH</code></p>
<p>Для того что б новый профиль сразу вступил в силу, необходимо добавить опцию &#8211;add-new:</p>
<p><code># ufw app update --add-new OpenSSH</code></p>
<p>По умолчанию добавленные с помощью &#8211;add-new профили не будут обрабатываться файрволом. Рекомендуется вначале задать политику для новых профилей приложений:<br />
ufw app default allow|deny<br />
После чего все новые профили приложений будут добавляться в цепочку файрвола с указанной политикой.</p>
<p>Использовать профили приложений можно также при создании обычных правил, например:<br />
<code># ufw allow OpenSSH</code></p>
<p><strong>Настройка профиля безопасности</strong><br />
1. Ограничение входящих подключений к FTP и Веб серверу<br />
Пример настройки файрвола для ситуации, когда необходимо заблокировать доступ к FTP и Веб серверу с адреса 192.168.100.100. В примере 192.168.1.11 &#8211; сервер на котором настраивается файрвол:</p>
<p><code>root@server:/etc/ufw/applications.d# ufw deny proto tcp from 192.168.100.100 to 192.168.1.11 port 21,80<br />
Правило добавлено<br />
root@server:/etc/ufw/applications.d# ufw status<br />
Статус: активно<br />
До                       Действие            От<br />
----                       --------------------<br />
192.168.1.11 21,80/tcp     DENY        192.168.100.100</code></p>
<p>Теперь при попытках подключения с хоста 192.168.100.100 к 21 или 80 порту хоста 192.168.1.11 клиент будет висеть пока не отвалится по таймауту.</p>
<p>Удалим это правило и добавить аналогичное но с действием reject:<br />
<code># ufw delete deny proto tcp from 192.168.100.100 to 192.168.1.11 port 21,80<br />
# ufw reject proto tcp from 192.168.100.100 to 192.168.1.11 port 21,80</code></p>
<p>Теперь при попытке подключения к 21 порту сервера удаленный клиент получит ответ Connection refused:<br />
<code>$ telnet 192.168.1.11 21<br />
Trying 192.168.1.11...<br />
telnet: Unable to connect to remote host: Connection refused<br />
</code><br />
Просканируем порты сервера:<br />
<code>:~# nmap -sT 192.168.1.100<br />
Starting Nmap 5.00 ( http://nmap.org ) at 2009-12-28 22:56 EET<br />
Interesting ports on 192.168.1.100:<br />
Not shown: 992 closed ports<br />
PORT     STATE    SERVICE<br />
21/tcp   filtered ftp<br />
22/tcp   open	ssh<br />
80/tcp   filtered http<br />
139/tcp  open     netbios-ssn<br />
445/tcp  open     microsoft-ds<br />
2323/tcp open     unknown<br />
3128/tcp open     squid-http<br />
5900/tcp open     vnc<br />
MAC Address: 00:18:F3:67:85:9E (Asustek Computer)<br />
Nmap done: 1 IP address (1 host up) scanned in 17.52 seconds</code></p>
<p>2. Ограничение исходящих подключений к указанному серверу<br />
Цель &#8211; запретить исходящие подключения с сервера к адресу 195.214.195.105:</p>
<p><code># ufw deny proto tcp to 195.214.195.105</code></p>
<p>3. Ограничение попыток авторизации  по ssh<br />
<code># ufw limit 22</code></p>
<p>Произведем несколько попыток подключения к 22 порту сервера с введением заведомо неправильного пароля:<br />
<code>user@remote:~$ ssh 192.168.1.100<br />
user@192.168.1.100's password:<br />
Permission denied, please try again.<br />
user@192.168.1.100's password:<br />
user@remote:~$ ssh 192.168.1.100<br />
user@192.168.1.100's password:<br />
Permission denied, please try again.<br />
user@192.168.1.100's password:<br />
user@remote:~$ ssh 192.168.1.100<br />
user@192.168.1.100's password:<br />
Permission denied, please try again.<br />
user@192.168.1.100's password:<br />
user@remote:~$<br />
user@remote:~$ ssh 192.168.1.100<br />
ssh: connect to host 192.168.1.100 port 22: Connection refused<br />
user@remote:~$ ssh 192.168.1.100<br />
ssh: connect to host 192.168.1.100 port 22: Connection refused</code></p>
<p>Как видим после нескольких неудачных попыток файрвол блокирует IP адрес с которого исходят попытки подключения и в логах появится соответсвтующяя запись:<br />
<code>Dec 28 22:59:13 fortress kernel: [273659.578463] [UFW LIMIT BLOCK] IN=eth0 OUT= MAC=00:18:f3:67:85:9e:00:26:5e:46:40:86:08:00 SRC=192.168.1.156 DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=3150 DF PROTO=TCP SPT=33783 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0<br />
Dec 28 22:59:15 fortress kernel: [273661.231264] [UFW LIMIT BLOCK] IN=eth0 OUT= MAC=00:18:f3:67:85:9e:00:26:5e:46:40:86:08:00 SRC=192.168.1.156 DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=763 DF PROTO=TCP SPT=33784 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0</code></p>
<p>4. Логирование пакетов<br />
<code># ufw allow log 22</code></p>
<p>С помощью этого правила файрвол будет логировать пакеты установки соединиения по указанному 22 порту. В логах появятся следующие записи:<br />
<code>Dec 28 23:04:18 fortress kernel: [273964.364715] [UFW ALLOW] IN=eth0 OUT= MAC=00:18:f3:67:85:9e:00:26:5e:46:40:86:08:00 SRC=192.168.1.156 DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=6564 DF PROTO=TCP SPT=58069 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0</code></p>
]]></content:encoded>
			<wfw:commentRss>http://chooselinux.org.ua/nastrojka-ufw-v-ubuntu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
