В этой статье мы создадим виртуальную машину с 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

В результате получим:
Проверим работоспособность утилиты:
# ssh localhost
И убедимся, что всё корректно работает:
Настройка Apache на Linux:
Тут вам по сути нужно настроить только брандмауэр, что бы получить доступ к нужным портам, для этого нужно использовать программу UFW, она должна уже быть установлена, у вас, если нет, то видите эту команду в терминал.
PowerShell
1 | sudo apt install ufw |
После этого можете настроить брандмауэр, дела в том, что обычно во время установки регистрируется несколько профилей для работы с Apache, чтобы их посмотреть, видите эту команду.
PowerShell
1 | sudo ufw app list |

Вы должны увидеть что то, типа этого.
Как видите тут есть три типа работы приложения, вот что они значат.
- Apache — Этот профиль работает только с портом 80, веб-трафик без шифрования;
- Apache Full — Этот профиль работает с портами 80 и 443, то есть с веб-трафиком без шифрования и трафик с шифрованием TLS/SSL;
- Apache Secure — Этот профиль работает только портом 443 трафик с шифрованием TLS/SSL;
Лично я рекомендую использовать последний, но я применю первый, для примера.
PowerShell
1 | sudo ufw allow ‘Apache’ |
Чтобы вам применить профиль, вам просто нужно после слова allow, написать в скобках название профиля.
Для проверки профиля можете использовать эту команду.
PowerShell
1 | sudo ufw status |

На этом настройка закончилась.
Проверка работы:
Для старта Apache, нужно как всегда ввести не большую команду.
PowerShell
1 | sudo systemctl status apache2 |
Если вы всё сделали правильно, то у вас должно появится вот это.
Также, вы можете перейти в браузере на локальный сервер, чтобы убедится как всё работает, если всё верно, то вот что появится.
На этом можно закончить с установкой можно закончить.
Дополнительные команды:

Последние что может пригодится, так это команды для работы со сервером, но сначала покажу синтаксис работы с ними.
PowerShell
1 | sudo systemctl <команда> apache2 |
То есть, там где написана команда, нужно вводить команды которые сейчас покажу, но без знаков больше, меньше.
Это все команды которые стоит знать.
Шаг — Перезапуск и тестирование
После втого как Вы внесли все нужные настройки, сохраните файл и перезапустите службу Fail2ban с помощью следующей команды.
sudo systemctl start sudo systemctl enable
- Configure Fail2ban on Ubuntu 20.04 …
- To Install Fail2ban On Ubuntu 20.04 LTS …
- Configure Fail2ban on Ubuntu 20.04 …
В целях тестирования я попробовал подключится по 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/
- Fail2ban в Ubuntu 20.04
- Configuring Fail2ban on Ubuntu 20.04 …
- Configuring Fail2ban on Ubuntu 20.04 …
Такой файл необходимо передать клиенту для установки на устройство, которое он будет использовать для подключения к закрытой сети через Сервер VPN. При этом, на стороне клиента должно быть развёрнуто программное обеспечение OpenVPN, к которому нужно подключить полученнный из ЦС файл с расширением ovpn. Например, если рабочая станция клиента работает под управлением ОС Windows, достаточно с сайта OpenVPN скачать дистрибутив Windows-приложения, установить его и скопировать файл сертификата .ovpn в одну из папок, указанных приложением при первом запуске. Это позволит клиенту осуществлять извне работу с ресурсами, расположенными внутри вашей сети, без изменений в конфигурации сетевого экрана и не понижая при этом уровень защищённости сети.
Следует отметить, что в данном руководстве в качестве сервера ЦС использовалась виртуальная машина, на которой также, как и на сервере OpenVPN, развёрнута ОС Ubuntu На самом деле, в качестве сервера ЦС вы можете использовать как и ваш VPS, на котором вы настроили серверный сегмент VPN (что не является хорошим вариантом с точки зрения соблюдения мер информационной безопасности), но и любой компьютер или сервер, находящийся за пределами вашей закрытой сети. Во втором варианте, вам нужно продумать организацию безопасного трансфера файлов ключей и сертификатов между рабочей станцией с настроенным ЦС и сервером VPN.