Назад | Перейти на главную страницу

Безопасность SSH во время путешествий

Я новичок в вопросах, связанных с системным администратором / ИТ, поэтому прошу прощения, если это может показаться простым. Я попытался выполнить поиск, но, поскольку SSH - это такая широкая область, я не знал, какие ключевые слова или терминологию конкретно использовать.

Я собираюсь скоро отправиться в путешествие, и мне нужно подключиться к моему серверу EC2 Ubuntu по SSH. В настоящее время у меня дома есть статический IP-адрес, а UFW настроен для ограничения IP-доступа для порта 22. Что касается самого SSH, я использую пару ключей для входа в систему.

Есть ли способ получить статический IP-адрес или использовать какой-то VPN, а затем SSH на моем сервере, чтобы по-прежнему защищать порт 22? Очевидно, я не первый человек, который путешествует по SSH на сервере, так что должно быть решение.

Как я уже сказал, в настоящее время доступ к порту 22 разрешен только для моего IP. Было бы слишком рискованно открывать порт 22 для всего трафика? Я использую пару ключей для SSH, а не имя пользователя / пароль.

Сохранение порта 22 открытым не менее безопасно, чем сохранение порта 80 открытым на вашем веб-сервере, пока вы используете аутентификацию с открытым ключом или безопасные пароли пользователей. Многие методы обеспечения безопасности - это необоснованные мифы. Маловероятно, что в sshd существуют серьезные эксплойты.

Почему порт VPN-сервера внезапно стал более безопасным, чем порт SSH? Просто проверяйте свой открытый ключ SSH при каждом подключении, чтобы предотвратить атаки MITM.

Сначала несколько общих советов по безопасности:

  • Используйте ключевые логины - вы хороши в этом
  • используйте большие клавиши - например, сгенерировать ключ rsa 4k (вероятно, текущий - 1k или 2k
  • используйте надежный пароль для ключа - вы должны это сделать. Если я смогу достать ваш незащищенный ключ без пароля ... все спорный
  • переместите ssh на более высокий порт - например. 12322 - это немного поможет при поиске сервисов. И не забываем порт открыть в группе безопасности
  • следить за тем, что происходит с вашим сервером - fail2ban - замечательный инструмент
  • отключить логины по паролю (инструкции есть в других ответах)
  • реализовать AllowUsers / AllowGroups, чтобы разрешить доступ только определенным пользователям (и root не является одним из них) - в сочетании с агрессивной конфигурацией fail2ban это почти убийца.

Специально для вашего вопроса есть инструменты, известные как PortKnock-ers.

Обычно вы что-то делаете (например, пытаетесь подключиться к нескольким разным портам за короткое время), и порт волшебным образом открывается в iptables.

Немного чтения по этой теме:

ПРИМЕЧАНИЕ. У меня нет опыта работы со стуком портов, и я не рекомендую это делать, так как это может помешать нормальной работе. Большой защищенный ключ и ssh на нестандартном порте - это уже достаточно.

Требование VPN для SSH, безусловно, более безопасно; обычный способ сделать это - установить сеть управления (к которой ваши серверы имеют вторичное соединение) и предоставить к ней доступ через VPN. Вся инфраструктура должна прослушивать трафик управления только в этой сети. Потом, по мере необходимости, в VPN и управляй.

Если у вас только один сервер, это, вероятно, перебор. Этого должно быть достаточно, чтобы использовать надежные открытые ключи и гарантировать, что только пользователям, у которых действительно есть учетные записи оболочки, разрешена аутентификация. Отключение аутентификации по паролю для SSH в этом случае - неплохая идея. Для этого отредактируйте /etc/ssh/sshd_config и установить PasswordAuthentication no. Если вы используете только аутентификацию с открытым ключом, обязательно отключите PAM с помощью UsePAM no, поскольку PAM может аутентифицировать пользователей с помощью паролей, даже если вы отключили аутентификацию по паролю в sshd.

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

http://www.whiteboardcoder.com/2012/12/amazon-aws-vpc-setting-up-openvpn-server.html

Вам нужно немного изменить группу безопасности. В настоящее время у вас есть статический IP-адрес в качестве разрешенного хоста для входящих подключений. Сделайте его диапазоном IP-адресов, который соответствует диапазону IP-адресов динамического IP-адреса сервера OpenVPN (того, который вы указываете в настройках VPN по ссылке выше).

Сервер OpenVPN будет доступен для всех, но это соединение зашифровано (https) и защищено ключом вашего профиля OpenVPN и паролем вашей учетной записи.

Я бы установил на вашем ноутбуке динамическую учетную запись DNS, такую ​​как no-ip или dynds, затем вы можете добавить это имя хоста dyn в /etc/hosts.allow и заблокировать все остальное в / etc / hosts / deny.

Таким образом, у вас будет Linux, чтобы разрешить только этот динамический хост, также вам может потребоваться добавить сегмент локальной подсети в файл /etc/hosts.allow.

ура ...