Архив метки: Linux

Топ 5 лучших дистрибутивов Linux за прошедший 2021 год



























3.5/5 — (2 голоса)

Пришло время подводить итоги, ведь год подходит к концу. В мире Linux произошло немало по-настоящему великих и интересных релизов, некоторые дистрибутивы получили новые версии, другие сменили вектор развития, а третьи и вовсе занялись разработкой новой концепции своих продуктов. Свершений много, а уследить за всеми задача трудная, и возможно даже для кого-то непостижимая. Однако здесь и сейчас мы собрали для вас топ 5 лучших дистрибутивов Linux за 2021 год по версии GitJournal. Естественно наше мнение сугубо субъективное, и не претендует на истину в последней инстанции, но тем не менее, если вы хотите что-то добавить или опровергнуть – пишите об этом в комментариях. Вы также можете ознакомиться с десяткой лучших Linux-дистрибутивов для домашнего пользования и топом лучших дистрибутивов Linux 2018.

А перед тем, как мы начнем, хочется отметить, что представленные здесь дистрибутивы Linux являют собой лишь малую долю из всех достойных на данном поприще. Мы выбирали исходя из соображений юзабельности, популярности и количества положительных отзывов о том или ином продукте. Иными словами, по нашему мнению, следующий топ 5 лучших дистрибутивов будет отражать наиболее значимые версии известной операционной системы, которые лучше всего подходят для установки и использования. Возможно вам также будет интересен рейтинг из 5 лучших графических оболочек Linux 2021.

Лучшие дистрибутивы Linux 2021года

Manjaro Linux

Топ 5 лучших дистрибутивов Linux 2017 Manjaro Linux

Кто бы что ни говорил, но данный дистрибутив уверенно вырывается на первые места Distowatch`a. За 2017 год Manjaro достаточно быстро прыгнул на 3-е место, и возможно, в 2018 он станет лидером данного рейтинга.

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

Официально Manjaro Linux поставляется с тремя графическими оболочками. Это быстрый XFCE, красивый и многофункциональный KDE, а также элегантный и изысканный GNOME. Но вы, также, можете воспользоваться версиями от сообщества, которые на данный момент включают в себя следующие графические оболочки: Mate, LXDE, LXQT, Cinnamon, Budgie, DDE. Есть еще сборка с тайловым оконным менеджером i3, но это для особых ценителей.

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

Загрузить Manjaro Linux

Linux Mint

Лучшие дистрибутивы Linux 2017 Mint Cinnamon

Во все том же рейтинге Distrowarch Linux Mint уже который год занимает первое место. Но это далеко не единственная причина, почему данный дистрибутив попадает наш топ 5.

Mint является производной от Ubuntu версией GNU/Linux (более точная формулировка, нежели просто Linux), специализирующейся на предоставлении пользователям удобной и эффективной операционной системы. Система отличается легкой установкой со всеми необходимыми компонентами “из коробки”. То есть сразу после инсталяции компьютер будет готов к работе.

Разработчики используют и поддерживают собственную графическую оболочку Cinnamon, однако Linux Mint выпускается и в других редакциях. К примеру, вы можете использовать версии с XFCE, KDE и MATE. Возможно есть версии и с другими оболочками, но они уже разрабатываются и поддерживаются сообществом.

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

Для получения остальной информации вы можете перейти на официальный ресурс Linux Mint, а также в блог разработчиков. Там, помимо всего прочего, вы найдете анонсы к релизам и ченджлоги. А чтобы перейти на страницу загрузки нажмите на эту кнопку:

Загрузить Linux Mint

Ubuntu

Топ 5 лучших дистрибутивов Linux 2017 Ubuntu

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

2017 год стал переломным для Ubuntu. Не далее, как два месяца назад вышел Ubuntu 17.10. Дистрибутив, который использует GNOME в качестве графической оболочки по-умолчанию. Canonical решили отказаться от Unity, что стало достаточно болезненным актом для огромного количества фанатов. Но так ли все плохо? Да, теперь Unity не будет использоваться в качестве стандартной оболочки, но версия с любимой средой будет по-прежнему доступна.

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

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

Ознакомиться с этой системой более подробно вы можете на официальном русскоязычном сайте. Также вы можете прочитать статью: “Как установить Ubuntu 16.04 LTS”. А красивая оранжевая кнопочка ниже отправит вас напрямую на страницу загрузки:

Загрузить Ubuntu

Arch Linux

Топ 5 лучших дистрибутивов Linux 2017 Arch Linux

Начать, пожалуй, стоит с того, что этот дистрибутив точно не для новичков. Arch Linux не является “user-friendly”, и у многих могут возникнуть сложности с его установкой и настройкой. Однако если вы все же сможете сделать это, в качестве награды за труды вы получите стабильную, практически неубиваемую систему для дома и работы.

Как уже было сказано, установка Arch достаточно сложна. Стоит помнить, что она воспроизводится с помощью консольных команд и конфигов, которые вы будете редактировать на протяжении инсталяции. Естественно все эти команды, их последовательность и нюансы доступны в официальной документации. Она, кстати говоря, есть даже на русском языке. В Installation guide вы сможете найти ответы на все возникающие вопросы. Там буквально по пунктам расписан процесс установки и настройки, следуя которым, вы непременно придете к результату. Однако стоит сказать, что сначала вам следует попробовать установить эту систему на виртуальную машину, и только потом уже на реальную. Так, по крайней мере, вы не потеряете время на восстановление своего ПК, в случае, если где-то ошибетесь.

Философия Arch Linux подразумевает, что пользователь должен самостоятельно контролировать работу своего ПК. Это значит, что логически использование системы должно быть труднее. Но как бы не так. Используя этот дистрибутив, вы очень быстро освоите азы администрирования Linux. Вы выучите необходимые команды, научитесь работать с терминалом и настройками, и, в принципе, будете готовы к любым сюрпризам. И хоть все сначала выглядит сложным и непонятным, в скором времени вы начнете понимать, как работает ваша система.

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

Более подробную информацию вы можете найти на официальном ресурсе, а также в Arch wiki. На страницу загрузки ведет вот эта кнопка:

Загрузить Arch Linux

Solus

5 лучших дистрибутивов Linux 2017 Solus

Solus – дистрибутив ирландского происхождения, развивающий собственную графическую оболочку Budgie. Он не является чьим-либо форком, и создан с нуля. В качестве менеджера пакетов он использует ответвление PiSi.

Данная система практически ни в чем не уступает гигантам индустрии, и занимает аж 6-е место в рейтинге Distrowatch. За 2017 год дистрибутив также весьма успешно продвинулся вперед в рейтинге, обретая вполне заслуженную популярность. Многие пользователи избрали его в качестве операционной системы по-умолчанию, заявляя об удобстве и скорости работы. Так ли это или же нет вам предстоит проверить самостоятельно, но уверяю, опыт будет действительно интересный.

Помимо основной версии (с Budgie), есть дистрибутивы с MATE и GNOME. Последнюю пользователи хвалят особенно сильно, считая ее наиболее стабильной и удобной, по сравнению с основной версией.

Обо всем остальном вы можете узнать из официальных источников.

В заключение

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


2018-12-23T16:02:40
Linux

Arch-Audit: инструмент проверки уязвимых пакетов в Arch Linux

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

Это одна из обычных задач администратора Linux для исправления системы один раз в месяц или максимум 90 дней. Читать

История создания Linux

Операционная система GNU/Linux появилась благодаря стечению обстоятельств. Вы узнаете о том, с чего всё начиналось и какую роль в этом сыграл неисправный принтер. Это история Ричарда Столлмана и Линуса Торвальдса.

Столлман задал вектор развития программного обеспечения и пракически закончил работу над операционной системой, подготовив необходимые системные утилиты. А Торвальдс добавил недостающее — ядро Linux.

Читать

Настройка 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). Читать

Отключение IPv6 в дистрибутивах Linux

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

Поскольку некоторые аппаратные средства не используют IPv6 (и большинство админов все еще работают с IPv4), временным и простым решением является отключить IPv6; протокол может быть повторно включен, когда придет время, когда проблема была окончательно решена.

Если у вас есть аппаратное обеспечение, которое отлично реализует IPv6 и программное обеспечение, которое его использует правильно, это не проблема. Но если у вас проблемы с сетью на серверах Linux или настольных компьютерах, и вы исчерпали все возможные области, вы можете попробовать отключить v6 сетевого протокола.

У меня было несколько случаев, когда связь между рабочим столом Linux и маршрутизатором ATT UVERSE постоянно снижалась, а отключение IPv6 было единственным решением, которое сработало. Через некоторое время я снова включил IPv6, чтобы проверить, разрешило ли обновление прошивки маршрутизатора (и обновление ОС настольного компьютера); в некоторых случаях он решил проблему, и IPv6 мог оставаться включенным, хотя в других случаях IPv6 пришлось бы отключить снова.

Я покажу вам, как отключить IPv6 на машине Linux. ( Примечание. Я рекомендую отключить IPv6 только тогда, когда вы исчерпали все остальные параметры. Также вы должны рассмотреть это временное исправление.)

Командная строка

Вы догадались, мы будем работать с командной строкой. Я покажу вам, как отключить IPv6 в дистрибутивах Red Hat и Debian.

Вот как отключить протокол в системе на основе Red Hat:

  1. Откройте окно терминала.
  2. Перейдите к пользователю root.
  3. Выполните команду sysctl -w net.ipv6.conf.all.disable_ipv6 = 1
  4. Выполните команду sysctl -w net.ipv6.conf.default.disable_ipv6 = 1

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

sysctl -w net.ipv6.conf.all.disable_ipv6 = 0



sysctl -w net.ipv6.conf.default.disable_ipv6 = 0

Вот как отключить протокол на машине на базе Debian.

  1. Откройте окно терминала.
  2. Выполните команду sudo nano /etc/sysctl.conf
  3. Добавьте в нижнюю часть файла следующее:
    net.ipv6.conf.all.disable_ipv6 = 1

    

    net.ipv6.conf.default.disable_ipv6 = 1

    

    net.ipv6.conf.lo.disable_ipv6 = 1

  4. Сохраните и закройте файл.
  5. Перезагрузите компьютер.

Чтобы снова включить IPv6, удалите указанные выше строки из /etc/sysctl.conf и перезагрузите компьютер.

Предостережения

Если вы используете X Forwarding через ssh, отключение IPv6 может привести к поломке этой системы. Чтобы исправить эту проблему, вы должны открыть файл /etc/ssh/sshd_config и изменить #AddressFamily на любой адрес AddressFamily inet. Сохраните этот файл и перезапустите sshd.

Если вы используете Postfix, вы можете столкнуться с проблемами при запуске службы. Чтобы исправить это, вам придется использовать IPv4. Откройте файл /etc/postfix/main.cf, закомментируйте строку localhost и добавьте петлю IPv4 следующим образом:

#inet_interfaces = localhost



inet_interfaces = 127.0.0.1

Это не идеальное решение, но иногда вам приходится проявлять творческий подход к устранению неполадок. Если вы столкнулись с нечетными сетевыми ошибками с серверами Linux и рабочими столами, попробуйте отключить IPv6, чтобы помочь вам в устранении неполадок или предоставить временное исправление.

Как отключить IPv6 через GRUB

Недавно я попал в ситуацию, когда все мои виртуальные машины не смогли добраться до WAN. После некоторого устранения неполадок я обнаружил, что по какой-то причине обновление маршрутизатора в моей сети вызывает отказ. Проблема возникла из-за неправильно настроенной проблемы с IPv6 в прошивке сетевого оборудования. Но что мне делать? Подождите, пока провайдер отправит обновление, чтобы исправить проблему? Нет. Вместо этого я отключил IPv6 на своих виртуальных машинах. В противном случае они будут нефункциональными до тех пор, пока провайдер не вытолкнет обновление, которое, зная провайдера, может занять слишком много времени. Однако у меня были разные дистрибутивы Linux как виртуальные машины, а это означало, что я должен был заботиться о каждой виртуальной машине, используя другой метод.

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

Этот файл является /etc/default/grub. Откройте этот файл в своем любимом текстовом редакторе (например, с помощью команды sudo nano /etc/default/grub). Внутри этого файла вы увидите две строки:

GRUB_CMDLINE_LINUX_DEFAULT=""

GRUB_CMDLINE_LINUX=""

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

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Запись «quiet splash» приводит к отключению всех видов информации при отображении на экране при загрузке.

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

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

GRUB_CMDLINE_LINUX="ipv6.disable=1"

Или:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

GRUB_CMDLINE_LINUX="ipv6.disable=1"

Сохраните и закройте этот файл.

Обновление GRUB

Теперь мы должны обновить загрузчик GRUB, иначе система не заметит изменений. Вернитесь в окно терминала и выполните следующую команду:

sudo update-grub

После завершения этой команды перезагрузите компьютер (или виртуальную машину), а IPv6 будет отключен во время процесса загрузки. Если у вас возникли проблемы с сетью, из-за плохо настроенного IPv6 на маршрутизаторе ваша машина Linux больше не будет иметь проблем с получением глобальной сети.

К сожалению, некоторые провайдеры не выяснили, как настроить IPv6, чтобы он не вызывал проблем с определенными операционными системами. Если вы попадаете в эту категорию, вы можете обнаружить, что единственным решением является отключение IPv6, пока указанный поставщик не подталкивает обновление, которое устраняет проблему, которую они создали. Когда IPv6 работает, вы можете просто отменить этот процесс (удалите ipv6.disable = 1 записей), перезапустить sudo update-grub и перезагрузить.



2018-10-29T10:38:18
Вопросы читателей