Я новичок в вопросах, связанных с системным администратором / ИТ, поэтому прошу прощения, если это может показаться простым. Я попытался выполнить поиск, но, поскольку 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.
Сначала несколько общих советов по безопасности:
Специально для вашего вопроса есть инструменты, известные как 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.
ура ...