Индекс(Главная)

8.3.1.Введение

См. также мой перевод man UFW.

Ядро linux содержит подсистему (модуль) Netfilter, которая используется для управления пакетами приходящими на или проходящими через ваш сервер. Все современные брандмауэры используют эту систему для фильтрации tcp пакетов. Эта система без интерфейса управления ей мала полезна для администратора. Для управления используется iptables. При получении пакетом вашим сервером, он передается Netfilter для принятия им решения: принять, обработать, или отбросить его на основе правил заданных с помощью iptables. Таким образом, iptables это все, что нужно для управления брандмауэром, если вы знакомы с ним, но существует множество программ для упрощения управления iptables.

8.3.2.ufw — простой в использовании брандмауэр

В Ubuntu для управления брандмауэром по умолчанию используется ufw. Он разработан для упрощения управления iptables, ufw предоставляет простой механизм для создания правил фильтрации пакетов IPv4 или Ipv6.

ufw после установки отключен. Выдержка из ufw «man page»:

« 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.

(UFW не намерен предоставить полную функциональность брандмауэра через интерфейс командной строки, но вместо этого предоставляет простой способ добавлять или удалять простые правила. В настоящее время он используется как основа управлением брандмауэра)»

Ниже приведены примеры использования ufw:

Если порт который вы хотите открыть или закрыть определен в файле /etc/services, вы можете указывать текстовое имя порта вместо его номера. Например, в приведенных выше примерах, замените 22 на ssh.

Здесь мы привели поверхностное описание использования ufw. Обратитесь к man ufw чтобы получить более подробную информацию.

8.3.2.1. ufw Application Integration

Порты которые необходимо открыть для работы с некоторыми приложениями могут храниться в профилях ufw , в которых перечислены порты необходимые для функционирования программы.. Профили хранятся /etc/ufw/applications.d, их можно изменить если порты по умолчания были изменены.

8.3.3.Masquerading (см. Настройка простой сети в virtualBox )

The purpose of IP Masquerading is to allow machines with private, non-routable IP addresses on your network to access the Internet through the machine doing the masquerading. Traffic from your private network destined for the Internet must be manipulated for replies to be routable back to the machine that made the request. To do this, the kernel must modify the source IP address of each packet so that replies will be routed back to it, rather than to the private IP address that made the request, which is impossible over the Internet. Linux uses Connection Tracking (conntrack) to keep track of which connections belong to which machines and reroute each return packet accordingly. Traffic leaving your private network is thus "masqueraded" as having originated from your Ubuntu gateway machine. This process is referred to in Microsoft documentation as Internet Connection Sharing. 

8.3.3.1. ufw Masquerading 

Включить маскарадинг можно используя правила ufw. Это возможно благодаря тому что iptables является back-end для ufw, конфигурационные правила которого расположены в файлах  /etc/ufw/*.rules. Эти файлы содержат настройки для правил iptables, и могут содержать правила для настройки сетевых шлюзов и мостов. 

Файлы разделяются на два вида, правила которые выполняются до и после выполнения команд ufw.

Во первых , необходимо включить пересылку пакетов. Для этого убедитесь, что в файле /etc/default/ufw параметру DEFAULT_FORWARD_POLICY присвоено значение “ACCEPT”:

DEFAULT_FORWARD_POLICY="ACCEPT"

В файле /etc/ufw/sysctl.conf уберите комментарий из строчки:

net.ipv4.ip_forward=1

net.ipv6.conf.default.forwarding=1

Далее необходимо в начало файла (после начальных коментариев) /etc/ufw/before.rules добавить правила:

#nat Table rules

*nat

:POSTROUTING ACCEPT [0:0]

#Forwardtraffic from eth1 through eth0.

-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

#don't delete the 'COMMIT' line or these nat table rules won't be processed

COMMIT

Учтите, что после изменений правил в фалах /etc/ufw, вы должны добавлять команду commit

# don't delete the 'COMMIT' line or these rules won't be processed

COMMIT

После изменений перезапустим ufw:

sudo ufw disable && sudo ufw enable

 
Маскарадинг должен включиться. Вы также можете добавлять любые дополнительные FORWARD правила в  /etc/ufw/before.rules. It is recommended that these additional rules be added to the ufw-before-forward chain.

8.3.3.2. iptables Masquerading

Стандартный для linux метод, включения masquerading через iptables

Как и для ufw, первый шаг включение пакетной пересылки. В файле /etc/sysctl.conf расскомментируйте строки:

net.ipv4.ip_forward=1

net.ipv6.conf.default.forwarding=1

затем , выполните команду sysctl для принятия изменений:

sudo sysctl -p

sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/16 -o eht0 -j MASQUERADE

sudo iptables -A FORWARD -s 192.168.1.0/16 -o eth0 -j ACCEPT

sudo iptables -A FORWARD -d 192.168.1.0/16 -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT

Чтобы все это работало после перезагрузки необходимо добавить эти команды в файл /etc/rc.local. Настройки хорошо описаны в различных источниках о linux, поэтому не буду их комментировать.

8.3.4.Logs

Журналы брандмауэра имеют важное значение для обнаружения признаков «взлома», ошибок в написании правил и обнаружении необычного поведения вашей сети.. Вам необходимо создать правила, чтобы эти события попадали в журнал, так же рекомендуется отслеживать в логах поведение создаваемых новых правил, а также рекомендуется протоколировать любые правила которые решают судьбу пакета (такие как ACCEPT, DROP, или REJECT).

Если вы используете ufw, вы должны включить протоколирование командой:

sudo ufw logging on

Для выключения протоколирования, просто замените on на off в этой команде.

При использовании iptables:

sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

При получении пакета через порт 80 (HTTP) от локальной машины, будет создана запись в журнале событий, похожая на эту:

[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0

Данная запись появится в журналах /var/log/messages, /var/log/syslog, и /var/log/kern.log. Это поведение можно изменить отредактировав файл настроек /etc/syslog.conf или установив и настроить демон ulogd и использовать ULOG вместо обычных журналов LOG. Демон ulogd является сервером пользовательского уровня, который «слушает» сообщения протоколирования событий получаемых от ядра, и может сохранять их в любой файл, или в базы данных PostgreSQL или MySQL . Для более легкого анализа содержимого журналов используйте инструмменты анализа, такие как fwanalog, fwlogwatch, или lire.

8.3.5. Другие инструменты

Есть множество инструментов помогающие вам в настройке брандмауэра без знания iptables. C GUI интерфейсом:

Если вы предпочитаете инструменты командной строки с текстовыми конфигурационными файлами:

8.3.6.Ссылки

Индекс(Главная)

Сайт создан в системе uCoz