Fail2Ban на CentOS 8: установка, настройка и защита

В этой статье мы создадим виртуальную машину с Ubuntu 18.04 LTS 64-bit и выполним настройки для безопасного взаимодействия с сервером.

Как установить OpenSSH

OpenSSH — это бесплатный SSH-сервер, дающий возможность интерактивного управления сервером. Для установки SSH на сервер воспользуемся встроенным в Ubuntu пакетным менеджером apt:

# sudo apt install openssh-server -y

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

Теперь добавим SSH-сервер в автозагрузку. При следующем запуске сервера, операционная система выполнит автоматический запуск SSH-сервера. Как и в случае с другими сервисами systemd позволяет управлять параметрами запуска, автозагрузки и рестарта демона OpenSSH. Включим автозапуск:

# sudo systemctl enable ssh

Как установить OpenSSH

В результате получим:

Проверим работоспособность утилиты:

# ssh localhost

И убедимся, что всё корректно работает:

Настройка Apache на Linux:

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

PowerShell

1 sudo apt install ufw

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

PowerShell

1 sudo ufw app list
Настройка Apache на Linux:

Вы должны увидеть что то, типа этого.

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

  • Apache — Этот профиль работает только с портом 80, веб-трафик без шифрования;
  • Apache Full — Этот профиль работает с портами 80 и 443, то есть с веб-трафиком без шифрования и трафик с шифрованием TLS/SSL;
  • Apache Secure — Этот профиль работает только портом 443 трафик с шифрованием TLS/SSL;
Читайте также:  Консольные команды Linux — справочник с примерами

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

PowerShell

1 sudo ufw allow ‘Apache’

Чтобы вам применить профиль, вам просто нужно после слова allow, написать в скобках название профиля.

Для проверки профиля можете использовать эту команду.

PowerShell

1 sudo ufw status
Настройка Apache на Linux:

На этом настройка закончилась.

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

Для старта Apache, нужно как всегда ввести не большую команду.

PowerShell

1 sudo systemctl status apache2

Если вы всё сделали правильно, то у вас должно появится вот это.

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

На этом можно закончить с установкой можно закончить.

Дополнительные команды:

Настройка Apache на Linux:

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

PowerShell

1 sudo systemctl <команда> apache2

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

Это все команды которые стоит знать.

Шаг — Перезапуск и тестирование

После втого как Вы внесли все нужные настройки,  сохраните файл и перезапустите службу Fail2ban с помощью следующей команды.

sudo systemctl start sudo systemctl enable

В целях тестирования я попробовал подключится по SSH с неверными учетными данными с другого компьютера. После 3-х неудачных попыток Fail2ban заблокировал этот IP через iptables с отклонением ICMP. НА скриншоте показано созданное правило блокировки IP-адреса.

Внимание! Если Вы подключаетесь к серверу только по SSH, убедитесь, что у вас есть будет доступ по SSH с другого IP, прежде чем начать тестирование.

Читайте также:  Как удалить вирус с Андроида на телефоне

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.

Создание клиента

Итак, вы создали сертификат клиента и файл ключа Теперь можно создать клиентский файл конфигурации. Для это нужно запустить на исполнение скрипт ~/clients/make_:

$ cd ~/clients $ ./make_ client-1

В результате скрипт создаст файл ~/clients/files/

Такой файл необходимо передать клиенту для установки на устройство, которое он будет использовать для подключения к закрытой сети через Сервер VPN. При этом, на стороне клиента должно быть развёрнуто программное обеспечение OpenVPN, к которому нужно подключить полученнный из ЦС файл с расширением ovpn. Например, если рабочая станция клиента работает под управлением ОС Windows, достаточно с сайта OpenVPN скачать дистрибутив Windows-приложения, установить его и скопировать файл сертификата .ovpn в одну из папок, указанных приложением при первом запуске. Это позволит клиенту осуществлять извне работу с ресурсами, расположенными внутри вашей сети, без изменений в конфигурации сетевого экрана и не понижая при этом уровень защищённости сети.

Читайте также:  Linux Ubuntu 16.04 – установка и обзор новой версии

Следует отметить, что в данном руководстве в качестве сервера ЦС использовалась виртуальная машина, на которой также, как и на сервере OpenVPN, развёрнута ОС Ubuntu На самом деле, в качестве сервера ЦС вы можете использовать как и ваш VPS, на котором вы настроили серверный сегмент VPN (что не является хорошим вариантом с точки зрения соблюдения мер информационной безопасности), но и любой компьютер или сервер, находящийся за пределами вашей закрытой сети. Во втором варианте, вам нужно продумать организацию безопасного трансфера файлов ключей и сертификатов между рабочей станцией с настроенным ЦС и сервером VPN.