Моя цель - создать VPN-туннель на одном порту на общедоступном IP-адресе сервера и иметь возможность подключаться к серверу по SSH с дополнительным уровнем шифрования VPN.
ДЕТАЛИ КОНФИГУРАЦИИ СЕРВЕРА:
Я использую CentOS 7 как на сервере, так и на клиентах. Документы, которые я читал до сих пор, похоже, сосредоточены на конфигурации, которая работает через браузер и ретранслирует интернет-трафик. Мне не нужен сервер для ретрансляции. Могу ли я получить доступ к SSH-порту сервера через VPN и оставить интернет-трафик (80/443) только на сервере и клиенте. Сервер должен по-прежнему обслуживать 80/443 через Apache и клиентский доступ в Интернет в обычном режиме.
Если позволите, я позволю себе разложить ваш вопрос на части, сделаю шаг назад и помогу пройти через весь процесс разработки решения, чтобы мы могли определить для вас работоспособное решение. В вашем вопросе есть ряд неточностей, касающихся протокола SSH, VPN и в целом того, как мы проектируем безопасные системы. Давайте поработаем с ними здесь.
В настоящее время ваш вопрос требует руководства по реализации конкретных технологий. Однако в формулировке проблемы не оценивается конкретная угроза, с которой вы сталкиваетесь, поэтому преждевременно разрабатывать решение; в этом отношении вы XY поставили перед нас.
Любая реализация, которую вы сделаете, либо не решит проблему (потому что на самом деле проблема в другом), либо добавит сложности там, где более простое решение будет адекватным. Более того, ненужная сложность нежелательна, так как она может быть источником дополнительных уязвимостей.
Мы должны сфокусироваться на объективе, не на решении . Мы должны определить объекты нашей проблемной области, выяснить все факторы, которые необходимо учитывать, понять угрозы, с которыми мы сталкиваемся, и только тогда мы можем начать определять, какие технологии и процессы могут быть выбраны для решения данной проблемы. Процесс, которому мы можем следовать:
Выявление участников угроз (для проблем безопасности) - ни одна система или процесс не является на 100% безопасным . Нам необходимо тщательно определить характер всех противников, которые могут начать атаку, чтобы определить, адекватно ли наше решение предотвращает такие атаки. Это относится как к разработке реальных систем физической безопасности, так и к проектированию с учетом технических результатов.
Например, в своей оценке вы можете учитывать такие факторы, как:
Ваш термостат риска и риска - что побуждает актера атаковать вас или вашу организацию конкретно? Например, хранит ли ваша система или обрабатывает конфиденциальные и / или привилегированные данные, которые обычно носят ограниченный характер и могут представлять ценность для других (личные данные, секреты компании и т. Д.)? Имеет ли он привилегированное положение в сети, из которой может быть запущен дальнейший анализ или атаки (например, основной маршрутизатор у провайдера, пограничный шлюз на периметре чувствительной сети в большой корпорации)?
Это помогает определить, есть ли мы имеем дело с актером Advanced Persistent Threat (APT), который стремится нацелить на вас конкретно, или мы защищаем оппортунистов. Гораздо легче защититься от мимолетного оппортуниста, имея скромные средства защиты, которые заставят вас выглядеть в безопасности по сравнению с конкурентами.
Кроме того, определение вашего аппетита к риску (ваш термостат риска ) способствует оптимизации результата. надлежащим образом покрывают идентифицированные риски, не преувеличивая.
На протяжении всего процесса мы помним, что безопасность - это процесс, а не пункт назначения . Мы не можем «покупать» ценные бумаги как готовый товар, и любой, кто предлагает это, лжет или имеет скрытые (вероятно, денежное обогащение) мотивы.
Ваш вопрос невероятно всеобъемлющий, поэтому мы можете в общих чертах проследить наш процесс с вашими конкретными проблемами:
Я испытал компрометацию сервера на основе анализа rkhunter и хочу уменьшить вероятность того, что это произойдет снова.
Конкретная проблема - это компромисс в прошлом. машины, с которой вы хотите свести к минимуму любые повторения.
Основная цель, которую я могу определить из вашего вопроса, - защитить машину от удаленных событий компрометации, которые могут происходить в общедоступной сети (например, в Интернете). Вторичной целью является обеспечение конфиденциальности и целостности сеансов удаленной оболочки на удаленном компьютере.
Давайте задокументируем эти моменты, чтобы направить наше решение:
Я не могу адекватно определить вашу модель угроз, так как у меня нет информации о вашей организации и инфраструктуре, а также у меня нет обзора обрабатываемых вами данных или частных сетей, к которым вы можете быть подключены внутри компании. Из общедоступной информации в вашем профиле я вижу, что вы можете работать в месте, которое обрабатывает конфиденциальную интеллектуальную собственность от имени других, что представляет собой сбор данных со средним или высоким риском для конкретных угроз атак. (Эта угроза может распространяться на персональные системы, которыми вы управляете.)
Давайте разработаем решение, отвечающее нашим целям. Чтобы обезопасить машину, нам нужно рассмотреть публичные маршруты атак. Он предоставляет две службы, и мы предположили, что веб-служба не уязвима. Следовательно, мы должны рассмотреть подключение удаленной оболочки.
Для этой цели SSH более чем способен удовлетворить ваши требования без добавленной оболочки сеанса VPN. Практически любое устройство Unix может запускать демон SSH, и многие из них прямо или косвенно открыты для доступа к враждебным сетям без проникновения.
Secure Shell (SSH) предназначен для обеспечения конфиденциальности. и целостность удаленных сеансов оболочки. Это делается с использованием криптографических подходов; в частности, хостам назначается один или несколько ключей хоста, которые могут использоваться для точной идентификации хоста для подключения клиентских машин.
Как вы правильно определили, SSH уязвим. к атаке «человек посередине» в конкретном сценарии: большинство пользователей не проверяют ключи хоста, представленные машиной при первоначальном подключении; они развертывают политику доверия при первом использовании . Если MitM может предоставить альтернативные ключи хоста на этом этапе, возможен перехват сеанса SSH сейчас и при будущих подключениях без дальнейшего обнаружения. Обнаружение без проверки кэшированного ключа хоста потребует нейтрализации угрозы MitM или подключения из бескомпромиссной сети, чтобы можно было представить истинный ключ хоста удаленного хоста.
Поскольку нас беспокоит MitM, мы должны разработать решение чтобы смягчить это. Вам доступны следующие варианты (не исчерпывающие):
ssh-keygen
на сервере, чтобы получить отпечаток пальца, передать его пользователям и попросить их сравнить отпечаток пальца, представленный при первом подключении, с версией на сервере. Они должны войти в систему только в том случае, если совпадают отпечатки пальцев. Другая уязвимость работающего демона SSH - это атаки перебора паролей. Злоумышленники часто проверяют ваш ящик на наличие служб SSH и пытаются выполнить аутентификацию, используя общий список имен пользователей и паролей. Ящики с именами пользователей в публичном списке и ненадежными паролями могут быть скомпрометированы. Методы для смягчения этого включают:
ssh-keygen
с большим (например,> 2048) числом бит или подходящим числом бит для пары ключей, подписанной с помощью другой криптосистемы. fail2ban
, чтобы следить за вашими журналами и добавлять правила брандмауэра, чтобы блокировать дальнейшие попытки подключения с того же адреса после достижения порога неудачного входа в систему. Решения VPN могут решить то же самое проблема, которую вы пытаетесь решить с туннелем SSH. Они могут использовать другой технический подход или разные криптосистемы, но и то, и другое подходит для выполнения ваших обязательств по безопасности. Оба также несут аналогичные накладные расходы (например, обязательство по предварительному распространению или проверке ключей с каждой стороной заранее идентично).
Дополнительные функциональные возможности, предоставляемые VPN, кажутся ненужными в данном конкретном случае, если все вы стремитесь Операция - это удаленный сервер оболочки. Запуск VPN, вероятно, несет в себе дополнительный риск из-за того, что на вашем компьютере работает еще один демон , а также усиливается вектор атаки.