IT решения от SiteTo
Четверг, 07.11.2024, 06:58
» Меню сайта
» Форма входа
» Категории раздела
mysql, apache, php [1]
Программы и демоны [1]
» Поиск
» Реклама
Главная » Статьи » *nix » Программы и демоны

Настройка firewall ufw

См. также мой перевод 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:

  • Вопервых, необходимо включить ufw. Наберите в командной строке: sudo ufw enable

  • Открыть порт (для примера ssh ): sudo ufw allow 22

  • Аналогично, чтобы закрыть доступ к порту: sudo ufw deny 22

  • Для удаления правила, используйте правило delete: sudo ufw delete deny 22

  • Возможно разрешить доступ для определенных хостов или сетей. Следующий пример показывает как разрешить доступ хосту с ip адресом 192.168.0.2 на хост с любым ip по протоколу ssh: sudo ufw allow proto tcp from 192.168.0.2 to any port 22. Если заменить 192.168.0.2 на 192.168.0.0/24 то мы разрешим протокол ssh для любого хоста этой локальной сети.

  • При указании опции the --dry-run будет выводить результат применения правила, но применяться они не будут. Например, при вводе команды : sudo ufw --dry-run allow http будет показана цепочка применяемых правил для открытия порта HTTP.

  • ufw можно отключить: sudo ufw disable

  • Для просмотра состояния брандмауэра, наберите: sudo ufw status

  • Для вывода дополнительной информации о состоянии используйте: sudo ufw status verbose

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

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

8.3.2.1. ufw Application Integration

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

  • Чтобы посмотреть профили для каких приложений установлены, наберите в командной строке: sudo ufw app list

  • Использование правил с профилями аналогично использованию правил открытия портов: sudo ufw allow Samba

  • Также доступен расширенный синтаксис: ufw allow from 192.168.0.0/24 to any app Samba Замените Samba и 192.168.0.0/24 профилем нужного вам приложения и адресом вашей сети. Нет необходимости указывать протокол для приложения, так как эта информация содержится в профиле ufw, имя приложения(имя профиля) заменяет номер порта при вводе правил.

  • Для просмотра детальной информации о портах, протоколах и т.п. - которые описаны в профиле, наберите: sudo ufw info Samba Не все программы которые требуют для своей работы открытия портов поставляются с профилями ufw, но если у вас есть собственные профили для ваших программ и вы хотите включить их официальные пакеты, то пожалуйста отпишитесь в соответствующий проект на Launchpad.

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 интерфейсом:

  • Довольно популярный и простой в использовании Firestarter

  • Очень мощный fwbuilder, будет напоминать системы администраторам работающих с другими комерческими системами , например как Checkpoint FireWall-1.

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

  • Shorewall очень мощное решение, чтобы помочь вам настроить брандмауэр для любой сети.

  • ipkungfu работающий брандмауэр "из коробки", также позволяющий вам с легкостью создать сложные правила, отредактировав простой, хорошо документированные конфигурационные файлы.

  • Fireflier предназначен для desktop применения . Он состоит из сервера (fireflier-сервер), и выбранного вами клиента GUI (GTK или QT), и напоминает другие популярные брандмауэры для Windows

8.3.6.Ссылки

  • Ubuntu Firewall вики-страница содержит информацию о развитии UFW. 

  • Кроме того, руководство UFW  содержит очень полезную информация: man UFW

  • См. пакетной фильтрации-HOWTO для более подробной информации об использовании iptables. 

  • В NAT-HOWTO содержит более подробную информацию о маскарадинге.



Источник: http://mirspo.narod.ru/firewall.html
Категория: Программы и демоны | Добавил: t0nick (20.12.2012)
Просмотров: 3526 | Теги: брэндмауэр, firewall, ufw | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
» Реклама
» Мото ремонт
» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright MyCorp © 2024Хостинг от uCoz