Настройка файрвола на Ubuntu

Содержание

Как настроить брандмауэр UFW на Ubuntu 18.04

Настройка файрвола на Ubuntu

В этой статье я покажу вам, как настроить брандмауэр UFW на Ubuntu 18.04.

В Ubuntu брандмауэр по умолчанию — это UFW, для Uncomplicated FireWall.

Он был с момента выпуска Ubuntu 18.04 и был создан для упрощения конфигурации iptables, которая была довольно сложной.

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

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

Брандмауэр может быть аппаратным или программным обеспечением.

Аппаратный брандмауэр представляет собой автономную систему брандмауэра, которая помещается в сеть, чтобы добавить защитный слой, контролируя поток трафика в сеть и из нее, а также блокируя нежелательные сайты от доступа пользователей.

Программный брандмауэр встроен в операционные системы, такие как Linux и Windows, и помогает защитить вашу систему от внешних атак.

Установка UFW

По умолчанию Ubuntu 18.04 поставляется с установленной ufw.

Однако для более ранних систем вам нужно будет выполнить команду ниже

# apt-get install ufw

Чтобы проверить, запущен ли UFW

# systemctl status ufw 

Если он работает, вы должны получить результат Как ниже

 ● ufw.service – Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab Active: active (exited) since Tue 2018-04-10 22:03:30 UTC; 4min 1s ago Process: 376 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU Main PID: 376 (code=exited, status=0/SUCCESS) Tasks: 0 Memory: 0B CPU: 0 CGroup: /system.slice/ufw.service

Чтобы проверить, активен ли он или неактивен

# ufw status

Если он неактивен, вы получите результат ниже

Status: inactive

Чтобы включить UFW с использованием стандартного набора правил:

# ufw enable

Чтобы отключить межсетевой экран:

# ufw disable

Настройка стандартных правил UFW

для настройки правил по умолчанию, которые разрешают все исходящие протоколы, регистрируются как root и выполняются:

# ufw default allow outgoing

Вывод:

Default outgoing policy changed to 'allow' (be sure to update your rules accordingly)

Чтобы запретить все входящие соединения, запустите:

# ufw default deny incoming

Вывод

Default outgoing policy changed to 'deny' (be sure to update your rules accordingly)

Вышеупомянутые команды позволят всем исходящим соединениям и запрещают или блокируют все входящие соединения.

На этом этапе вы можете включить брандмауэр, однако прежде, чем вы это сделаете, сначала разрешите ssh.

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

Чтобы разрешить ssh запустите

# ufw allow 22/tcp

Доступ к ssh также может быть разрешен по имени службы

# ufw allow ssh

Если вы хотите удалить запуск правила:

# ufw delete allow 22/ssh

Отказаться от службы по имени:

# ufw deny service-name

Например

# ufw deny ssh

Чтобы просмотреть все службы, которые могут быть разрешены или запрещены в системе, проверьте файл /etc/services.

# cat /etc/services | less

Пример вывода

ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname tacacs 49/tcp # Login Host Protocol (TACACS) tacacs 49/udp re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp domain 53/tcp # Domain Name Server domain 53/udp

Запуск брандмауэра ufw

Чтобы активировать журнал брандмауэра в качестве пользователя root выполните следующую команду:

# ufw enable

Возможно, вам будет выдано следующее предупреждение:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y

Если вы выберете «y», вы получите результат ниже

Firewall is active and enabled on system startup

Брандмауэр теперь активен, и он запускается при каждой загрузке.

Мы снова рассмотрим правила брандмауэра:

# ufw status

В выводе теперь будет отображаться состояние брандмауэра плюс разрешенные службы / порты

Вывод

ufw status active Status: active To Action From — —— —- 22/tcp ALLOW Anywhere 22 ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 22 (v6) ALLOW Anywhere (v6) х

Источник: https://itsecforu.ru/2018/05/14/%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%B1%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D1%8D%D1%80-ufw-%D0%BD%D0%B0-ubuntu-18-04/

Настройка файрвола на Ubuntu

Настройка файрвола на Ubuntu

В независимости от операционной системы файрвол — необходимый инструмент для защиты персонального компьютера от несанкционированных сообщений с хостами или сетями. Во вступлении лишь обозначим проблему, а «почему, зачем и как» — далее. В этой статье мы разберёмся, как настроить файрвол на Ubuntu.

Настройка файрвола на Ubuntu

Чтобы всё было нам понятно, разберёмся сначала, что такое Ubuntu и, собственно, сам файрвол, каким он бывает.

Что такое файрвол и Ubuntu

Первое, что необходимо знать, если вы новичок — Ubuntu это операционная система из семейства Linux, то есть перед нами Linux со всеми вытекающими. Интерфейс, файловая система и всё остальное — родное, с некоторыми изменениями, из-за них Ubuntu и выделяют в отдельную операционную систему, которая входит в четвёрку по популярности среди пользователей семейства.

Файрвол (firewall) — огненная стена, грубо говоря, экран, который контролирует все входящие и исходящие трафики и позволяет контролировать их: разрешать или запрещать.

Линукс во многих аспектах намного безопаснее той же Windows, и вирусов нет, и файловая система круче (не фрагментируется), но это не значит, что можно пренебрегать безопасностью и игнорировать прекрасную возможность обезопасить свои данные файрволом.

В разных версиях Linux с файрволом дела обстоят по-разному, в нашем случае предусмотрен стандартный простой ufw, настройка которого в Ubuntu происходит с помощью командной строки.

Это долго, сложно и неудобно, тем более при копировании команд некоторые символы могут замениться на альтернативные, и придётся доводить команды вручную или, вообще, набирать их целиком.

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

В стоковой Линукс предустановлен очень мощный iptables, разобраться с которым неопытному пользователю крайне сложно, поэтому Gufw — настоящий спасательный круг. Давайте разбираться, как его установить и настроить.

Установка Gufw

Изначально в системе не установлен Gufw, поэтому нам необходимо его установить, прописав в командной строке:

$ sudo apt install gufw

Запускаем программу, вводим пароль, тот самый, который вы вводите при входе в систему.

Вводим пароль

Файрвол нужно добавить в автозагрузку, чтобы все его конфигурации оставались в неизменном виде, вводим в командной строке:

$ sudo ufw enable

Итак, перед нами окно программы. Мы находимся на вкладке с полезной информацией, можем прочитать, другие вкладки мы тоже задействуем, но чуть позже. Первым делом нам нужно активировать программу, для этого щёлкаем на переключатель, все доступные функции активируются и становятся доступны для редактирования и изменений.

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

Можно запретить например входящий и исходящий трафик

ВАЖНО. Запрет и входящего и исходящего трафика блокирует все подключения, доступа в интернет просто не будет. Но так можно делать, если потом добавить специальные правила доверенным процессам и программам.

Перейдя в «Правка», «Параметры» можно изменить общие настройки приложения и создать свои профили, для которых впоследствии создать отдельные правила.

Можно запретить например входящий трафик и разрешить исходящий

Настройка Gufw

Приступаем к настройке Ubuntu firewall. На главном окне программы переходим во вкладку «Правила», там, собственно, мы их и будем удалять.

Снизу у нас есть три кнопки + — и ≡, означают они соответственно «Добавить правило», «Удалить правило» и «Изменить правило».

Давайте попробуем запретить и входящие и исходящие подключения, затем создать исключающее правило для DNS. Проверяем трафик с помощью команды в командной строке:

$ ping ya.ru

Убеждаемся, что доступа нет и действуем дальше.

Жмём «Добавить правило», нам нужно выбрать политику, наш вариант «Разрешить». Можно также выбрать одну сторону или обе, для которых будет выполняться правило. Указываем приложение — DNS, поиск можно разбивать на категории, чтобы найти было легче. Жмём кнопку «Добавить» и правило создано. Проверяем изменения в командной строке с помощью той же фразы.

Добавление правила сетевого экрана

Мы получили АйПи, но ICMP всё ещё запрещён, какой вывод? Такой способ контроля приложений не универсален и не затрагивает все порты. Специально для нас в окне добавления правил существуют дополнительные вкладки «Обычные» и «Расширенные».

На вкладке «Обычные» мы не можем выбрать программу, но зато можем указать порт и протокол. А в «Расширенных» есть возможность контролировать исходящий и исходящий IP.

В самом общем случае нам необходимо разрешить работу наших браузеров, а для этого необходимо открыть специальные порты. Но мы не будем заморачиваться и воспользуемся встроенными возможностями и перейдём на вкладку «Предустановленные», где создадим разрешающее правило для HTTP и HTTPS. После таких манипуляций все браузеры в системы смогут работать.

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

Дополнительные функции

Быстренько пробежимся по двум оставшимся вкладкам на главном окне программы.

Вкладка «Отчёт» предоставляет нам информацию по программам и процессам, которые хотят получить доступ. Основываясь на этой информации, мы можем выявить нежелательные приложения и запретить им доступ, очень удобный инструмент.

Отчет в Gufw

«Журнал» позволяет нам отслеживать любые изменения в настройках программы. Создали правило — в журнале прописалась строчка, удалили правило — то же самое.

Отслеживание работы программы

Заключение

Настройка файрвола Ubuntu сводится к созданию и удалению правил, на этом строится принцип работы защиты.

Как мы убедились, ничего сложного или сверхъестественного в установке и настройке нет, всё довольно просто и понятно.

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

Источник: https://nastroyvse.ru/opersys/lix/nastrojka-fajrvola-na-ubuntu.html

Настройка UFW Ubuntu

Настройка файрвола на Ubuntu

Во всех дистрибутивах Linux для обеспечения сетевой безопасности и изоляции внутренних процессов от внешней среды используется брандмауэр iptables. Но его настройка может показаться очень сложной для новых пользователей, поэтому многие дистрибутивы создают собственные оболочки, которые упрощают процесс настройки.

В Ubuntu используется оболочка под названием UFW или  Uncomplicated FireWall. В этой статье мы разберём, как выполняется настройка UFW Ubuntu, а также как пользоваться основными возможностями этой программы.

1. Синтаксис ufw

Для управления возможностями брандмауэра используется одноимённая команда – ufw. Давайте сначала рассмотрим её опции и параметры, а потом перейдём к настройке. Синтаксис команды такой:

$ ufw опции действие параметры

Опции определяют общие настройки поведения утилиты, действие указывает, что нужно сделать, а параметры – дополнительные сведения для действия, например, IP-адрес или номер порта.

Сначала разберём опции утилиты:

  • –version – вывести версию брандмауэра;
  • –dry-run – тестовый запуск, никакие реальные действия не выполняются.

2. Команды UFW

Для выполнения действий с утилитой доступны такие команды:

  • enable – включить фаерволл и добавить его в автозагрузку;
  • disable – отключить фаерволл и удалить его из автозагрузки;
  • reload – перезагрузить файервол;
  • default – задать политику по умолчанию, доступно allow, deny и reject, а также три вида трафика – incoming, outgoing или routed;
  • logging – включить журналирование или изменить уровень подробности;
  • reset – сбросить все настройки до состояния по умолчанию;
  • status – посмотреть состояние фаервола;
  • show – посмотреть один из отчётов о работе;
  • allow – добавить разрешающее правило;
  • deny – добавить запрещающее правило;
  • reject – добавить отбрасывающее правило;
  • limit – добавить лимитирующее правило;
  • delete – удалить правило;
  • insert – вставить правило.

Это были все опции и команды, которые вы можете использовать в ufw. Как видите, их намного меньше, чем в iptables и всё выглядит намного проще, а теперь давайте рассмотрим несколько примеров настройки.

1. Как включить UFW

Сначала нужно отметить, что в серверной версии Ubuntu UFW по умолчанию включён, а в версии для рабочего стола он отключён. Поэтому сначала смотрим состояние фаервола:

sudo ufw status

Если он не включён, то его необходимо включить:

sudo ufw enable

Затем вы можете снова посмотреть состояние:

sudo ufw status

Обратите внимание, что если вы работаете по SSH, то перед тем, как включать брандмауэр, нужно добавить правило, разрешающее работу по SSH, иначе у вас не будет доступа к серверу. Подождите с включением до пункта 3.

2. Политика по умолчанию

Перед тем, как мы перейдём к добавлению правил, необходимо указать политику по умолчанию. Какие действия будут применяться к пакетам, если они не подпадают под созданные правила ufw. Все входящие пакеты будем отклонять:

sudo ufw default deny incoming

А все исходящие разрешим:

sudo ufw default allow outgoing

3. Добавление правил UFW

Чтобы создать разрешающее правило, используется команда allow. Вместо allow могут использоваться и запрещающие правила ufw – deny и reject. Они отличаются тем, что для deny компьютер отсылает отправителю пакет с уведомлением об ошибке, а для reject просто отбрасывает пакет и ничего не отсылает. Для добавления правил можно использовать простой синтаксис:

$ ufw allow имя_службы
$ ufw allow порт
$ ufw allow порт/протокол

Например, чтобы открыть порт ufw для SSH, можно добавить одно из этих правил:

sudo ufw allow OpenSSH
sudo ufw allow 22
sudo ufw allow 22/tcp

Первое и второе правила разрешают входящие и исходящие подключения к порту 22 для любого протокола, третье правило разрешает входящие и исходящие подключения для порта 22 только по протоколу tcp.

Посмотреть доступные имена приложений можно с помощью команды:

sudo ufw app list

Можно также указать направление следования трафика с помощью слов out для исходящего и in для входящего.

$ ufw allow направление порт

Например, разрешим только исходящий трафик на порт 80, а входящий запретим:

sudo ufw allow out 80/tcp
sudo ufw deny in 80/tcp

Также можно использовать более полный синтаксис добавления правил:

$ ufw allow proto протокол from ip_источника to ip_назначения port порт_назначения

В качестве ip_источника может использоваться также и адрес подсети. Например, разрешим доступ со всех IP-адресов для интерфейса eth0 по протоколу tcp к нашему IP-адресу и порту 3318:

sudo ufw allow proto tcp from 0.0.0.0/24 to 192.168.1.5 port 3318

4. Правила limit ufw

С помощью правил limit можно ограничить количество подключений к определённому порту с одного IP-адреса, это может быть полезно для защиты от атак перебора паролей. По умолчанию подключения блокируются, если пользователь пытается создать шесть и больше подключений за 30 секунд:

sudo ufw limit ssh/tcp

К сожалению, настроить время и количество запросов можно только через iptables.

5. Просмотр состояния UFW

Посмотреть состояние и действующие на данный момент правила можно командой status:

sudo ufw status

Чтобы получить более подробную информацию, используйте параметр verbose:

sudo ufw status verbose

С помощью команды show можно посмотреть разные отчеты:

  • raw – все активные правила в формате iptables;
  • builtins – правила, добавленные по умолчанию;
  • before-rules – правила, которые выполняются перед принятием пакета;
  • user-rules – правила, добавленные пользователем;
  • after-rules – правила, которые выполняются после принятия пакета;
  • logging-rules – правила логгирования пакетов;
  • listening – отображает все прослушиваемые порты и правила для них;
  • added – недавно добавленные правила;

Например, посмотрим список всех правил iptables:

sudo ufw show raw

Посмотрим все прослушиваемые порты:

sudo ufw show listening

Или недавно добавленные правила:

sudo ufw show added

6. Удаление правил ufw

Чтобы удалить правило ufw, используется команда delete. Например, удалим ранее созданные правила для порта 80:

sudo ufw delete allow out 80/tcp
sudo ufw delete deny in 80/tcp

7. Логгирование в ufw

Чтобы отлаживать работу ufw, могут понадобится журналы работы брандмауэра. Для включения журналирования используется команда logging:

sudo ufw logging on
sudo ufw logging medium

Также этой командой можно изменить уровень логгирования:

  • low – минимальный, только заблокированные пакеты;
  • medium – средний, заблокированные и разрешённые пакеты;
  • high – высокий.

Лог сохраняется в папке /var/log/ufw. Каждая строчка лога имеет такой синтаксис:

[UFW действие] IN=интерфейс OUT=итерфейс SRC=ip_источника DST=ip_назначения LEN=размер_пакета TOS=0x10 PREC=0x00 TTL=64 ID=728 DF PROTO=протокол SPT=порт_источника DPT=порт назначения LEN=размер_пакета

В качестве действия приводится то, что UFW сделал с пакетом, например ALLOW, BLOCK или AUDIT. Благодаря анализу лога настройка UFW Ubuntu станет гораздо проще.

8. Отключение UFW

Если вы хотите полностью отключить UFW, для этого достаточно использовать команду disable:

sudo ufw disable

Также, если вы что-то испортили в настройках и не знаете как исправить, можно использовать команду reset для сброса настроек до состояния по умолчанию:

sudo ufw reset

Выводы

В этой небольшой статье мы разобрали, как настроить UFW Ubuntu для защиты вашего компьютера от угроз из сети. Это особенно актуально для серверов, потому что они постоянно доступны из интернета.

Статья распространяется под лицензией Creative Commons ShareA 4.0 при копировании материала ссылка на источник обязательна. (4 5,00 из 5)
Загрузка…

Источник: https://losst.ru/nastrojka-ufw-ubuntu

Защита сервера от несанкционированного доступа – настраиваем брандмауэр на Ubuntu

Настройка файрвола на Ubuntu

Статья рассматривает процесс настройки фаерволов iptables и UFW в Ubuntu 12.04 LTS, Dedicated/Colocation или VPS/VDS (не shared-хостинг). Потребуется доступ суперпользователя (root) или пользователя с правами sudo по SSH.

Любой компьютер в публичной сети является потенциальной мишенью для нападения злоумышленниками, будь то рабочий компьютер в офисной локальной сети, домашний роутер или веб-сервер в интернете. О последнем и поговорим.

Зачем нужна защита сервера?

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

Например, за минуты написания предыдущих абзацев на довольно новый сервер, на котором нет ни одного популярного веб-сервиса, пришли запросы из Китая (попытка подключения к 22 порту, SSH), Перу, Франции, Таиланда, Румынии (разнообразные порты, попытки сканирования).

Достаточно быстрый простой способ защиты от большей части такой нечисти – установка и настройка фаервола.

Какие фаерволы распространены для Ubuntu Linux?

Штатный фаерволл для Ubuntu – iptables. Для удобной работы с ним существует надстройка UFW (Uncomplicated Firewall). Остальные варианты менее распространены, остановимся на этих упомянутых.

iptables

Строго говоря, iptables – не фаервол, а программа управления штатным линуксовым фаерволом netfilter. Но для простоты будем называть iptables фаерволом. Iptables позволяет контролировать доступ как извне сервера, так и внутри него. Существует разновидность ip6tables – интерфейс управления фаерволом в рамках нового протокола ipv6.

UFW

Команды настройки iptables для новичка на первый взгляд выглядят весьма сложными, в таком случае проще воспользоваться UFW, надстройкой, которая своим простым интерфейсом упрощает работу с iptables (на самом деле, разобраться в iptables – дело нескольких часов, зато потом вы будете ещё лучше понимать, как работает ваш сервер).

Начнём с UFW

Подключитесь в терминале к вашему серверу по SSH и выполните:

sudo apt-get install ufw

Первое, что необходимо сделать после установки – открыть себе доступ к серверу из терминала. Если этого не сделать, можно потерять всякую возможность подключения с последующей потерей всех данных и полной переустановкой операционной системы.

Открываем доступ по SSH:

sudo ufw allow 22

Включаем логирование (логи будут вестись в /var/log/ufw.log):

sudo ufw logging on

Если на сервере есть или будет работать сайт, открываем 80 порт:

sudo ufw allow http

Если к сайту необходимо подключаться по HTTPS, открываем 443 порт:

sudo ufw allow https

Чтобы отправлялась почта, открываем 25 порт (SMTP):

sudo ufw allow 25/tcp

Для получения почты по POP3 нужно открыть 110 порт:

sudo ufw allow 110/tcp

А для IMAP – 143 порт:

sudo ufw allow 143/tcp

Если вы используете почтовый хостинг Яндекса (pdd.yandex.ru) или Google Apps, потребуется открыть не 25, а 465 или 587 порт:

sudo ufw allow 465/tcpsudo ufw allow 587/tcp

Теперь пора включить фаервол:

sudo ufw enable

Если при вызове этой команды вы получаете ошибку «ERROR: problem running ufw-init», то говоря кратко, проще отказаться от UFW и использовать чистый iptables. Эта ошибка может возникать из-за использования VPS внутри системы виртуализации OpenVZ, а не выделенного «железного» dedicated сервера

Можно посмотреть на все правила, которые вы добавили и убедиться, что всё, возможно, в порядке:

sudo ufw status numbered

Перезапускаем rsyslog, чтобы заработало логирование в файл /var/log/ufw.log

sudo service rsyslog restart

Если вы забыли разрешить доступ к какому-либо специфическому порту – смотрите в лог и открывайте нужное.

Если в лог ничего не пишется, загляните в syslog:

sudo tail -f /var/log/syslog

Если в логе есть ошибка «Could not open output pipe ‘/dev/xconsole’», необходимо в файле /etc/rsyslog.d/50-default.conf в последней строке заменить «xconsole» на «console»:

sudo nano /etc/rsyslog.d/50-default.conf

и перезапустить rsyslog:

sudo service rsyslog restart

Откройте ещё одно окно терминала, авторизуйтесь по SSH ещё раз, убедитесь, что доступ есть и перезагрузите сервер:

sudo reboot

Если через несколько минут сервер пускает вас по SSH – поздравляем, фаерволл первично настроен и пускает внутрь только по вышеописанным портам.

Если необходимо выключить фаерволл, наберите:
sudo ufw disable

В случае невозможности использования UFW или желания попробовать iptables, лучше удалить UFW полностью:

sudo apt-get purge

Настройка iptables

Для управления сохранением/восстановлением правил ограничения доступа используются возможности пакета iptables-persistent. Установим его:

sudo apt-get install iptables iptables-persistent

Так как мы настраиваем фаервол с нуля, то на все вопросы инсталлятора нужно ответить No (устанавливаем список правил фильтрации по умолчанию).

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

Входим под рутом:

sudo -i

Вводим в терминале правила iptables (важен порядок следования правил):

iptables -Fiptables -X

Разрешение для локальной сети:

iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT

Разрешение для SSH:

iptables -A INPUT -p tcp –dport 22 -j ACCEPTiptables -A OUTPUT -p tcp –sport 22 -j ACCEPT

По умолчанию отбрасывать все входящие, исходящие и транзитные подключения:

iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP

Принимать только «правильные» соединения:

iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPTiptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

Разрешение для веб-сервера:

iptables -A INPUT -p tcp –dport 80 -j ACCEPTiptables -A OUTPUT -p tcp –dport 80 -j ACCEPTiptables -A OUTPUT -p tcp –sport 80 -j ACCEPTiptables -A INPUT -p tcp –dport 443 -j ACCEPTiptables -A OUTPUT -p tcp –dport 443 -j ACCEPTiptables -A OUTPUT -p tcp –sport 443 -j ACCEPT

Разрешение для (в том числе) apt-get (резолвинг DNS):

iptables -A OUTPUT -p udp –dport 53 -m state –state NEW -j ACCEPT

Разрешение для ntpd (соединение с серверами точного времени):

iptables -A OUTPUT -p UDP –dport 123 -j ACCEPT

Разрешение для почтового хостинга Яндекса (по аналогии делаются разрешения для Google Apps – меняется имя сервера и порт):

iptables -A OUTPUT -p tcp -d smtp.yandex.ru –dport 587 -j ACCEPTiptables -A OUTPUT -p tcp -d pop.yandex.ru –dport 110 -j ACCEPT

Правильно фильтруем ICMP-трафик

Разрешаем ответ на ping – ICMP echo-reply type 0:

iptables -A OUTPUT -p icmp –icmp-type 0 -j ACCEPTiptables -A INPUT -p icmp –icmp-type 0 -j ACCEPT

Разрешаем ответ «адресат недоступен» – ICMP destination-unreachable type 3:

iptables -A INPUT -p icmp –icmp-type 3/4 -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type 3/4 -j ACCEPTiptables -A INPUT -p icmp –icmp-type 3/3 -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type 3/3 -j ACCEPTiptables -A INPUT -p icmp –icmp-type 3/1 -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type 3/1 -j ACCEPT

Разрешаем «сдерживание источника» – ICMP Source Quench type 4:

iptables -A INPUT -p icmp –icmp-type 4 -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type 4 -j ACCEPT

Разрешаем запрос на ping не чаще двух раз в секунду – ICMP Echo Request type 8:

iptables -A INPUT -p icmp –icmp-type 8 -m limit –limit 2/s -j ACCEPT

Остальные попытки пишем в лог и отбрасываем:

iptables -A INPUT -p icmp –icmp-type 8 -j LOG –log-prefix “IPTables-Dropped: [Excessive ICMP type 8] “iptables -A INPUT -p icmp –icmp-type 8 -j DROP

Разрешаем ответ на запрос ping:

iptables -A OUTPUT -p icmp –icmp-type 8 -j ACCEPT

Разрешаем ICMP Time Exceeded type 11:

iptables -A INPUT -p icmp –icmp-type 11 -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type 11 -j ACCEPT

Разрешаем ICMP Parameter Problem type 12:

iptables -A INPUT -p icmp –icmp-type 12 -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type 12 -j ACCEPT

Сохранение всех остальных, отброшенных и неразрешённых запросов в лог:

iptables -N LOGGINGiptables -A INPUT -j LOGGINGiptables -A OUTPUT -j LOGGINGiptables -A LOGGING -m limit –limit 2/min -j LOG –log-prefix “IPTables-Dropped: ” –log-level 4iptables -A LOGGING -j DROP

Подключитесь в соседнем окне терминала по SHH, убедитесь, что доступ есть (если доступа нет, перезагрузите сервер средствами вашего хостинга и поправьте правила), затем сохраните правила:

iptables-save > /etc/iptables/rulesservice iptables-persistent save

Посмотреть список текущих правил можно командой:

iptables -nvL

Лог iptables в отдельный файл rsyslog

По умолчанию логирование всех отброшенных пакетов идет в несколько файлов (например в kern.log, syslog, messages). Чтобы не засорять множество лог-файлов, будем сохранять логи в отдельный файл (/var/log/iptables.log). Создаём новый конфиг:

sudo nano /etc/rsyslog.d/iptables.conf

и добавляем в него две строки:

:msg, contains, “IPTables” -/var/log/iptables.log& ~

В /etc/rsyslog.d/50-default.conf уточняем, куда наши отброшенные пакеты писать не нужно:

sudo nano /etc/rsyslog.d/50-default.conf

Меняем строки:

*.*;auth,authpriv.none -/var/log/syslog

kern.* -/var/log/kern.log

*.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages

на:

*.*;auth,authpriv.none;kern.*=!kern.warning -/var/log/syslog

kern.*;kern.*=!kern.warning -/var/log/kern.log

*.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none;kern.*=!kern.warning -/var/log/messages

Строку

daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole

меняем на:

daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/console

Сохраняем файл и перезапускаем rsyslog

sudo service rsyslog restart

Теперь всех недоброжелателей можно увидеть в логах:

sudo tail -f /var/log/iptables.log

Как читать логи iptables:

IN – входящий интерфейс. Например lo (localhost), eth0, vnet0OUT – исходящий интерфейсMAC – MAC-адрес устройства, сделавшего запросSRC – IP-адрес устройства, сделавшего запросDST – IP-адрес устройства, которому был предназначен запрос (обычно IP вашего сервера)LEN – длина запросаPROTO – тип протоколаSPT – порт исходного запросаDPT – итоговый порт (обычно порт на вашем сервере)

Выключение iptables

Если необходимо выключить фаервол, выполните в терминале команды (порядок важен):

iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -F

Все правила ограничения доступа будут сброшены до следующей перезагрузки. Для сохранения работы правил и после перезагрузки выполните:

iptables-save > /etc/iptables/rulesservice iptables-persistent save

-инструкция по настройке файрволла в Ubuntu

Источник: https://UbuntuClub.org/zashhita-servera-ot-nesanktsionirovannogo-dostupa-nastraivaem-brandmauer-na-ubuntu/

Настройка Linux-файрвола iptables: Руководство для начинающих

Настройка файрвола на Ubuntu

Iptables — это межсетевой экран для операционных систем Linux. Успешно применять этот инструмент могут не только продвинутые пользователи Linux, но и новички. В этом руководстве представлено описание базовых настроек конфигурации этого мощного файрвола.

Что такое iptables

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

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

Как правило, itpables предустанавливается на всех Linux-дистрибутивах. Чтобы обновить утилиту, или установить ее, если по каким-то причинам она отсутствует в базовой поставке, нужно воспользоваться следующей командой:

sudo apt-get install iptables Существуют и графические инструменты-альтернативы iptables, например Firestarter, но и работа в командной строке не является очень уж сложной.

Однако следует соблюдать особенную осторожность при настройке iptables через удаленное ssh-соединение, поскольку одна неверная команда может заблокировать возможность подключения к удаленному серверу — придется каким-то образом вносить изменения в настройки машины физически получив к ней доступ.

Типы правил

Существует три типа правил iptables — input, forward и output.

Input — Такие цепочки используются для контроля поведения входящих соединений. К примеру, если пользователь попробует подключиться к серверу по SSH, то iptables сравнит его IP-адрес со своим списком, чтобы разрешить или запретить доступ.

Forward — Правила этого типа используются для обработки входящих сообщений, конечный пункт назначения которых не является текущим сервером.

К примеру, в случае маршрутизатора, к нему подключаются многие пользователи и приложения, но данные не посылаются на сам маршрутизатор, они лишь передаются ему, чтобы он мог перенаправить их адресату.

Если вы не занимаетесь настройкой маршрутизации или NAT, то правила этого типа использовать в работе не будете.

Output — Такие цепочки используются для исходящих соединений. К прмиеру, если пользователь пытается отправинг запрос ping к сайту 1cloud.ru, iptables изучит цепочку правил, чтобы понять, что нужно делать в случае ping и этого сайт, и только потом разрешит или запретит соединение.

Важный момент

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

Поведение по умолчанию

Прежде чем приступать к непосредственной настройке межсетевого экрана, следует определиться с тем, каким должно быть поведение цепочек правил по умолчанию. Другими словами, что iptables нужно делать в том случае, если соединение не подпадает ни под одно из сконфигурированных правил?

Увидеть текущие настройки iptables по умолчанию можно с помощью команды iptables –L:

В данном случае мы также использовали команду grep, чтобы получить более четкий вывод. Как показано на скриншоте, все три цепочки по умолчанию разрешают прием трафика.

Чаще всего такое поведение более предпочтительно. Если вы ничего не меняли в правилах, то так оно и должно быть по умолчанию.

Если же что-то менялось, а теперь нужно вернуть прежние настройки, то сделать это можно с помощью таких команд:

iptables –policy INPUT ACCEPT iptables –policy OUTPUT ACCEPT

iptables –policy FORWARD ACCEPT

Предварительно разрешил весь трафик, затем уже можно запрещать соединения с определенных IP-адресов и на определенные порты.

Если же предпочтительнее пойти по другому пути и сначала запретить весь трафик, а затем выборочно разрешать его, то нужно воспользоваться командами из списка ниже:

iptables –policy INPUT DROP iptables –policy OUTPUT DROP

iptables –policy FORWARD DROP

Действия с соединениями

После настройки поведения межсетевого экрана по умолчанию, можно переходить к созданию правил обработки трафика, чтобы iptables понимал, что делать с конкретным соединением. Ниже мы рассмотрим три основных вида действий с соединениями.

  • Accept — разрешить соединение;
  • Drop — игнорировать соединение, вести себя так, будто его никогда не было. Действие подходит для случаев, когда нужно сделать так, чтобы источник запроса не узнал о его блокировке.
  • Reject — заблокировать соединение и отправить в ответ сообщение об ошибке. Действие подходит для тех случаев, когда владелец сервера хочет дать понять, что соединение заблокировано файрволом.

Вот так выглядит ответ на пинг в каждом из трех случаев

Соединение разрешено:

Соединение проигнорировано:

Соединение отклонено:

Разрешаем и блокируем конкретные соединения

Настроив политики цепочек, можно переходить к работе с конкретными соединениями. В нашем руководстве мы будет по умолчанию их отклонять, но можно и разрешать или игнорировать.

Мы будем использовать комманду iptables –A, чтобы добавлять правила к существующим цепочкам. Iptables будет начинать с начала списка и проходить по всем правилам, пока не найдет совпадение. Если нужно поместить какое-то правило перед уже имеющимся, то можно использовать команду iptables -I [цепочка] [номер], чтобы указать номер позиции в списке, которую должно занять новое правило.

Соединения с одного IP-адреса

Источник: https://1cloud.ru/help/linux/nastrojka_linus-firewall_iptables

Настройка фаервола в Ubuntu с помощью утилиты UFW

Настройка файрвола на Ubuntu

UFW (Uncomplicated Firewall – несложный фаервол) –  удобный интерфейс для управления политиками безопасности межсетевого экрана. Наши серверы постоянно подвергаются различным атакам или сканируются в поиске уязвимостей.

Как только эти уязвимости находятся, мы рискуем стать частью ботнета, раскрыть конфиденциальные данные или потерять деньги из-за сбоев в работе веб-приложений. Одной из первых мер по снижению рисков безопасности является грамотная настройка правил межсетевого экрана.

В нашем руководстве мы рассмотрим основные команды и правила работы с утилитой UFW.

Предварительные требования

  1. Для начала работы с UFW вам потребуется суперпользователь(возможность исполнения команд под sudo).  

  2. Утилита  UFW предустановлена в системе. Если по какой-то причине она была отсутствует, вы можете установить ее  с помощью команды:

    sudo apt-get install ufw

Проверка правил и текущего состояния UFW

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

sudo ufw status verbose

По умолчанию UFW отключен, так что вы должны увидеть что-то вроде этого:

Status: inactive

Если UFW включен, то в консоли будут перечисляться заданные правила. Например, если firewall настроен таким образом – SSH (порт 22) соединение из любой точки мира, консоль может выглядеть следующим образом:

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip

 

To                         Action      From

—                         ——      —-

22                         ALLOW IN    Anywhere

22 (v6)                    ALLOW IN    Anywhere (v6)

Так вы всегда можете узнать как настроен фаервол. 

Внимание! Проведите начальную настройку перед включением UFW. В частности, должен быть доступен SSH(22 порт). В ином случае вы рискуете потерять доступ к серверу.

Начальная настройка

По умолчанию UFW настройки запрещают все входящие соединения и разрешают все исходящие. Это значит, что если кто-то попытается  достичь ваш сервер, он не сможет подключиться, в то время как любое приложение на сервере имеет доступ к внешним соединениям.

Cоответствующие правила фаервола прописываются так:

sudo ufw default deny incoming

sudo ufw default allow outgoing

Добавление правила для SSH-соединений

 Чтобы разрешить входящие SSH-соединения, выполните команду:

sudo ufw allow ssh

SSH демон прослушивает 22 порт. UFW знает об именах распространенных служб (ssh, sftp, http, https), поэтому вы можете использовать их вместо номера порта.

Если ваш SSH-демон использует другой порт, вам необходимо указать его в явном виде, например:

sudo ufw allow 2222

Теперь, когда ваш межсетевой экран настроен, можете включать его.

Запуск UFW

Чтобы включить UFW, используйте следующую команду:

sudo ufw enable

Вы получите похожее  предупреждение:

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Это означает, что запуск этого сервиса может разорвать текущее ssh соединение.
Но, так как мы его уже добавили ssh в правила, этого не произойдет. Поэтому просто нажмите (y).

Добавление правил для других подключений

Чтобы ваши приложения работали корректно, вам необходимо добавить другие правила. Ниже будут  показаны настроить для наиболее распространённых служб.

HTTP (80 порт)

Для работы не зашифрованных веб-серверов используйте следующую команду:

sudo ufw allow http

Или

sudo ufw allow 80

HTTPS (443 порт)

То же самое, что и в предыдущем примере, но для зашифрованных соединений:

sudo ufw allow https

Или

sudo ufw allow 443

FTP (21 порт)

Данный порт используется для незашифрованной передачи файлов:

sudo ufw allow ftp

Или

sudo ufw allow 21/tcp

Добавление диапазонов портов

sudo ufw allow 3000:3100

Также вы можете указывать конкретный протокол:

sudo ufw allow 3000:3100/tcp
sudo ufw allow 3000:3100/udp

Добавление IP-адресов

Вs можете указать IP-адрес,  которому будет разрешен доступ.

sudo ufw allow from 123.45.67.89

В приведённом примере указанному адресу разрешается доступ ко всем портам сервера.

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

sudo ufw allow from 123.45.67.89 to any port 22

Аналогичным образом вы можете работать с диапазонами ip-адресов:

sudo ufw allow from 123.45.67.89/24

sudo ufw allow from 123.45.67.89/24 to any port 22

Ограничение подключений

Чтобы запретить HTTP-соединения, вы можете использовать следующую команду:

sudo ufw deny http

Если вы хотите запретить все соединения с 123.45.67.89, воспользуйтесь следующей командой:

sudo ufw deny from 123.45.67.89

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

Существует два способа удаления правил. Первый – по номеру правила.  Выполните команду:

sudo ufw status numberedStatus: active

     To                         Action      From

     —                         ——      —-

[ 1] 22                         ALLOW IN    Anywhere

[ 2] 80                         ALLOW IN    Anywhere

[ 3] 22 (v6)                    ALLOW IN    Anywhere (v6)

[ 4] 80 (v6)                    ALLOW IN    Anywhere (v6)

После этого выполните команду ufw delete и укажите номер правила, которое следует удалить:

sudo ufw delete 2

Второй способ заключается в том, что после команды ufw delete используется фактическое правило, например

sudo ufw delete allow http

или 

sudo ufw delete allow 80

Отключение UFW

Отключить UFW можно при помощи команды:

sudo ufw disable

В результате её выполнения всё созданные ранее правила утратят силу.

Сброс правил

Если вам требуется сбросить текущие настройки, воспользуйтесь командой:

sudo ufw reset

В результате её выполнения все правила будут отключены и удалены.

Логи

В Ufw есть опция сохранения логов – журнал событий. Для запуска, используйте команду:

sudo ufw logging on

Ufw поддерживает нескоько уровней логгирования:

  • off – отключен.
  • low – регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам.
  • medium  – все то, что при значении low. Плюс все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения. Все записи ведутся с ограничением скорости.
  • high -работает также как и medium. Плюс все пакеты с ограничением скорости.
  • full – также как и high, но без ограниения скорости. 

Что бы задать уровень, укажите его как параметр:

 sudo ufw logging high

По-умолчанию используется уровень low.

Для просмотра файлов относящихся с логам ufw, используйте команду:

ls /var/log/ufw*

Настройка правил по умолчанию UFW

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

ufw default allow outgoing

Вывод

Default outgoing policy changed to 'allow'(be sure to update your rules accordingly)

Для того, чтобы запретить все входящие соединения, запустите

ufw default deny incoming

Вывод

Default outgoing policy changed to 'deny'(be sure to update your rules accordingly)

Вышеуказанные команды позволят всем исходящим соединениям запретить или блокировать все входящие соединения.

На данный момент, вы можете включить брандмауэр, однако, прежде чем вы выполните эту команду, надо открыть первым SSH. Это предотвращает разъединение с сервером, так как мы указали отказ от всех входящих соединений.

Чтобы разрешить SSH, запустите

ufw allow 22/tcp

Исходящий

Skipping adding existing ruleSkipping adding existing rule (v6)

Доступ к SSH также может быть разрешено имя службы

ufw allow ssh

Если вы хотите удалить правило, запустите

ufw delete allow 22/ssh

Запретить услугу по имени сервиса

ufw deny service-name

Например

ufw deny sshЧтобы увидеть все услуги, которые могут быть разрешены или запрещены в системе проверьте файл /etc/services.
cat /etc/services | less

Пример вывода

ftp-data 20/tcpftp 21/tcpfsp 21/udp fspdssh 22/tcp # SSH Remote Login Protocolssh 22/udptelnet 23/tcpsmtp 25/tcp mailtime 37/tcp timservertime 37/udp timserverrlp 39/udp resource # resource locationnameserver 42/tcp name # IEN 116whois 43/tcp nicnametacacs 49/tcp # Login Host Protocol (TACACS)tacacs 49/udpre-mail-ck 50/tcp # Remote Mail Checking Protocolre-mail-ck 50/udpdomain 53/tcp # Domain Name Serverdomain 53/udp

Запуск UFW брандмауэра

Для того, чтобы активировать брандмауэр, войдите как root и выполните следующую команду:

ufw enable

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

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y

Если вы выберете Да, вы получите вывод ниже

Firewall is active and enabled on system startup

Брандмауэр теперь активен, и начнет работать при каждой загрузке. Мы можем посмотреть на правила брандмауэра снова:

ufw status

Вывод теперь будет отображать состояние брандмауэра плюс разрешенные услуги/порты

Вывод

ufw status activeStatus: active To Action From– —— —-22/tcp ALLOW Anywhere22 ALLOW Anywhere22/tcp (v6) ALLOW Anywhere (v6)22 (v6) ALLOW Anywhere (v6)

Разрешение соединения в UFW

Вы можете легко разрешить входящие соединения на порт/диапазон, название приложения, IP-адреса/подсети в UFW.
Проверьте приведенные ниже примеры.

а) Предоставление приложений по имени или номеру порта/диапазон

ufw allow service-name

или

ufw allow port/tcp

Например

ufw allow ssh or ufw allow 22/tcp ufw allow ftp or ufw allow 21/tcpsudo ufw allow 1500:2000/tcp

б) Разрешение IP-адреса/подсети

Ниже команда позволяет устанавливать соединение с конкретным IP или подсети, а также мы можем использовать определенные номера портов.
Для того, чтобы разрешить соединения с определенного IP-адреса

Источник: https://andreyex.ru/ubuntu/kak-nastroit-brandmauer-ufw-na-ubuntu-18-04/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.