Архив автора: admin

Настройка firewall на mikrotik

Firewall на микротик состоит из следующих составляющих, это цепочки (chain) и действия в этих цепочках (Action), а также различные фильтры к трафику который обрабатывается в цепочках.

Firewall Chain

В Mikrotik существуют следующие цепочки

Input – цепочка для обработки пакетов поступающих на маршрутизатор, имеющих в качестве адреса назначение ip  самого маршрутизатора.

Forward – в этой цепочки обрабатываются пакеты проходящие через маршрутизатор

Output – цепочка для обработки пакетов созданных маршрутизатором, например когда мы с маршрутизатора пингуем или подключаемся по telnet

Из описания понятно, что для защиты маршрутизатора нужно использовать цепочку input. А для обработки трафика от пользователей и к пользователям использовать chain forward. Использование Output мне не приходилось.

Firewall Action

В цепочках можно осуществлять следующие действия















ПараметрДействие
AcceptРазрешить
add-dst-to-address-listДобавить ip назначение в список адресов указанный в Address List
add-src-to-address-listДобавить ip источника  в список адресов указанный в Address List
Dropзапретить
fasttrack-connectionОбрабатывать пакеты включив FastTrack т.е пакеты будут проходить по самому быстрому маршруту, минуя остальные правила firewall и обработку в очередях
JumpПрыжок, переход на другую цепочку заданную в Jump target
logЗапись в лог
passthroughПерейти к следующему правилу не делая никаких действий(полезно для сбора статистики)
RejectОтбить пакет с причиной указанной в Reject with
ReturnВернуть пакет в цепочку из который он пришел
tarpitзахватывает и поддерживает TCP-соединения (отвечает с SYN / ACK на входящий пакет TCP SYN)

 

Фильтрация в firewall

Фильтрация пакетов которые могут попасть в цепочки может осуществляться по

Src.Address – адрес источника

Dst.Address – адрес назначения

Protocol – Протокол(TCP, UDP и т.д)

Src.Port – порт источника

Dst.Port –порт назначения

In.Interface –входящий интерфейс

Out.Interface – исходящий интерфейс

Packet.Mark – метка  пакета

Connection.Mark –метка  соединения

Routing Mark – метка  маршрута

Roting table — адрес получателя которых разрешен в конкретной таблице маршрутизации

Connection Type – тип соединения

Connection State — состояние соединения (установлено, новое и т.д)

Connection NAT State – цепочка NAT (srcnat, dstnat)

Примеры настройки firewall

Рассмотрим некоторые примеры по настройки firewall на маршрутизаторе микротик.

Настройка безопасности Микротик

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

1.Запретим пинговать наше устройство

2.Запретим доступ к микротику всем  кроме локальной сети и разрешенных ip адресов

Для настройки подключаемся к роутеру с помощью утилиты winbox и  идем в меню IP-Firewall. Вкладка Filter Rules и нажимаем добавить.

Запрещаем пинги на наше устройство, для этого,  на вкладке general,   chain выбираем input protocol icmp

На вкладке Action выбираем drop

Запрещаем доступ к управлению маршрутизатора. Для начала создаем лист с нашими разрешенными адресами, переходим в IP-Firewall, вкладка Address Lists, добавляем новый лист

Name – название нашего листа

Address – адреса относящиеся к этому листу, можно указывать как отдельные адреса так и сети.

Дальше создаем новое правило, снова переходим в Filter rules и добавляем его

Затем переходим на вкладку Advanced и в качестве Src. List выбираем созданный лист

В действии Action выбираем разрешить accept.

Можно было не создавать лист, а на вкладке General в параметре Src. Address прописать нашу сеть, просто мне удобнее работать со списками адресов, в будущем для добавления нового адреса нужно его просто добавить в лист allow_ip.

Следующим шагом запрещаем все входящие соединения. Добавляем правило на chain  input, и в действии ставим drop.  Должно получится следующие

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

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

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

Доступ пользователей в интернет

Допустим нам нужно дать доступ в интернет только для определенной сети. Для этого создаем два разрешающих  правила в chain  forward. Первое правило разрешает исходящий трафик из нашей сети

Action ставим accept. Можно как указать Src. Address, так и использовать Address Lists, как мы это делали выше.  Следующим правилом разрешаем прохождение пакетов в нашу сеть.

B следующим правилом запрещаем все остальные сети,

Action выбираем drop. В результате получится следующее

Запрет доступа пользователя в интернет

Если нам нужно запретить доступ в интернет определенным пользователям, давайте сделаем это через Address Lists, что бы в дальнейшем проще было добавлять или удалять правила, переходим на вкладку address Lists и создаем список block в который добавим адреса для блокировки.

Создаем запрещающее правило firewall в chain forward, в котором на вкладке Advanced в Src. Address  List выбираем наш список для блокировки

В Action выбираем Drop. Теперь, наше правило нужно поставить выше разрешающего правила,  иначе оно не сработает, как это сделать я писал выше, в результате получится следующая картина

Аналогично можно запретить доступ к внешним ресурсам, так же создаем список для блокировки, но в настройка firewall уже указываем его в качестве Dst. Address List. Кроме ip адреса в список можно вносить и доменные имена, например если мы хотим запретить доступ пользователей в соцсети, одноклассники или вконтакте.

Доступ только к сайтам

В следующим примере рассмотрим как разрешить пользователям выход в интернет только по 80 и 443 порту и запретить все остальные, для этого создадим разрешающее правило в chain  forward, Protocol выбираем tcp и в параметре Dst.Prort указываем разрешенные порты

Тоже самое можно сделать с помощью запрещающего правила, используя оператор отрицания «!», а Action установить drop

Это означает,  запретит все порты кроме 80 и 443.

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

Внимание! при настройке  firewall  на MikroTIK, настоятельно рекомендую проводить их в «Safe Mode» как ее включить описано здесь, в противном случае вы рискуете потерять доступ к маршрутизатору.

Обучающий курс по настройке MikroTik

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2018-11-01T11:32:57
Микротик

Как на Windows узнать, сколько файлов хранится в папках

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

ПРИМЕЧАНИЕ. Методы подсчета файлов и папок, которые мы покажем в этой статье, работают аналогично в Windows 10, Windows 8.1 и Windows 7. Для простоты мы будем использовать только скриншоты, сделанные в Windows 10.

Метод 1. Используйте Проводник для выбора файлов и папок, которые вы хотите подсчитать

Первый метод предполагает использование Проводника / Проводника Windows . Откройте «Проводник» и перейдите к папке, в которой хранятся элементы, которые вы хотите подсчитать.

Общее количество элементов (файлов и папок), хранящихся внутри, отображается в нижнем левом углу пользовательского интерфейса File Explorer.

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

Способ 2. Используйте окно «Свойства» для рекурсивного подсчета всех файлов и папок

Хотя предыдущий метод во многих случаях полезен, он не работает рекурсивно. Он считает файлы и папки на первом уровне дерева папок, но эти папки, скорее всего, содержат другие файлы и папки внутри. Что, если вы хотите точно знать, сколько папок и файлов хранится внутри определенной папки и всех ее подпапок? Легкий способ найти эту информацию — использовать окно Свойства выбранной папки. Щелкните правой кнопкой мыши или коснитесь и удерживайте значок папки. В контекстном меню нажмите или коснитесь Свойства.

Обратите внимание, что еще более быстрый способ открыть окно свойств папки — выбрать его, а затем одновременно нажать клавиши Alt + Enter на клавиатуре.

Когда откроется окно «Свойства», Windows автоматически начнет подсчет файлов и папок внутри выбранной папки. Вы увидите эту информацию в поле «Содержит».

Метод 3. Используйте командную строку для рекурсивного подсчета всех файлов и папок

Вы также можете использовать командную строку. Чтобы подсчитать папки и файлы, хранящиеся в определенной папке, откройте командную строку и перейдите к этой папке. Для этого запустите команду cd [path], где [путь] — это местоположение вашей папки. Вы можете увидеть пример на скриншоте ниже.

Затем, чтобы подсчитать все папки и файлы внутри родительской папки, выполните следующую команду:

dir *.* /w /s

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

Метод 4. Используйте PowerShell для подсчета всех файлов и папок

Другим тривиальным способом подсчета файлов и папок, хранящихся в родительской папке, является использование PowerShell . Откройте окно PowerShell и направляйтесь в папку родительской папки. Запустите команду cd [path], где [путь] — путь вашей папки. Вот пример:

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

Get-ChildItem | Measure-Object | %{$_.Count}

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

Get-ChildItem -Directory | Measure-Object | %{$_.Count}

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

Get-ChildItem -File | Measure-Object | %{$_.Count}

Если вы хотите рекурсивно подсчитывать папки и/или файлы в родительской папке, добавьте параметр Recurse в предыдущие команды следующим образом:

  • Рекурсивно подсчитывать все файлы и папки: Get-ChildItem -Recurse | Measure-Object | %{$_.Count} Get-ChildItem -Recurse | Measure-Object | %{$_.Count}
  • Рекурсивно подсчитывать только папки: Get-ChildItem -Recurse -Directory | Measure-Object | %{$_.Count} Get-ChildItem -Recurse -Directory | Measure-Object | %{$_.Count}
  • Рекурсивно считать только файлы: Get-ChildItem -Recurse -File | Measure-Object | %{$_.Count} Get-ChildItem -Recurse -File | Measure-Object | %{$_.Count}

Заключение

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



2018-11-01T10:17:43
Вопросы читателей

Настройка fail2ban для защиты asterisk

Зачем fail2ban нужен для  asterisk?

Как Вам известно, asterisk является приложением (сервером) для IP-телефонии. То есть позволяет подключившимся к нему клиентам звонить друг другу и во внешний мир, используя (помимо всего прочего) линии телефонной связи. При этом возникают следующие риски:

  1. клиенты идентифицируются по логину/паролю, а также (как правило) по IP адресу. При этом существует возможность подобрать пароль (раньше или позже, в зависимости от его сложности, но в любом случае это возможно), причем крайне часто ограничения по IP адресам далеко не такие жесткие, как хотелось бы (в идеале для каждого клиента должен быть свой уникальный IP адрес)
  2. входящие звонки из интернета (например, с других серверов asterisk). С этими подключениями все сложнее, поскольку asterisk (в базовой конфигурации) не предусматривает отображение IP адресов, с которых производится подключение.

Программа fail2ban в связке с брандмауэром (например, iptables) и правильно настроенным asterisk (отображающим в логах полную информацию, в том числе IP адреса клиентов и других серверов) позволяет эффективно заблокировать попытки подключения и подбора пароля.

Перед началом настройки Вам необходимо установить iptables и fail2ban. Кроме того, iptables должен быть уже настроен (и разрешать подключения к asterisk) до начала настройки fail2ban! Прочитать, как настроить iptables можно здесь: настройка iptables для работы asterisk. Вы также можете установить fail2ban до установки самого asterisk, и в этом случае (по крайней мере, теоретически) в процессе установки последние версии asterisk обнаруживают установленный fail2ban и настраивают его автоматически. Однако:

  1. Не всегда вопрос безопасности IP-телефонии рассматривается до установки asterisk. То есть скорее всего, Вы захотите установить fail2ban на систему с уже установленным (и настроенным) астериском.
  2. Не во всех случаях автоматическое конфигурирование срабатывает вообще, не говоря уже о том, чтобы оно сработало правильно (и начало блокировать все атаки на asterisk).

Настройка ведения логов asterisk

В первую очередь имеет смысл настроить ведение логов asterisk, чтобы информация сразу же начала собираться в нужном нам формате и виде. Для этого в каталоге конфигурации asterisk (по умолчанию это /etc/asterisk) найдите файл logger.conf и внесите в него следующие изменения: раскомментируйте (уберите точку с запятой в начале строки):

dateformat=%F %T ; ISO 8601 date format

Это нужно для того, чтобы asterisk писал в логи дату в правильном формате:

год-месяц-день часы:минуты:секунды

Начиная с 10-й версии asterisk, Вы можете включить Asterisk Security Framework. Для этого в файле logger.conf найдите и раскомментируйте (или добавьте) строку:

security => security

В этой строке с левой стороны от стрелки указано имя файла, в котором будут сохраняться события, а с правой стороны – уровни (типы событий), которые будут сохраняться. В данном примере события, относящиеся к уровню security (и только они), будут сохраняться в файл с именем security в папке логов asterisk.

Разумеется, после внесения изменений необходимо, чтобы asterisk перечитал конфигурацию. Для этого можно либо перезагрузить сервис астериска, либо только конфигурацию логов (logger reload из asterisk CLI).

После этого в папке логов asterisk (по умолчанию /var/log/asterisk) появится файл с именем security. Не забудьте настроить ротацию логов для этого файла (так же, как и для остальных логов asterisk)!

Настройка правил фильтрации

Теперь нам необходимо создать фильтр, который будет извлекать из общего потока сообщений астериска потенциально опасные события (неверный логин/пароль, попытка входа с неразрешенного IP адреса, и т.д. и т.п.). При этом нам необходимо не только обнаруживать такие потенциально опасные события, но и вычленять оттуда IP адрес, с которого было выполнено действие. То есть мы не просто ищем определенные строки в файлах событий астериска, а настраиваем правила фильтрации.

Правила фильтрации можно прописать в файле /etc/fail2ban/filter.d/asterisk.conf. Вот образец содержимого этого файла:

# Fail2Ban configuration file

#

#

# $Revision: 250 $

#



[INCLUDES]



# Read common prefixes. If any customizations available -- read them from

# common.local

#before = common.conf





[Definition]



#_daemon = asterisk



# Option:  failregex

# Notes.:  regex to match the password failures messages in the logfile. The

#          host must be matched by a group named "host". The tag "" can

#          be used for standard IP/hostname matching and is only an alias for

#          (?:::f{4,6}:)?(?PS+)

# Values:  TEXT

#



# Asterisk 1.8 uses Host:Port format which is reflected here



failregex = NOTICE.* .*: Registration from '.*' failed for ':.*' - Wrong password

            NOTICE.* .*: Registration from '.*' failed for ':.*' - No matching peer found

            NOTICE.* .*: Registration from '.*' failed for ':.*' - Username/auth name mismatch

            NOTICE.* .*: Registration from '.*' failed for ':.*' - Device does not match ACL

            NOTICE.* .*: Registration from '.*' failed for ':.*' - Not a local domain

            NOTICE.* .*: Registration from '.*' failed for ':.*' - Peer is not supposed to register

            NOTICE.* .*: Registration from '.*' failed for ':.*' - ACL error (permit/deny)

            NOTICE.* .*: Registration from '.*' failed for '' - Wrong password

            NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found

            NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch

            NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL

            NOTICE.* .*: Registration from '.*' failed for '' - Not a local domain

            NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register

            NOTICE.* .*: Registration from '.*' failed for '' - ACL error (permit/deny)

            NOTICE.* .*: Registration from '".*".*' failed for ':.*' - No matching peer found

            NOTICE.* .*: Registration from '".*".*' failed for ':.*' - Wrong password

            NOTICE.* .*: No registration for peer '.*' (from )

            NOTICE.* .*: Host  failed MD5 authentication for '.*' (.*)

            NOTICE.* .*: Failed to authenticate user .*@.*

            NOTICE.*  failed to authenticate as '.*'$

            NOTICE.* .*: Sending fake auth rejection for device .*<sip:.*@>;tag=.*

            NOTICE.* .*:  tried  to authenticate with nonexistent user '.*'

            VERBOSE.*SIP/-.*Received incoming SIP connection from unknown peer



# Option:  ignoreregex

# Notes.:  regex to ignore. If this regex matches, the line is ignored.

# Values:  TEXT

#

ignoreregex =


 

В asterisk версии 1.4 и более ранних используются строки типа “… failed for ‘<HOST>’ …”, а в asterisk 1.8 и выше – строки “… failed for ‘<HOST>:.*’ …”, поскольку начиная с версии asterisk 1.8 в логах появилась информация о номере порта, которой нет в asterisk 1.4. Приведенный выше вариант учитывает как старые, так и новые версии asterisk, так что Вам нет необходимости в нем что-либо менять.

Для asterisk версии 10 и выше, если Вы включили ведение логов security, не забудьте прописать правила фильтрации для этих логов!

Правила фильтрации можно прописать в файле /etc/fail2ban/filter.d/asterisk-security.conf. Вот образец содержимого этого файла:

# Fail2Ban configuration file

#

#

# $Revision: 250 $

#



[INCLUDES]



# Read common prefixes. If any customizations available -- read them from

# common.local

#before = common.conf





[Definition]



#_daemon = asterisk



# Option:  failregex

# Notes.:  regex to match the password failures messages in the logfile. The

#          host must be matched by a group named "host". The tag "" can

#          be used for standard IP/hostname matching and is only an alias for

#          (?:::f{4,6}:)?(?PS+)

# Values:  TEXT

#



failregex = SECURITY.* SecurityEvent="FailedACL".*RemoteAddress=".+?/.+?//.+?".*

            SECURITY.* SecurityEvent="InvalidAccountID".*RemoteAddress=".+?/.+?//.+?".*

            SECURITY.* SecurityEvent="ChallengeResponseFailed".*RemoteAddress=".+?/.+?//.+?".*

            SECURITY.* SecurityEvent="InvalidPassword".*RemoteAddress=".+?/.+?//.+?".*



# Option:  ignoreregex

# Notes.:  regex to ignore. If this regex matches, the line is ignored.

# Values:  TEXT

#

ignoreregex =


Настройка изоляторов (jails) для fail2ban

Теперь нам необходимо создать описания так называемых “изоляторов” (jails) для fail2ban, т.е. “привязать” наши фильтры к fail2ban: объяснить, в каких файлах эти строки искать, и что потом делать.

Для этого откройте файл /etc/fail2ban/jail.conf

  1. Убедитесь, что нет (или не включено) других правил, связанных с asterisk! Для этого достаточно сделать поиск по файлу по имени “asterisk” (без кавычек) и убедиться, что если такие правила есть, для каждого из них свойство enabled установлено в false:

    enabled = false
  2. В случае, если версия asterisk меньше 10-й, либо Вы не хотите использовать логи security (использование логов security крайне рекомендуется), то Вам достаточно будет создать только одно правило. В противном случае Вам понадобится создать 2 правила.

Правило № 1

Это правило необходимо создать для всех версий asterisk. Вы можете создать новое правило, или модифицировать любое из уже имеющихся, но отключенных. Новое правило (поскольку в нашем примере используется fail2ban в связке с iptables) будет называться asterisk-iptables и будет применяться к файлу, в котором сохраняются все основные виды событий астериска (notice, warning, error, …). По умолчанию в астериске этот основной файл логов называется messages, но (например) в FreePBX это будет файл под названием full (как называется файл у Вас – см. настройки астериска в файле logger.conf). Итак, само правило:

# настраиваем изоляторы fail2ban для основных событий asterisk:

[asterisk-iptables]

# правило включено:

enabled  = true

# фильтр, которым будет пользоваться правило, называется asterisk 

# (название фильтра - это имя файла в каталоге /etc/fail2ban/filter.d):

filter   = asterisk

# к какому файлу (логам астериска) применять фильтр для поиска потенциально опасных событий:

logpath  = /var/log/asterisk/messages

# количество потенциально опасных событий, найденных фильтром, для срабатывания действия:

maxretry = 3

# на какой период времени (в секундах) применять действие action:

bantime = 86400

# за какой период времени (в секундах) искать в logpath потенциально опасные события:

findtime = 3600

# что делать, если фильтр обнаружил атаку (за период findtime секунд в логах logpath обнаружено

# maxretry потенциально опасных действий с одного IP адреса) - блокируем все порты 

# для этого IP и посылаем письмо для root:

action   = iptables-allports[name=ASTERISK, protocol=all]

           sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@asterisk]

# список IP адресов/подсетей, для которых все потенциально опасные события игнорируются:

ignoreip = 127.0.0.1/8


Правило № 2

Это правило будет работать только в случае, если версия asterisk – 10 или новее, а также если включено ведение логов security (см. выше). Вы также можете создать новое правило, или модифицировать любое из уже имеющихся, но отключенных. Новое правило (поскольку в нашем примере используется fail2ban в связке с iptables) будет называться asterisk-security-iptables и это правило будет использовать для анализа файл security в каталоге логов астериска:



# настраиваем изоляторы fail2ban для событий безопасности asterisk:

[asterisk-security-iptables]

# правило включено:

enabled  = true

# фильтр, которым будет пользоваться правило, называется asterisk-security 

# (название фильтра - это имя файла в каталоге /etc/fail2ban/filter.d):

filter   = asterisk-security

# к какому файлу (логам астериска) применять фильтр для поиска потенциально опасных событий:

logpath  = /var/log/asterisk/security

# количество потенциально опасных событий, найденных фильтром, для срабатывания действия:

maxretry = 3

# на какой период времени (в секундах) применять действие action:

bantime = 86400

# за какой период времени (в секундах) искать в logpath потенциально опасные события:

findtime = 3600

# что делать, если фильтр обнаружил атаку (за период findtime секунд в логах logpath обнаружено

# maxretry потенциально опасных действий с одного IP адреса) - блокируем все порты 

# для этого IP и посылаем письмо для root:

action   = iptables-allports[name=ASTERISK-security, protocol=all]

           sendmail-whois[name=ASTERISK-security, dest=root, sender=fail2ban@asterisk]

# список IP адресов/подсетей, для которых все потенциально опасные события игнорируются:

ignoreip = 127.0.0.1/8


Запуск fail2ban

Теперь необходимо запустить (или перезапустить) fail2ban и (если это необходимо, например iptables еще не был запущен) iptables.

Для запуска iptables (его нужно запустить первым) выполните следующую команду:

/etc/init.d/iptables start

Для перезапуска fail2ban выполните следующую команду:

/etc/init.d/fail2ban restart

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

fail2ban-client status asterisk-iptables

и (если есть второе правило)

fail2ban-client status asterisk-security-iptables

Для отображения списка правил iptables выполните следующую команду:

iptables -L -n

В случае, если Вы только что установили fail2ban / iptables, не забудьте убедиться, что они настроены у Вас стартовать автоматически при загрузке системы!

 

Проверка работы fail2ban

Главное в процессе проверки fail2ban – иметь под рукой другой компьютер (или локальный доступ к серверу asterisk), чтобы в случае, когда fail2ban заблокирует Ваш IP адрес, Вы смогли подключиться и удалить эту блокировку!

Необходимо обязательно проверить работу связки fail2ban + iptables, поскольку, даже если Вы все настроили (или скопировали) правильно, возможно множество комбинаций событий, в результате которых настренные Вами блокировки работать не будут.

Последовательность действий для проверки работы связки fail2ban + iptables:

  1. Убедитесь, что у Вас настроен запуск iptables и fail2ban при старте компьютера
  2. Если Вы настроили 2 правила для fail2ban, настоятельно рекомендуем проверить работу каждого из них по отдельности. Для этого отключите одно из правил (enabled = false), например asterisk-security-iptables
  3. перезагрузите компьютер и проверьте, что:

    1. службы iptables и fail2ban запущены:

      service fail2ban status

      service iptables status
    2. одно из правил включено, а другое – выключено:

      fail2ban-client status asterisk-iptables

      fail2ban-client status asterisk-security-iptables

      При этом для выключенного правила появится сообщение:

      Sorry but the jail 'asterisk-security-iptables' does not exist ,

      а для включенного – сообщение вида:

      Status for the jail: asterisk-iptables

      |- filter

      | |- File list: /var/log/asterisk/messages

      | |- Currently failed: 0

      | `- Total failed: 0

      `- action

      |- Currently banned: 0

      `- Total banned: 0

  4. Запустите SIP-клиент (обязательно не с самого сервера asterisk, а с другого компьютера!), и указав неверные данные для авторизации (IP адрес для подключения должен быть IP адресом сервера asterisk!), попробуйте авторизоваться 3 раза или более (количество авторизаций, после которых IP адрес блокируется, задается в параметре maxretry для каждого правила отдельно). В качестве тестового sip клиента можно использовать программу sipsak, которая работает из командной строки.
  5. Если Вы запустили SIP клиента с того же компьютера, с которого подключались к серверу asterisk, и если fail2ban + iptables были настроены правильно, то на данный момент Ваш IP адрес заблокирован, и Вы не можете подключиться к серверу asterisk с этого компьютера (проверьте это!). Подключитесь к asterisk с другого компьютера (или локально) и продолжайте выполнение команд.
  6. Запустите команду вида:

    fail2ban-client status asterisk-iptables

    для включенного правила, и убедитесь, что IP адрес, с которого подключался SIP клиент, находится в списке заблокированных IP (banned).
  7. Теперь по аналогии с действиями из пункта 2 разблокируйте второе правило (например asterisk-security-iptables) и заблокируйте первое (asterisk-iptables).
  8. Выполните действия с пункта 3 по пункт 6, только вместо перезагрузки компьютера (что тоже можно сделать) достаточно перезагрузить службу fail2ban. После этого сразу разблокируется IP адрес компьютера, на котором Вы запускали SIP клиент, и его можно будет (и нужно, как в пункте 4) запустить еще раз – для проверки работы второго правила. Обратите внимание, что может и не разблокировать (точнее, разблокировать и снова заблокировать) – в этом случае Вам лучше сделать паузу findtime секунд, после чего еще раз перезагрузить сервис fail2ban.
  9. После того, как Вы проверили работу обоих правил по отдельности, не забудьте обязательно включить их оба (для asterisk-iptables и для asterisk-security-iptables параметр enabled = true). После этого, разумеется, не забудьте перезагрузить сервис fail2ban.
  10. И последний пункт: если Вы выполнили предыдущие пункты достаточно быстро (в течение нескольких минут), то может оказаться, что после включения обоих правил (и последующей перезагрузки fail2ban) у Вас снова заблокируется IP адрес, с которого Вы запускали SIP клиента.

    Будьте внимательны!

 

Управление правилами fail2ban

Временное отключение блокировки IP адреса

Для этого Вам необходимо воспользоваться услугой iptables. Сначала мы выведем список правил на консоль, а затем выбрав нужные IP, удалим их из бана.

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

iptables -L -n

Вы увидите сообщение следующего вида:

Chain INPUT (policy ACCEPT)

target prot opt source destination

...

fail2ban-ASTERISK all -- 0.0.0.0/0 0.0.0.0/0

...

Chain fail2ban-ASTERISK

target prot opt source destination

DROP all -- 1.2.3.4 0.0.0.0/0

RETURN all -- 0.0.0.0/0 0.0.0.0/0

RETURN all -- 0.0.0.0/0 0.0.0.0/0

...

Нас интересует удалить из бана IP адрес 1.2.3.4, который (как мы видим) находится в цепочке правил (chain) под названием fail2ban-ASTERISK. Набираем команду:

iptables -D fail2ban-ASTERISK -s 1.2.3.4 -j DROP

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

iptables -L -n

то увидим, что IP адрес исчез из блокировки iptables (хотя и остался в блокировке fail2ban!). При этом мы снова можем подключаться к серверу asterisk

 

Постоянное отключение блокировки IP адреса

Для того, чтобы fail2ban не блокировал определенный IP адрес (или несколько IP адресов) независимо от того, сколько неудачных попыток подбора пароля (и прочих “неправомерных” действий) они совершили, необходимо произвести дополнительную настройку jails в файле /etc/fail2ban/jail.conf

В каждом правиле файла jail.conf может присутствовать параметр ignoreip, который задает список IP адресов, попадающих в “белый список” для этого правила. Поскольку правил у нас может быть два, обратите внимание, что Ваш IP необходимо прописывать в обоих правилах!

Параметр имеет следующий вид:

ignoreip = 127.0.0.1/8 192.168.0.0/16 1.2.3.4

То есть Вы можете прописывать как подсети, так и отдельные IP адреса (в данном случае в “белый список” попадают IP 127.0.0.1-127.0.0.255, 192.168.0.1-192.168.255.255 и 1.2.3.4).

Разблокировка IP адреса, с которого производилось тестирование

Во время проверки правильности настройки fail2ban Вы неоднократно запускали SIP клиента для тестирования работы по блокировке будущих атак из интернета. И в процессе последующей работы Вам, возможно, также понадобится время от времени производить действия, последствиями которых может быть блокировка со стороны fail2ban / iptables. Хотелось бы не дожидаться, когда fail2ban “соизволит” разблокировать IP сам (а это может быть довольно долго – поскольку параметр bantime можно выставить хоть на час, хоть на день, хоть на год).

Существуют 2 пути решения подобной проблемы:

  1. Внести IP адрес в правилах fail2ban в список ignoreip. Но иногда это может быть нежелательно (чтобы, например, производить периодическое тестирование работы fail2ban)
  2. Обычно время findtime (это длительность интервала в секундах, за которое событие [атака, подбор пароля] должно повториться maxretry раз, после чего бан вступит в силу) намного меньше, чем bantime (это время бана в секундах, по истечении которого IP адрес удаляется из списка заблокированных). Например, findtime выставляется в 10 минут, а bantime – час. Либо findtime – час, а bantime – день или даже больше. И так далее. Поэтому имеет смысл сделать паузу длительностью не менее, чем findtime с момента последнего тестирования (и забанивания Вашего IP адреса), после чего перезагрузить сервис fail2ban. При перезагрузке сервиса fail2ban все блокировки аннулируются. Однако при последующей загрузке fail2ban логи анализируются снова, и если в логах в течение findtime было maxretry неудачных попыток подключения с одного IP, этот IP будет снова забанен сразу после запуска fail2ban.

Тестирование конфигурации fail2ban

Вы можете проверить, как будет применяться фильтр fail2ban к тому или иному логу. Для этого можно запустить команду:

fail2ban-regex /var/log/asterisk/messages /etc/fail2ban/filter.d/asterisk.conf

Где /var/log/asterisk/messages – это пример пути к файлу с логами, который будет фильтроваться, а /etc/fail2ban/filter.d/asterisk.conf – сам фильтр, который содержит те фрагменты [сообщения об ошибках], которые должны быть в логе [чтобы забанить IP адреса атакующих].

 

И напоследок: вместо перезагрузки fail2ban с помощью service fail2ban restart можно выполнить следующую команду fail2ban-client reload



2018-11-01T10:11:28
Asterisk

Настройка iptables для работы asterisk

Asterisk CentOS iptables

iptables для asterisk

Iptables – это брандмауэр, который защищает компьютер от несанкционированных подключений (как от входящих подключений извне, так и несанкционированных подключений вовне с самого компьютера). Для астериска iptables дает возможность отключить подсети, из которых не должно быть подключений к asterisk, а также в связке с fail2ban iptables может закрыть сервер от подбора паролей к серверу (в частности, отключать тех, кто пытается подобрать пароли клиентов asterisk). Читать

Как узнать скорость интернета Beeline и что делать, если она снизилась

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

Читать

Для чего предназначен SNMP: руководство по NMS, MIB, OID, ловушкам и агентам

SNMP (Simple Network Management Protocol) представляет собой коммуникационный протокол, который позволяет отслеживать управляемые сетевые устройства, включая маршрутизаторы, коммутаторы, серверы, принтеры и другие устройства, которые включены через IP через единую систему управления / программное обеспечение.

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

Что делает SNMP?

  • Мониторинг входящего и исходящего трафика, проходящего через устройство
  • Раннее обнаружение сбоев в сетевых устройствах вместе с предупреждениями / уведомлениями
  • Анализ данных, собранных с устройств в течение длительных периодов времени для выявления узких мест и проблем с производительностью
  • Возможность удаленного конфигурирования совместимых устройств
  • Доступ и управление устройствами удаленно, которые подключаются через SNMP

Менеджер (NMS)

Компонент Manager — это просто часть программного обеспечения, которое установлено на компьютере (которое при объединении называется Network Management System), которое проверяет устройства в вашей сети, как часто вы указываете информацию.

Менеджер имеет правильные учетные данные для доступа к информации, хранящейся агентами (что объясняется в следующем разделе), а затем компилирует их в читаемом формате для сетевого инженера или администратора для мониторинга или диагностики проблем или узких мест. Некоторые программные пакеты NMS более сложны, чем другие, что позволяет настраивать сообщения электронной почты или SMS, чтобы предупредить вас о неисправных устройствах в вашей сети, в то время как другие просто опросили устройства для получения более общей информации.

Агенты

SNMP Agent — это часть программного обеспечения, которое поставляется вместе с сетевым устройством (маршрутизатором, коммутатором, сервером, Wi-Fi и т. Д.), Которое при включении и настройке выполняет всю тяжелую работу для Менеджера путем компиляции и хранения всех данных из своего данное устройство в базу данных (MIB).

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

Какие номера портов используют SNMP?

Менеджер программного обеспечения в предыдущем разделе регулярно проверяет агентов через порт UDP 161 .

Ловушки SNMP, о которых вы будете читать дальше, позволяют агенту отправлять информацию о системе и устройстве менеджеру через порт UDP 162 . Хотя UDP является общим протоколом, используемым SNMP, TCP также может использоваться.

Управляемые сетевые устройства

Управляемые сетевые устройства, в том числе маршрутизаторы, коммутаторы, Wi-Fi, серверы (Windows и другие), настольные ПК, ноутбуки, принтеры, UPS и т. Д., Имеют встроенное в них программное обеспечение агента, которое должно быть либо включено, либо настроено, либо просто настроено правильно для того, чтобы быть опрошены NMS.

MIB

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

Агенты, как объяснялось выше, поддерживают организованную базу данных параметров устройства, настроек и т.д. Система NMS (Network Management system) опроса / запроса агента данного устройства, которая затем делится своей организованной информацией из базы данных, сделанной с помощью NMS, которая затем переводит ее в предупреждения, отчеты, графики и т. Д. База данных, которую Агент разделяет между Агентом, называется Информационной базой управления или MIB .

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

Чтобы упростить MIB, подумайте об этом так: MIB-файлы — это набор Вопросов, которые Менеджер может спросить у агента. Агент просто собирает эти вопросы и сохраняет их локально и обслуживает их по NMS по запросу.

Упрощенный пример работы MIB: NMS спросит у сетевого устройства вопрос, в данном случае, что такое ответ на вопрос 2?

Агент управляемых сетевых устройств затем отвечает с ответом на вопрос 2. Чтобы еще больше разбить это, давайте построим еще один пример.

Скажем, мы хотим знать системное время работы устройства.

NMS отправит запрос агенту, запрашивающему Системное время, — запрос отправляется как номер с MIB и объектом интереса, а также что-то, называемое экземпляром .

OID = 1.3.6.1.2.1.1.3.0

Распределение номера OID






MIBОбъект интересаПример
1.3.6.1.2.1.130
MIBОбъект SysUptimeОбразец

Первые 2 части числа, отправленные агенту (MIB и объект интереса, который в этом случае является системным временем), называются идентификатором объекта или OID . Как упоминалось выше, MIB являются стандартными значениями, которые система сетевого управления уже знает и может опросить / запросить сетевые устройства для получения информации.

OID

OID, Object Identifier — это просто номер, составленный MIB, объектом интереса и экземпляром. Каждый идентификатор является уникальным для устройства, и при запросе будет предоставлена ​​информация о том, что было запрошено OID.

Существует два типа OID:

  • скаляр
  • табличный

Скаляр — это экземпляр одного объекта — например, имя поставщика устройства. Может быть только одно имя поставщика, так что это будет скалярный OID.

С другой стороны, Tabular может иметь несколько результатов для своего OID — например, процессор Quad Core приведет к 4 различным значениям ЦП.

Ловушки

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

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

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

Версии (v1, v2c, v3)

Этот протокол прошел несколько пересмотров на протяжении многих лет, начиная с 1988 года, начиная с версии 1. Теперь мы до версии 3, но большинство систем управления сетью поддерживают все версии протокола.

Версия 1

Версия 1 была первой версией протокола, определенного в RFC 1155 и 1157. Эта версия является самой простой из 3-х версий протокола и является самой небезопасной из-за ее простой текстовой аутентификации.

Версия 2 (или 2c)

Версия 2 протокола была введена в 1993 году с большими улучшениями по сравнению с первой версией, включая транспортные сопоставления, элементы структуры MIB и, что самое важное, улучшенные обновления для проверки подлинности и безопасности.

Тем не менее, версии 1 и 2 / 2c имели встроенные риски безопасности, как упоминалось выше, — строки сообщества, которые эквивалентны паролям, где передается по проводу в виде прозрачного / обычного текста, позволяя любому, кто нюхает сеть, получить доступ к строке и могут компрометировать сетевые устройства и, возможно, перенастроить их с помощью SNMP.

Версия 3

Версия 3 протокола, дебютировавшая в 1998 году, сделала большие шаги для обеспечения безопасности набора протоколов, реализовав так называемую «пользовательскую безопасность». Эта функция безопасности позволяет вам устанавливать аутентификацию на основе требований пользователя. 3 уровня аутентификации:

  • NoAuthNoPriv: пользователи, которые используют этот режим / уровень, не имеют аутентификации и не имеют конфиденциальности при отправке / получении сообщений.
  • AuthNoPriv: этот уровень требует от пользователя аутентификации, но не будет шифрования отправленных / полученных сообщений.
  • AuthPriv: Наконец, самый безопасный уровень, в котором требуется аутентификация, и отправленные / полученные сообщения зашифрованы.

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



2018-10-30T13:14:02
Вопросы читателей