К счастью, существует множество программ безопасности, которые позволяют предотвратить атаки методом перебора. Одной из них является программа Fail2ban в Linux.
Fail2ban – это бесплатное программное средство предотвращения вторжений с открытым исходным кодом, позволяющее защитить Linux-серверы от атак методом «грубой силы». Он работает на основе мониторинга системных журналов на предмет неудачных попыток входа в систему. Если Fail2Ban обнаруживает большое количество неудачных попыток входа в систему с одного IP-адреса, он автоматически блокирует этот IP-адрес на определенное время. Это не позволит злоумышленнику продолжить атаку.
Fail2ban – очень универсальный инструмент, который можно использовать для защиты широкого спектра сервисов, включая SSH, HTTP и FTP. Кроме того, он очень прост в установке и настройке.
После установки Fail2ban можно просто указать сервисы, которые необходимо защитить, и количество неудачных попыток входа, которые приведут к запрету.
Fail2ban – ценный инструмент для любого администратора Linux, желающего повысить безопасность своих серверов. Это простой и эффективный способ защиты от атак «грубой силы «, которые являются одной из наиболее распространенных угроз для Linux-серверов.
Fail2ban написан на Python и его исходный код свободно доступен на GitHub. Он может работать на любом дистрибутиве Linux, macOS и BSD* системах.
Сначала обновите индекс пакетов в вашей системе, выполнив следующую команду:
sudo apt update
Затем установите fail2ban, выполнив следующую команду:
sudo apt install fail2ban
После завершения установки перейдите в каталог конфигурации, выполнив следующую команду:
cd /etc/fail2ban/
В этом каталоге находится основной файл конфигурации fail2ban с именем «jail.conf
«. Однако рекомендуется сделать копию конфигурационного файла и использовать ее вместо модификации исходного файла.
Для этого выполните:
sudo cp jail.conf jail.local
Откройте скопированный конфигурационный файл в удобном для вас текстовом редакторе.:
sudo nano jail.local
В этом файле можно настроить параметры различных служб, таких как SSH, Apache и др. Например, чтобы настроить защиту SSH, найдите раздел [sshd]
и внесите следующие изменения:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 1800 ignoreip = 127.0.0.1/8
Эта конфигурация добавляет в Fail2ban секцию с именем «[sshd]» для защиты службы SSH (Secure Shell). Давайте разберем каждую часть:
enabled = true
: Эта строка указывает на то, что «sshd» включена, т.е. она активна и будет отслеживать попытки несанкционированного доступа.port = ssh
: Здесь указывается номер порта (по умолчанию 22), на котором работает служба SSH. Fail2ban будет отслеживать этот порт на предмет подозрительной активности. Если у Вас изменено порт SSH, то стоит поменять это значение.filter = sshd
: Здесь указывается имя фильтра, который должен применяться для мониторинга службы SSH. Правила фильтра определяют, какие события необходимо отслеживать и как обнаруживать вредоносное поведение.logpath = /var/log/auth.log
: Здесь указывается путь к файлу журнала (/var/log/auth.log
), в который записываются события, связанные с аутентификацией для SSH. Fail2ban будет проверять этот файл журнала на наличие признаков попыток несанкционированного доступа.maxretry = 3
: Здесь задается максимальное число допустимых неудачных попыток входа в систему, после которых Fail2ban начнет действовать. Если с одного и того же IP-адреса будет предпринято три или более последовательных неудачных попыток, Fail2ban отреагирует.bantime = 1800
: Здесь задается продолжительность в секундах, на которую будет запрещен IP-адрес, если он превысит максимальное количество неудачных попыток. В данном случае запрет длится 1800 секунд (30 минут).ignoreip = 127.0.0.1/8
: В этой строке перечислены IP-адреса или диапазоны IP-адресов, которые должны игнорироваться Fail2ban. Любые попытки с этих IP-адресов не будут учитываться при определении максимального количества повторных попыток. Здесь игнорируется localhost (127.0.0.1). Эта настройка является важной. Она предотвращает блокировку вашего собственного IP-адреса.В заключение, эта конфигурация Fail2ban jail под названием «[sshd]» контролирует службу SSH на стандартном порту 22. Она использует фильтр «sshd
« для анализа событий аутентификации, записанных в файл /var/log/auth.log
. Если IP-адрес не смог войти в систему три или более раз, он будет заблокирован на 30 минут. Кроме того, localhost игнорируется и не вызывает запретов. Такая конфигурация позволяет защитить службу SSH от атак грубой силы, временно запрещая IP-адреса, демонстрирующие подозрительное поведение.
В этом примере мы показали, как защитить SSH от атак грубой силы. Однако вы можете настроить Fail2ban и для защиты других служб, например FTP Apache и т.д.
Измените указанные значения в соответствии с вашими требованиями. После изменения настроек сохраните изменения и закройте файл, нажав клавишу CTRL + O, а затем CTRL + X.
Внимание: Вы также можете настроить отдельные секции в каталоге jail.d
, создав для каждой секции отдельные файлы .conf
. Это позволяет настраивать параметры для различных служб или сценариев.
Перезапустите fail2ban для применения новых настроек, выполнив следующую команду:
sudo systemctl restart fail2ban
Для того чтобы fail2ban запускался автоматически при загрузке, включите его, выполнив следующую команду:
sudo systemctl enable fail2ban
Вот и все! Теперь Fail2ban установлен и настроен в вашей системе Debian.
Чтобы отобразить все включённые джейлы, выполните:
sudo fail2ban-client status
Пример вывода:
Status |- Number of jail: 1 "- Jail list: sshd
Для тех, кому интересно, команда fail2ban-client
используется для взаимодействия с Fail2ban и управления им. Она позволяет администраторам контролировать и отслеживать службу Fail2ban и ее правила, которые отслеживают и блокируют вредоносную активность.
С помощью fail2ban-client
можно выполнять такие задачи, как перезагрузка конфигурации, проверка состояния, перезапуск службы, запрет или снятие запрета с IP-адресов и т.д.
Если вы хотите отобразить состояние конкретной секции, например sshd
, выполните:
sudo fail2ban-client status sshd
Вывод показывает подробную информацию о состоянии «sshd» в Fail2ban. В нем содержатся сведения о неудачных попытках, контролируемом лог-файле и запрещенных IP-адресах.
Status for the jail: sshd |- Filter |- Currently failed: 0 |- Total failed: 0 "- File list: /var/log/auth.log "- Actions |- Currently banned: 0 |- Total banned: 0 "- Banned IP list:
Ниже приведено описание того, что означает каждая часть в приведенном выше выводе.
Status for the jail: sshd
: Этот заголовок указывает на то, что следующая информация относится к джейлу «sshd».Filter
: Этот раздел содержит информацию, относящуюся к правилам фильтрации, которые определяют, какие события отслеживаются и какие действия предпринимаются.Currently failed
: Эта строка указывает на то, что в настоящее время джейл «sshd» отслеживает 0 неудачных попыток.Total failed
: Эта строка указывает на то, что всего было зафиксировано 0 неудачных попыток для джейла «sshd».File list: /var/log/auth.log
: Эта строка указывает на файл журнала (/var/log/auth.log), который джейл «sshd» отслеживает на предмет событий, связанных с аутентификацией.Actions
: В этом разделе содержится информация о действиях, которые Fail2ban предпринимает при обнаружении вредоносного поведения.Currently banned
: Эта строка указывает на то, что в настоящее время существует 0 IP-адресов, запрещенных джейлом «sshd».Total banned
: Эта строка показывает, что с момента запуска джейла «sshd» было запрещено 0 IP-адресов.Banned IP list:
Эта строка показывает, что в настоящее время нет IP-адресов, запрещенных джейлом «sshd».Fail2ban работает, отслеживая лог-файлы и обнаруживая неудачные попытки входа в систему, а затем запрещая IP-адреса нарушителей.
После установки и настройки fail2ban можно протестировать его, чтобы убедиться в правильности работы. Для этого попробуйте несколько раз подряд войти на ваш сервер Fail2ban, используя неправильный пароль. После нескольких неудачных попыток fail2ban должен автоматически заблокировать ваш IP-адрес.
Вы можете посмотреть запрещенные IP-адреса, отобразив статус sshd jail на вашем сервере.
sudo fail2ban-client status sshd
Пример вывода:
Status for the jail: sshd |- Filter |- Currently failed: 0 |- Total failed: 0 "- File list: /var/log/auth.log "- Actions |- Currently banned: 1 |- Total banned: 1 "- Banned IP list: 192.168.1.101
Как видно, IP-адрес 192.168.1.101 запрещен в sshd jail после неоднократных попыток неправильного входа по SSH. Согласно моей конфигурации, этот IP-адрес будет заблокирован на 30 минут. Вы, конечно, можете увеличить или уменьшить это время по своему усмотрению.
Чтобы вручную запретить или разблокировать IP-адрес с помощью Fail2ban, можно воспользоваться командой fail2ban-client
. Вот как это можно сделать:
Вы можете запретить IP-адрес с помощью следующей команды:
sudo fail2ban-client set <jail-name> banip <ip-address>
Замените <jail-name>
на имя конкретного джейла, к которому вы хотите применить запрет (например, «sshd» для SSH), а <ip-address>
– IP-адрес, который нужно запретить.
Например, чтобы вручную запретить IP-адрес «192.168.1.101» в «sshd», можно использовать:
sudo fail2ban-client set sshd banip 192.168.1.101
Если вы хотите запретить определенный IP-адрес на определенный срок, используйте следующую команду:
sudo fail2ban-client set <jail-name> bantime <time_in_seconds> --banip <ip_address>
Замените <jail-name>
на имя, <time_in_seconds>
на желаемую продолжительность запрета в секундах, а <ip_address>
на IP-адрес, который вы хотите запретить.
Проверить список запрещенных IP-адресов можно с помощью команды fail2ban-client
с флагом «get
«, как показано ниже:
sudo fail2ban-client get sshd banned
Для получения дополнительных опций и примеров использования просмотрите раздел справки, выполнив следующую команду:
fail2ban-client --help
Иногда требуется удалить заблокированный IP-адрес из определенного джейла.
Чтобы вручную разблокировать (снять запрет) IP-адрес, можно воспользоваться следующей командой:
sudo fail2ban-client set <jail-name> unbanip <ip-address>
Замените <jail-name>
на имя джейла (например, «Например, чтобы вручную снять запрет с IP-адреса «192.168.1.101» в «sshd», нужно использовать:
sudo fail2ban-client set sshd unbanip 192.168.1.101
Помните, что запрет или снятие запрета с IP-адреса вручную может отменить нормальное поведение Fail2ban, поэтому используйте эти команды осторожно и только в случае необходимости.
В Fail2ban предусмотрена возможность включения функции «Увеличение времени бана», которая позволяет автоматически увеличивать продолжительность бана для повторных нарушителей. Это может стать мощным сдерживающим фактором для настойчивых злоумышленников.
Откройте файл конфигурации с помощью удобного текстового редактора:
sudo nano /etc/fail2ban/jail.local
Внутри файла конфигурации найдите и откомментируйте строки, связанные с параметрами bantime.increment
и bantime.factor
.
... bantime.increment = true bantime.factor = 2 bantime.formula = ban.Time * (1<<(ban.Count if ban.Count<20 else 20)) * banFactor ...
В данном примере параметр bantime.increment
включен (true
), а параметр bantime.factor
установлен на 2. Это означает, что время бана будет удваиваться для каждого последующего бана.
После внесения изменений сохраните конфигурационный файл и закройте текстовый редактор.
Для применения изменений перезапустите службу Fail2ban:
sudo systemctl restart fail2ban
При такой конфигурации Fail2ban будет автоматически увеличивать время бана для повторных нарушителей, основываясь на указанной логике. Эта функция может быть эффективна для борьбы с постоянными злоумышленниками, поскольку при каждом последующем нарушении срок бана будет увеличиваться. Настройте параметр bantime.factor
в соответствии с желаемым уровнем увеличения.
Не забудьте тщательно протестировать конфигурацию, чтобы убедиться в ее соответствии целям и требованиям безопасности.
Белый список IP-адресов – это разрешение определенным IP-адресам обходить запрещающие механизмы Fail2ban. Это полезно для предотвращения случайных запретов IP-адресов, которым вы доверяете, например, собственного IP-адреса или IP-адресов доверенных служб.
Откройте конфигурационный файл fail2ban с помощью текстового редактора:
sudo nano /etc/fail2ban/jail.local
Найдите строку ignoreip
. Откомментируйте ее, удалив #
в начале строки, если она закомментирована. Затем добавьте IP-адреса, которые вы хотите внести в белый список, разделяя их пробелами или запятыми.
ignoreip = 127.0.0.1/8 192.168.1.123 ...
В данном примере в белый список внесен IP-адрес 192.168.1.123
. Вы можете добавить другие IP-адреса или диапазоны IP-адресов в том же формате.
После внесения изменений сохраните конфигурационный файл и закройте текстовый редактор.
Для применения изменений перезапустите службу Fail2ban:
sudo systemctl restart fail2ban
При такой настройке на IP-адрес, внесенный в белый список, не будут распространяться запрещающие правила Fail2ban. Важно вносить в белый список только те IP-адреса, которым вы доверяете, так как в противном случае это может подорвать преимущества Fail2ban с точки зрения сетевой безопасности.
После того как fail2ban настроен, необходимо следить за его работой, чтобы убедиться в ее правильности. Вы можете проверить журналы fail2ban, чтобы убедиться, что он обнаруживает и блокирует подозрительную активность.
sudo tail /var/log/fail2ban.log
2023-09-04 13:04:44,614 fail2ban.filter [2087]: INFO [sshd] Found 192.168.1.101 - 2023-09-04 13:04:39 2023-09-04 13:04:46,216 fail2ban.filter [2087]: INFO [sshd] Found 192.168.1.101 - 2023-09-04 13:04:46 2023-09-04 13:04:52,122 fail2ban.filter [2087]: INFO [sshd] Found 192.168.1.101 - 2023-09-04 13:04:51 2023-09-04 13:04:52,417 fail2ban.actions [2087]: NOTICE [sshd] Ban 192.168.1.101 2023-09-04 13:34:51,119 fail2ban.actions [2087]: NOTICE [sshd] Unban 192.168.1.101 2023-09-04 13:37:05,961 fail2ban.filter [2087]: INFO [sshd] Found 192.168.1.101 - 2023-09-04 13:37:05 2023-09-04 13:37:09,422 fail2ban.filter [2087]: INFO [sshd] Found 192.168.1.101 - 2023-09-04 13:37:09 2023-09-04 13:37:15,328 fail2ban.filter [2087]: INFO [sshd] Found 192.168.1.101 - 2023-09-04 13:37:14 2023-09-04 13:37:15,372 fail2ban.actions [2087]: NOTICE [sshd] Ban 192.168.1.101 2023-09-04 13:50:16,214 fail2ban.actions [2087]: NOTICE [sshd] Unban 192.168.1.101
Если вы хотите отслеживать журналы fail2ban в режиме реального времени, просто добавьте флаг -f
.
sudo tail -f /var/log/fail2ban.log
Вы также используете команду grep
для поиска определенных деталей в файлах журнала fail2ban, например IP-адресов, пользователей-агентов или сообщений об ошибках. Например, для поиска и фильтрации результатов, содержащих IP-адрес, можно использовать:
grep "192.168.1.101" /var/log/fail2ban.log
Аналогичным образом можно отфильтровать журналы, содержащие определенный пользовательский агент (например, Bing):
grep "Bing" /var/log/fail2ban.log
Фильтр записей журнала, содержащих сообщения об ошибках.
grep "error" /var/log/fail2ban.log
Вы также можете найти запрещенные или незапрещенные IP-адреса по дате и времени.
Чтобы найти запрещенные IP-адреса вместе с соответствующей датой и временем, вы можете использовать следующую команду:
sudo grep 'Ban' /var/log/fail2ban.log 2023-09-04 13:04:52,417 fail2ban.actions [2087]: NOTICE [sshd] Ban 192.168.1.101 2023-09-04 13:37:15,372 fail2ban.actions [2087]: NOTICE [sshd] Ban 192.168.1.101
Это поможет вам отследить активность определенного IP-адреса.
Чтобы просмотреть незапрещенные IP-адреса с временной меткой, выполните:
sudo grep 'Unban' /var/log/fail2ban.log
По умолчанию Fail2ban добавляет правила в брандмауэр IPTables для блокирования IP-адресов, пытающихся получить несанкционированный доступ. Эти правила обычно добавляются в пользовательскую цепочку, специфичную для jail (например, f2b-sshd
для SSH jail).
Для просмотра правил, добавленных fail2ban, можно воспользоваться следующей командой:
sudo iptables -S
-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N f2b-sshd -A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd -A f2b-sshd -j RETURN
Как видно из вывода, строки, содержащие строку «f2b-», вставлены fail2ban.
Здесь:
-N f2b-sshd
: Эта строка создает новую пользовательскую цепочку с именем f2b-sshd
. Эта цепочка будет использоваться для управления правилами, связанными с джейлом Fail2ban «sshd», который используется для защиты SSH-доступа.-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
: Эта строка добавляет правило в цепочку INPUT
. Оно определяет, что входящий TCP-трафик, направленный на несколько портов (указанных в --dports 22
), должен направляться на заданную пользователем цепочку f2b-sshd
. Это правило используется для направления трафика, связанного с сервисом SSH, в цепочку Fail2ban.-A f2b-sshd -j RETURN
: Это правило находится внутри цепочки f2b-sshd
. Оно определяет, что если пакет достигает этого правила в цепочке f2b-sshd
, то он должен быть возвращен в предыдущую цепочку (в данном случае в основную цепочку INPUT
). Это правило помогает оптимизировать обработку пакетов, позволяя пакетам, не соответствующим условиям, заданным другими правилами в цепочке f2b-sshd
, переходить к другим правилам или цепочкам без дополнительной обработки.Для фильтрации и просмотра только правил, вставленных Fail2ban, можно использовать опцию *-L*
вместе с именем цепочки. Вот как это можно сделать:
sudo iptables -L <chain-name>
Замените <chain-name>
на имя конкретной цепочки, используемой Fail2ban. Например, если вы хотите просмотреть правила, введенные Fail2ban для SSH-тюрьмы (f2b-sshd
), выполните:
sudo iptables -L f2b-sshd
Эта команда покажет вам правила, которые Fail2ban ввел в указанную цепочку. Это полезный способ увидеть, какие IP-адреса были запрещены Fail2ban для конкретной службы или джейла.
Не забывайте, что правила Fail2ban управляются динамически, поэтому правила могут меняться в зависимости от обнаруженной активности и настроенного времени запрета.
Вы также можете использовать команду grep для фильтрации только правил, вставленных fail2ban.
sudo iptables -S | grep f2b
Как было сказано ранее, по умолчанию Fail2ban использует брандмауэр IPTables для запрета IP-адресов. Например, чтобы настроить Fail2ban на использование UFW (Uncomplicated Firewall), убедитесь, что он установлен:
sudo apt install ufw
Откройте jail.local
файл конфигурации в текстовом редакторе, найдите строку «banaction» и установите ее значение на ufw.
... banaction=ufw ...
Сохраните файл и закройте его.
Перезапустите службу fail2ban, чтобы изменения вступили в силу.
sudo systemctl restart fail2ban
С этого момента Fail2ban будет запрещать IP-адреса нарушителей, используя UFW.
Fail2ban обладает широкими возможностями настройки и может быть настроен на мониторинг широкого спектра лог-файлов и сервисов. Вы также можете настроить действия, которые fail2ban предпринимает при обнаружении подозрительной активности, например, отправку уведомления по электронной почте или запуск пользовательского сценария.
Настройка оповещений по электронной почте в Fail2ban позволяет получать уведомления об инцидентах безопасности и предпринимать необходимые действия. Вы можете настроить Fail2ban на отправку электронных писем с отчетами whois на указанный адрес электронной почты.
Чтобы настроить fail2ban на отправку оповещений по электронной почте, отредактируйте jail.local
конфигурационный файл:
sudo nano /etc/fail2ban/jail.local
Внутри конфигурационного файла найдите соответствующие настройки для оповещений по электронной почте. Часто эти настройки расположены в верхней части файла. Установите в поле destemail
адрес электронной почты, на который будут приходить уведомления, а в поле sender
– адрес электронной почты, с которого будут отправляться уведомления.
... destemail = admin@example.com sender = f2b@example.com mta=sendmail ...
В данном примере admin@example.com
– это адрес электронной почты, на который будут приходить уведомления, а f2b@example.com
– это адрес электронной почты, на который будут отправляться уведомления. Замените оба почтовых адреса на свои.
После внесения изменений сохраните конфигурационный файл и закройте текстовый редактор.
Если в вашей системе не настроен рабочий почтовый сервер, возможно, вам потребуется установить почтовый ретранслятор или настроить локальную доставку почты. Убедитесь, что ваш сервер способен отправлять электронную почту.
Для применения изменений перезапустите службу Fail2ban:
sudo systemctl restart fail2ban
При такой конфигурации Fail2ban будет отправлять уведомления по электронной почте на указанный адрес при каждом срабатывании запрета. Эти уведомления могут включать отчеты whois и другую информацию, связанную с запрещенным IP-адресом.
Хотя Fail2ban может повысить безопасность вашей системы, есть сценарии, в которых он может оказаться не лучшим решением. Вот некоторые предупреждения и соображения:
ignoreip
указан IP-адрес вашего сервера fail2ban.Помните, что Fail2ban – это инструмент, дополняющий ваши меры безопасности, но оценивать его преимущества необходимо исходя из ваших конкретных настроек и требований.
Чтобы удалить fail2ban из системы Linux, остановите службу fail2ban с помощью следующих команд:
sudo systemctl disable fail2ban sudo systemctl stop fail2ban
Вы также можете использовать следующую однострочную команду, чтобы остановить и отключить службу fail2ban сразу:
sudo systemctl disable fail2ban --now
Затем удалите fail2ban с помощью команды:
sudo apt remove fail2ban --purge
Fail2ban – это незаменимый инструмент для повышения безопасности вашего Linux-сервера. Контролируя лог-файлы и автоматически блокируя IP-адреса, fail2ban помогает предотвратить несанкционированный доступ к системе. При правильной конфигурации и настройке fail2ban может обеспечить дополнительный уровень защиты вашего Linux-сервера.
Установив и настроив fail2ban на вашем сервере Debian Linux, вы сможете защитить ваш сервер от атак с использованием брутфорса SSH и других вредоносных действий. Следуя шагам этого руководства, вы сможете повысить безопасность своего сервера и быть спокойным, зная, что ваша система защищена.
]]>Чтобы следовать этому руководству, предполагается, что
Если вы хотите разместить несколько почтовых доменов, вам необходимо
Обратная проверка DNS используется для проверки соответствия IP-адреса отправителя имени хоста HELO. Вам не нужно добавлять еще одну запись PTR при добавлении нового почтового домена.
Войдите в панель администратора iRedMail под учетной записью почтмейстера. ( https://mail.your-domain.com/iredadmin) Затем добавьте домены на Add вкладке.
В диспетчере DNS добавьте запись MX для нового домена, как показано ниже.
Record Type Name Value
MX @ mail.domain2.com
Запись A указывает на IP-адрес вашего почтового сервера.
Record Type Name Value
A mail IP-address-of-mail-server
Если ваш сервер использует адрес IPv6, обязательно добавьте запись AAAA.
Затем создайте запись SPF, чтобы разрешить хосту MX отправлять электронную почту для нового почтового домена.
Record Type Name Value
TXT @ v=spf1 mx ~all
Вам нужно указать amavisd, чтобы он подписывал каждое исходящее электронное письмо для нового почтового домена. Редактировать /etc/amavis/conf.d/50-user
файл.
sudo nano /etc/amavis/conf.d/50-user
Найдите следующую строку,
dkim_key(' domain1.com ', ' dkim', '/var/lib/dkim/domain1.com.pem ');
Добавьте еще одну строку, чтобы указать расположение закрытого ключа второго домена.
dkim_key(' domain2.com ', 'dkim', '/var/lib/dkim/domain2.com .pem ');
В @dkim_signature_options_bysender_maps
разделе добавьте следующую строку.
" domain2.com " => { d => " domain2.com ", a => 'rsa-sha256', ttl => 10*24*3600 },
Сохраните и закройте файл. Затем сгенерируйте закрытый ключ для второго домена.
sudo amavisd-new genrsa /var/lib/dkim/domain2.com .pem 2048
Перезапустите amavis.
sudo systemctl restart amavis
Если Amavis не перезапускается, возможно, вам придется сменить владельца ключа и перезапустить его снова.
sudo chown amavis:amavis /var/lib/dkim/ -R
Затем отобразите открытые ключи.
sudo amavisd-new showkeys
Будут отображены все открытые ключи. Нам нужен публичный ключ второго домена, который указан в скобках.
В диспетчере DNS создайте запись TXT для второго домена. Введите dkim._domainkeyв поле Имя. Скопируйте все, что указано в скобках, и вставьте в поле значения. Удалите все двойные кавычки. (Вы можете сначала вставить его в текстовый редактор, удалить все двойные кавычки, а затем скопировать его в свой диспетчер DNS. Ваш диспетчер DNS может потребовать от вас удалить другие недопустимые символы, например возврат каретки.)
После сохранения изменений. Проверьте запись TXT с помощью этой команды.
dig TXT dkim._domainkey.domain2.com
Теперь вы можете запустить следующую команду, чтобы проверить правильность вашей DNS-записи DKIM.
sudo amavisd-new testkeys
Если запись DNS верна, тест будет пройден.
TESTING#1 domain1.com: dkim._domainkey.domain1.com => pass TESTING#2 domain2.com: dkim._domainkey.domain2.com => pass
Обратите внимание, что вашей записи DKIM может потребоваться некоторое время для распространения в Интернете. В зависимости от используемого вами регистратора домена ваша DNS-запись может распространяться мгновенно или распространение может занять до 24 часов. Вы можете перейти на https://www.dmarcanalyzer.com/dkim/dkim-check/ , ввести его dkimв качестве селектора и ввести имя своего домена, чтобы проверить распространение записей DKIM.
Чтобы создать запись DMARC, перейдите в диспетчер DNS и добавьте запись TXT . В поле имени введите _dmarc. В поле значения введите следующее:
v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@your-domain.com
Шаг 5. Настройка RoundCube, Postfix и Dovecot для нескольких доменов
Имеет смысл разрешить пользователям первого домена использовать mail.domain1.com, а пользователям второго домена использовать mail.domain2.comвеб-почту RoundCube.
Измените рабочий каталог на /etc/nginx/.
cd /etc/nginx/
Создайте пустой файл блокировки сервера для второго домена в /etc/nginx/sites-enabled/
каталоге.
sudo touch sites-enabled/mail.domain2.com.conf
Скопируйте конфигурации HTTP-сайта по умолчанию в файл.
cat sites-enabled/00-default.conf | sudo tee -a sites-enabled/mail.domain2.com.conf
Скопируйте конфигурации сайта SSL по умолчанию в файл.
cat sites-enabled/00-default-ssl.conf | sudo tee -a sites-enabled/mail.domain2.com.conf
Отредактируйте файл виртуального хоста.
sudo nano sites-enabled/mail.domain2.com.conf
Найдите следующую строку.
server_name _;
Нам нужно изменить имя_сервера на mail.domain2.com, потому что позже нам нужно будет использовать Certbot для создания нового сертификата tls.
server_name mail.domain2.com;
Есть 2 экземпляра server_name, вам нужно изменить их оба. Сохраните и закройте файл. Затем проверьте конфигурацию Nginx.
sudo nginx -t
Если тест пройден успешно, перезагрузите Nginx, чтобы изменения вступили в силу.
sudo systemctl reload nginx
Теперь используйте плагин веб-корня Certbot для получения сертификата TLS для всех ваших почтовых доменов, так что у вас будет один сертификат TLS с несколькими доменными именами, и почтовые клиенты не будут выдавать предупреждения безопасности.
sudo certbot certonly --webroot --agree-tos -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email your-email-address -w /var/www/html
Обратите внимание, что в приведенной выше команде мы указали имя сертификата, используя первый почтовый домен, который будет использоваться в пути к файлу, поэтому вам не нужно менять путь к файлу в файле конфигурации Postfix или Dovecot.
Когда вас спросят, хотите ли вы обновить существующий сертификат, включив в него новый домен, ответьте U и нажмите Enter.
Теперь вы должны увидеть следующее сообщение, указывающее на то, что многодоменный сертификат успешно получен.
Если вы столкнулись со следующей ошибкой,
Detail: Invalid response from
https://mail.domain2.com/.well-known/acme-challenge/j3Nd2mNFQ43P9xLJSP4IFAiRytDCb3bemZwuAxDzWQc
[xx.xx.xx.xx]: 404
тогда вам нужно использовать плагин certbot nginx для получения сертификата TLS.
sudo apt install python3-certbot-nginx
sudo certbot certonly -a nginx --agree-tos -d <b>mail.domain1.com,mail.domain2.com</b> --cert-name <b>mail.domain1.com</b> --email <b>your-email-address</b>
После получения сертификата TLS перезагрузите Nginx, чтобы получить новый сертификат.
sudo systemctl reload nginx
Теперь вы сможете использовать разные домены для доступа к веб-почте RoundCube. Также вам необходимо перезагрузить SMTP-сервер Postfix и IMAP-сервер Dovecot, чтобы они могли получить новый сертификат.
sudo systemctl reload postfix dovecot
Обратный DNS (rDNS), также известный как запись PTR, используется для проверки соответствия IP-адреса отправителя имени хоста HELO. Вам не нужно добавлять еще одну запись PTR при добавлении нового почтового домена. В вашем rDNS должно быть установлено только одно имя хоста, то есть имя хоста, указанное в Postfix, которое можно отобразить с помощью следующей команды.
postconf myhostname
rDNS — это запись IP-адресов. Это не запись для доменного имени. Если у вас только один IP-адрес, вам нужна только одна запись rDNS, указывающая на одно имя хоста. Обратная проверка DNS не проверяет, какой From:домен находится в вашей электронной почте, если ваш IP-адрес имеет запись rDNS и имя хоста может разрешаться обратно в тот же IP-адрес, вы можете пройти обратную проверку DNS.
Если вы управляете почтовыми серверами для большого количества клиентов, возможно, вам не захочется объединять все сертификаты TLS в один файл, поскольку он содержит информацию о ваших клиентах. Если вы предпочитаете создать отдельный сертификат SSL для каждого имени домена, вам не следует копировать конфигурацию SSL по умолчанию в новый файл виртуального хоста. То есть не запускайте следующую команду на шаге 5.
cat sites-enabled/00-default-ssl.conf | sudo tee -a sites-enabled/mail.domain2.com.conf
Вместо использования следующей команды для получения многодоменного сертификата:
sudo certbot certonly --webroot --agree-tos -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com -w /var/www/html
Вы можете использовать следующую команду, чтобы получить отдельный сертификат TLS для второго почтового домена.
sudo certbot -a webroot -i nginx --agree-tos -d mail.domain2.com -w /var/www/html
Далее вам необходимо настроить Postfix и Dovecot.
Если вы используете Postfix версии 3.4 или выше, вы можете использовать несколько сертификатов TLS. Отредактируйте main.cfфайл.
sudo nano /etc/postfix/main.cf
Добавьте следующую строку в конец этого файла, чтобы включить несколько сертификатов TLS.
tls_server_sni_maps = hash:/etc/postfix/sni_maps
Сохраните и закройте файл. Затем создайте файл sni_maps.
sudo nano /etc/postfix/sni_maps
В этот файл добавьте каждое имя почтового хоста и его файл сертификата.
mail.domain1.com /etc/letsencrypt/live/mail.domain1.com/privkey.pem /etc/letsencrypt/live/mail.domain1.com/fullchain.pem
mail.domain2.com /etc/letsencrypt/live/mail.domain2.com/privkey.pem /etc/letsencrypt/live/mail.domain2.com/fullchain.pem
Сохраните и закройте файл. Далее создайте таблицу поиска.
sudo postmap -F /etc/postfix/sni_maps
Перезапустите Постфикс.
sudo systemctl restart postfix
Вы должны использовать -Fопцию в postmap для декодирования base64 каждого значения в карте SNI, иначе Postfix выдаст ошибку неправильного значения BASE64 в /var/log/mail.logфайле. Следующая команда неверна.
sudo postmap /etc/postfix/sni_maps
Если вы используете несколько сертификатов TLS в Postfix, вам также следует включить их в Dovecot. Отредактируйте файл Dovecot 10-ssl.conf.
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Вы можете найти следующие строки.
ssl_cert =</etc/letsencrypt/live/mail.domain1.com/fullchain.pem
ssl_key =</etc/letsencrypt/live/mail.domain1.com/privkey.pem
Затем добавьте следующие строки.
local_name mail.domain1.com {
ssl_cert =</etc/letsencrypt/live/mail.domain1.com/fullchain.pem
ssl_key =</etc/letsencrypt/live/mail.domain1.com/privkey.pem
}
local_name mail.domain2.com {
ssl_cert =</etc/letsencrypt/live/mail.domain2.com/fullchain.pem
ssl_key =</etc/letsencrypt/live/mail.domain2.com/privkey.pem
}
Сохраните и закройте файл. Затем перезапустите Dovecot.
sudo systemctl restart dovecot]]>
Здесь мы настроим отправку почты с сайта от А до Я. В качестве операционной системы будет использоваться Debian, но может и другой дистрибутив. В качестве почтового сервера Exim.
]]>readonly
.
Как снять защиту readonly с флешки?
]]>Формат файлов XPS разработан Microsoft для безопасного и простого отображения векторной графики.
Компания планировала, что формат XPS постепенно заменит PDF.
На Windows 7 и Windows 10 файлы XPS открываются стандартной программой MS XPS Document Writer, которая по умолчанию не установлена. Распространяется только как встроенный компонент Windows. Устанавливается, правда, в разных версиях Windows немного по-разному.
В виндовс 7 нужно установить компонент Средство просмотра XPS
стандартным способом:
После непродолжительной установки можно будет открывать xps-файлы.
В Windows 10 все немного иначе. Такого компонента нет в списке. Но можно установить, используя консоль cmd.exe
. Запускать ее нужно от имени администратора.
DISM /Online /Add-Capability /CapabilityName:XPS.Viewer~~~~0.0.1.0
]]>Чаще всего эту процедуру приходиться делать системным администраторам на своем новом рабочем месте.
]]>Эти значки символизируют настроение человека, его эмоции, а также изображают разнообразные предметы.
]]>— ВИНСЕНТ КОННЕР, дизайнер
]]>Я даже не стану спорить, что при такой вот цифровой ообработке никогда не добиться того эффекта, который получается при использовании объективов, но лучше уж так, чем вообще никак.
]]>Оказывается, есть возможность установить магазин Microsoft Store на Windows 10 LTSC.
]]>Этот бред мы отмечаем. И вообще кто пользовался вайфаем неминуемо умрут в течении ста лет.
]]>Пажитнов тогда работал в Вычислительном центре Академии наук СССР в Москве, где занимался проблемами искусственного интеллекта и распознавания речи, и для обкатки идей часто применял головоломки, одна из которых – популярная тогда игра пентамино (она состояла из пяти квадратов (пентомино – от греч. «пента» – пять) и ставила задачей правильно расположить в коробке геометрические фигуры). Так, например, в журнале «Наука и жизнь», начиная с 1960-х годов, был постоянный раздел, посвящённый составлению фигурок из набора пентамино, а пластмассовые наборы пентамино можно было найти в магазинах.
Именно игра в пентамино подсказала Пажитнову идею создания новой игры, более увлекательной. Он решил автоматизировать укладку пентамино в заданные фигурки. Но вычислительных мощностей оборудования того времени для вращения пентамино не хватало, тогда изобретатель сделал фигуры более простыми. А еще придумал основную «изюминку» игры – чтобы фигурки падали, а заполненные ряды исчезали. Тогда же родилось и название новой игры «Тетрис», которое произошло из слияния «тетрамино» (игры, где все фигурки состоят из четырёх сегментов) и «теннис» (любимого вида спорта Пажитнова).
]]>Дату отмечают представители разнообразных профессий, ведь под общим определением «фрилансер» скрываются программисты, дизайнеры, копирайтеры, оптимизаторы, контент-менеджеры и другие.
День фрилансера в России имеет символическое значение. В 2005 году в этот день начала свою деятельность одна из первых российских бирж фриланса.
]]>Исследователь безопасности Марк Бернетт впервые в своей книге «Совершенные пароли» в 2005 году предложил людям провести «день паролей», в который они обновляют важные пароли. Вдохновленный этой идеей, Intel Security выступил с инициативой объявить первый четверг мая Всемирным днем паролей в мае 2013 года. Представленный Big Monocle в 2016 году день паролей предназначен для осознания необходимости надежной защиты паролей.
]]>Первоначальное вдохновение для CSS Reboot Day пришло сначала от перезагрузки 1 мая, идеи и события, задуманного Джеймсом Видегреном (James Widegren) в 2000 году. Позже этим процессом руководил Пол А. Шипула (Paul A. Szypul). Перезагрузка 1 мая стала отличным событием для дизайн-блогеров со всего мира.
]]>К последней же пятнице июля приурочен фестиваль LinuxFest, также проводящийся в Калужской области.
Ежегодный сбор системных администраторов происходит в Новосибирске проходит на берегу Обского моря.
Традиция проведения «Дня сисадмина» в последнюю пятницу июля существует и в Екатеринбурге у Памятника клавиатуре.
Празднования сопровождаются спортивными состязаниями: киданием на дальность нерабочих компьютерных мышей, киданием на точность в пустой системный блок компьютерных мышей, а также силовому жиму связки жёстких дисков.
]]>Но через консоль некоторые действия сделать быстрее. Давайте добавим нового пользователя в Mysql и дадим ему права.
]]>Знать код ответа страницы очень важно. Это позволяет понять, как ваш сайт видят поисковики. Это технический параметр, который указывает на то как воспринимают страницы сайта поисковые роботы.
HTTP 1.1, который использовался последнии 15 лет, морально и технически устарел. В эпоху динамических сайтов и "увесистого" мультимедийного контента, протокол 1.1 перешел в разряд морально устаревшего. Новые веяния в web-мире требуют изменений, которые может дать новый протокол -- HTTP/2.
HTTP 1.1 обрабатывает один запрос (html-страница, css-стиль, файл или любой другой мультимедийный контент) на одно TCP-соединение. Браузеру приходится устанавливать несколько TCP-соединений, чтобы открыть одну страницу сайта.
HTTP 2.0 позволяет существенно сократить количество запросов у серверу, тем самым уменьшить нагрузку на сервер и увеличить скорость работы сайта в целом.
]]>Каждое редактирование контента на странице сайта имеет отметку времени. Такая временная отметка позволяет узнать дату последнего обновления открытой страницы.
Это технический заголовок. По нему нельзя судить об актуальности материала.
Заголовок last-modified показывает когда было последнее обновление текста на странице. Часто бывает, что оставленный комментарий, "освежает" заголовок last-modified.
]]>Активация сжатия веб-страниц является простым и действенным способом увеличить скорость загрузки сайта. При активации GZIP-компрессора поток передаваемой от сервера браузеру информации перекодируется на лету. В результате браузер клиента получает трафик в сжатом виде (минимального объёма), который распаковывается им при получении.
Использование GZIP-сжатия - это необходимый шаг, если Вы хотите сделать быстрый и современный сайт. Если Вы не используете сжатие, валидатор Google обязательно Вам об этом напомнит и уменьшит вам рейтинг.
]]>Для сайта – выполнение 30 секунд это много. Но есть CRM, которые крутятся внутри локальной сети предприятия и могут работать дольше этого времени.
]]>При острой необходимости переустановки ОС Windows, в крайнем случае, когда она вообще не загружается, возникает проблема резервирования пользовательских данных, которые находятся в папках Рабочий стол и Мои документы. Эти действия обычно приходится производить вручную, загружаясь из под какого-нибудь Реаниматора, и бекапить данные.
Чтобы избежать этого на начальном этапе самым лучшим будет все пользовательские файлы держать на другом разделе, на котором нет системных файлов. Как это сделано в Linux. Поэтому рекомендуется перенести папки Мой компьютер и Мои документы на другой раздел.. Будем переносить на диск D:
]]>Эта бывает из-за вирусов или других нехороших действий. Давайте исправлять.
]]>Ниже я опишу как можно открыть системный реестр Windows 10 для редактирования и избавиться от ограничивающего окна: редактирование реестра запрещено администратором системы.
]]>Оказалось, что проблема заключалась в неправильно настроенном сайте по умолчанию.
]]>Стремительно возрастающий объем данных приводит к тому, что резервное копирование постепенно уходит на второй план, ведь для успеха компаниям все чаще требуется не просто сохранность данных, а их непрерывная доступность, позволяющая работать в режиме 24/7/365. Во многом по этой причине мы в Veeam Software решили отмечать Международный день доступности данных – накануне Дня бэкапа, 30 марта. Второй год подряд 30-го марта всем организациям предлагается подумать о том, может ли их ИТ-инфраструктура обеспечить круглосуточную доступность.
]]>При тестовом копировании новых файлов на сервер вручную через sftp, выводятся похожие ошибки о недостаточности места на диске.
]]>Что делать и как решить эту проблему?
]]>После этой ошибки проблема часто остается при любом другом использовании пакетного менеджера.
]]>Будем разбираться и снижать нагрузку.
]]>Я нашел отличное решение, чтобы сделать это быстро.
]]>Решение найдено.
]]>FancyBox умеет:
Для того, чтобы установить FancyBox на свой сайт Вам потребуется
Загружаем код:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.css"/>
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.umd.js"></script>
<a href="https://lipsum.app/id/1/1024x768"
data-fancybox="gallery"
data-caption="Optional caption">
Image
</a>
Пример
See the Pen Untitled by Janis Skarnelis (@fancyapps) on CodePen.
Посмотреть все функции скрипта можно на оф. сайте – fancyapps.com
]]>Чтобы сделать это быстро и правильно есть несколько способов, которые собраны ниже.
]]>Поднимем сервер OpenVPN на маршрутизаторе Mikrotik любой модели. Самое главное, чтобы была RouterOS.
]]>Tunnelblick — это бесплатный OpenVPN-клиент для MacOS со всем нужным функционалом.
]]>Маршрутизатор Cisco хоть и «довоенный», но позволяет решить поставленную задачу.
]]>Сам клиент от объединения файлов не станет работать быстрее. Скорее наоборот, подключение будет происходить заметно медленнее.
]]>fdisk -l
.]]>wget
. Получилось, что символ ?, в именах файлов, заменился на сочетание символов – %3f. Для нас это не подходит, так как ссылки в коде сайта на файлы с вопросительным знаком. Усугубляется это тем, что файлов несколько тысяч.
Нужно редактировать их все и желательно пакетно и рекурсивно.
]]>Странно, что разработчики Proxmox не предусмотрели возможность изменение жесткого диска виртуальной машины в обратную сторону. Увеличить можно легко, а уменьшить — нет!
]]>Нужно это для дебага проблем или обучения пользователя.
]]>В редких случаях необходимо разрешить подключение для локальной сети или еще реже из любого места.
]]>HACS – это надстройка над Home Assistant, которую поддерживает сообщество. С помощью него можно легко устанавливать дополнения, сценарии, скрипты и темы. HACS должен быть установлен у всех пользователей Home Assistant.
Для работы HACS нужен аккаунт на github.com. Именно репозитории гитхаб используют все наработки, которые размещены в HACS.
Нужно подключиться по ssh к серверу Home Assistant и перейти в директорию с конфигурацией.
Если Вы ставили Home Assistant из статьи, то в web-интерфейсе переходим Конфигурация – Дополнения, резервные копии и Supervisor. Если вы только установили HA, то нужно в Вашей учетке включить Расширенный режим:
Там жмем на плюсик и устанавливаем плагин Terminal & SSH. Далее переходим в окно плагина, устанавливаем его и запускаем. Переходим в web-интерфейс плагина и выполняем 2 команды по очереди:
curl -sfSL https://hacs.xyz/install | bash -
ha core restart
Последняя команда перезапускает демона Home Assistant.
Скрипт ищет файл лога home-assistant.log
и считает это место местом установки Home Assistant.
Далее переходим в Конфигурация – Устройства и службы:
Кликаем на кнопку Добавить интеграцию:
Ищем HACS:
Соглашаемся со всем, что предлагают и в всплывающем окне нужно перейти на github, кликнув на ссылку, и ввести код, который размещен ниже:
github спросит разрешение добавить интеграцию к вашему аккаунту:
Далее можно объект отнести к пространству. Пространство указывать не нужно, сразу нажимаем Готово
HACS установлен.
В результате всех наших действий в боковом меню появится новая иконка с магазином:
После установки нужно ждать примерно 5-10 минут. За это время должны обновиться списки доступных пакетов в HACS. Если аккаунт github зарегистрированный недавно, ждать придется 2 часа. Все новые аккаунты github имеют ограничение на количество запросов в час. Разблокировка происходит автоматически. Обновление списков доступных пакетов в таком случае будет происходить порционно.
]]>Если у Вас FTP-клиент не догружает файлы или сайты в интернете открываются не всегда одинаково быстро, то, возможно, настала пора обратить внимание на установленные значения MTU.
]]>Но бывает, что подключаемый компьютер никак не хочет лезть в рабочую группу, то есть, вроде, он добавлен в нее, а не появляется в Сетевом окружении.
Оказывается все просто.
]]>Я по роду своей деятельности много раз сталкивался с невозможностью удаления антивируса Symantec для последующей установки корпоративного Nod32.
Решение проблемы оказалось на поверхности. Вендоры антивирусов сами предоставляют утилиты для удаления своих продуктов.
]]>lsb_release
. С помощью нее можно вывести информацию о версии релиза Debian или Ubuntu.
Эту утилиту используют в скриптах, где логика его работы меняется от версии установленного релиза. К примеру, для добавления PPA-репозиториев.
]]>Ошибка очень редкая и потому в интернете так просто не найти решение. Я убил на ее решение не один час. И нашел!
]]>Но в некоторых случаях 30 секунд — это мало. К примеру, в CRM Клиентская база. Скрипты могут выполнятся дольше 30 секунд.
]]>Давайте начнем.
]]>