Установите Fail2ban на Ubuntu Server 18.04

Привет. Недавно стал осваивать Laravel и столкнулся с тем, что там нужно перепиновать скрипт для его авто запуска. На хостинге это сделать нельзя. По этому было принято решение пересесть с хостинга на VPS. Я выбрал VPS от компании Beget.

Настроить Fail2ban

Fail2ban настроен с использованием джейлов. Тюрьма определяет, как служба отслеживает и как быстро предпринимать действия против атак.

Из коробки система уже безопасна. Тем не менее, это также очень гибкий. Основной файл конфигурации — /etc/fail2ban/ . Не редактируйте этот файл. Вместо этого создайте новый файл с расширением .local. Fail2ban всегда сначала читает файлы .conf, а затем файлы .local. Любая конфигурация, считанная в файле .local, переопределит аналогичные конфигурации в файле .conf.

Настройка сервера

Выбрал я самый дешевый тариф VPS сервера. Его характеристики:

  1. CPU: 1,
  2. RAM: 1 Гб,
  3. SSD: 15 Гб.

Для моих нужд вполне хватит. Заходим в панель управление Beget, жмем создать VPS. Готово! Сервер устанавливается примерно в течение 10 секунд. Доступы Ssh приходит на почту. Перво на перво на свежо установленном сервер нужно обновить пакеты.

sudo apt-get update sudo apt-get upgrade

Дальше ставим Midnight Commander, чтобы было удобно выполнять манипуляции с сервером.

sudo apt-get inctall mc

Аутентификация пользователя на основе SSH-ключей

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

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

ssh-keygen

Читайте также:  Ошибка при установке iOS 12 – почему возникает и что делать

Путь для расположения ключа можно оставить стандартным. Можно придумать и ввести passphrase (секретная фраза). Или же просто оставить всё по умолчанию, нажимая Enter:

Теперь этот ключ нужно скопировать на сервер. В Windows придётся копировать ключ вручную. Займёмся этим.

Подключаемся к серверу:

ssh [email protected]_addres

В корневой директории созданного пользователя (/home/john) нужно создать папку .ssh. Скорее всего вы уже находитесь в этой директории. Проверить это можно с помощью команды:

pwd

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

cd /home/john

Здесь создадим директорию .ssh:

mkdir .ssh

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

ls -la

Установим права для этой папки:

chmod 700 .ssh/

Перейдем в эту папку:

cd .ssh

Создадим файл authorized_keys в этой директории:

touch authorized_keys

Установим права для этого файла:

chmod 600 authorized_keys

Вводим команду:

cat >> authorized_keys << EOF

Курсор передвинется на новою строку в ожидании ввода данных от вас:

Переходим в папку на локальном компьютере, куда был сгенерирован ключ и с помощью любого текстового редактора открываем файл id_ Копируем весь текст из этого файла. Копируйте внимательно, без захвата пробелов в начале и в конце строки!

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

EOF

Жмем Enter.

Отлично, мы скопировали и вставили наш ключ в файл authorized_keys. Можно проверить содержимое файла командой:

cat authorized_keys

Теперь при подключении к серверу по SSH, пароль для подключения запрашиваться не будет.

Заключение

Вот мы с Вами и рассмотрели несколько вариантов установки Linux Ubuntu на компьютер, а именно:

  • Установку Ubuntu на компьютер рядом с Windows 10;
  • Чистую установку Ubuntu.

При этом рассмотрели, как автоматический режим разметки диска, так и ручной режим. А также учли нюансы, связанные с UEFI.

Читайте также:  Выбор дистрибутива Linux для слабого компьютера

На заметку! Начинающим пользователям Linux рекомендую почитать мою книгу «Linux для обычных пользователей» – в ней я максимально простым языком рассказываю про основы Linux и как пользоваться этой операционной системой без командной строки.

6: Важные файлы и каталоги Nginx

Теперь вы знаете, как управлять сервисом. Пора познакомиться с важными файлами и каталогами веб-сервера Nginx.

Контент

  • /var/www/htm: содержит текущий контент сайта. По умолчанию в нём находится только стандартная посадочная страница, которую вы уже видели. Этот каталог можно изменить в конфигурационном файле Nginx.

Настройки сервера

  • /etc/nginx: каталог настроек nginx, в котором хранятся все конфигурационные файлы.
  • /etc/nginx/: главный конфигурационный файл Nginx, содержащий глобальные настройки веб-сервера.
  • /etc/nginx/sites-available/: каталог, в котором хранятся настроенные блоки server (виртуальные хосты) каждого отдельного сайта. Nginx не будет использовать эти блоки, пока ссылка на них не появится в каталоге sites-enabled (о нём речь пойдёт дальше). Как правило, этот каталог используется для настройки виртуальных хостов.
  • /etc/nginx/sites-enabled/: каталог, в котором хранятся включенные блоки server. Чтобы включить блок, нужно создать символьную ссылку на файл, хранящийся в каталоге sites-available.
  • /etc/nginx/snippets: этот каталог хранит сниппеты — фрагменты настроек, которые можно включить в конфигурацию Nginx. Как правило, в качестве фрагментов добавляют потенциально повторяемые сегменты конфигурации.
  • /var/log/nginx/: регистрирует все запросы, полученные веб-сервером Nginx (если не настроено другое поведение).
  • /var/log/nginx/: хранит все сообщения об ошибках Nginx.

RoundCube (через SSL) и Webmin с fail2ban для ISPConfig на Debian 0

Я предпочитаю использовать RoundCube в ISPConfig 3, как решение по умолчанию. Также я считаю, что было бы полезно иметь установленную во всех моих системах панель управления сервером Webmin. В этой статье Вы можете увидеть самый быстрый способ, установка, с сопутствующей высокой поддержкой fail2ban. Наконец, я смогу получить доступ ко всем им по SSL (даже на PhpMyAdmin — смотрим в конце).

Я предполагаю, что вы следовали руководство из материала Идеальный сервер — Debian 6.0 [ISPConfig 3]

Если Вы собираетесь получить доступ к группам почты веб почты ISPConfig 3 через SSL, я также предполагаю, что Вы следовали главы 6.2 Включение SSL для веб интерфейса ISPConfig из ISPConfig 3 руководства (это необходимо только, если Вы хотите получить доступ к панели управления и веб интерфейсу через SSL на порту 8080). Если вы придерживались сказаному выше, то я могу считать, что Вы можете продолжить настройку сервера по этому учебнику.

Настройка Fail2Ban в Linux для защиты SSH, Apache, MySQL, Exim

Fail2ban позволяет блокировать доступ к серверу или запущенным службам на основе анализа логов доступа и подключений. Fail2Ban автоматически может создавать правила файервола для блокировки конкретных IP адресов, если действия с этого IP определяются как подозрительные. Так, Fail2Ban может защитить ваш сервер от перебора паролей по SSH, DDoS атак, попыток эксплуатации эксплоитов, выполнении запрещенных действий.

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

Обычно на всех своих серверах, я закрываю SSH доступа с наружи, т.к. подключаюсь к своим серверам со своего статического IP-адреса или через OpenVPN подключение. Но это не всегда возможно. На помощь приходит замена стандартных портов, либо настройка на сервере службы fail2ban. В этом примере мы покажем, как установить и использовать fail2ban в CentOS, однако вы можете использовать эту инструкцию и для других дистрибутивов Linux.