Я хотел бы иметь возможность SSH к моему офисному ПК Ubuntu 10.04 снаружи. Таким образом, я думаю запустить демон SSH на ПК. Какие проблемы с безопасностью, возможные сбои, конкретные параметры конфигурации и т. Д. Я должен знать?
В случае, если это имеет значение: это по сути только для моего собственного использования, я не думаю, что другие люди будут его использовать; это Ubuntu 10.04 ПК в среде Windows 7 / Vista / XP.
Ответы:
Наибольшую озабоченность вызывают люди, входящие в систему в качестве администратора компьютера по SSH. Это можно сделать методом грубой силы, если у вас есть легко угадываемый пароль.
Есть несколько мер безопасности, которые вы можете предпринять, ниже приведены некоторые из тех, которые я всегда предпринимаю при настройке сервера SSH, и некоторые дополнительные.
Используйте надежный пароль, состоящий как минимум из, скажем, 10 заглавных и строчных букв, цифр и других символов.
Тюрьма пользователей в их домашнем каталоге. Заключенные в тюрьму пользователи не смогут получить доступ / редактировать файлы, которые находятся за пределами их домашнего каталога. Таким образом, ваш пользователь не сможет получить доступ / редактировать ключевые системные файлы. В Интернете можно найти множество учебников о том, как посадить в тюрьму пользователя. Большинство из них используют JailKit . Пример такого урока можно найти здесь . Кроме того, вы также можете использовать встроенную
ChrootDirectory
директиву OpenSSH-сервера . Пример учебника по этому вопросу можно найти здесь .Установите Fail2Ban . Fail2Ban - это программа, которая проверяет журналы аутентификации на предмет неправильных записей. Когда достигается определенный лимит, он добавляет блок брандмауэра для этого определенного IP-адреса в течение заданного промежутка времени. В Интернете также есть несколько учебных пособий о том, как настроить Fail2Ban с SSH, например, этот . На домашней странице Fail2Ban также есть несколько хороших и полных HOWTO.
Отключить root-вход через SSH. Это пользователь, который имеет доступ практически ко всем файлам в вашей системе, поэтому рекомендуется отключить его вход в оболочку. В последних версиях Ubuntu пользователь root автоматически отключается, но в любом случае не мешает отключить SSH-доступ. Это делается путем редактирования файла
/etc/ssh/sshd_config
. ✝ Найдите следующую строку и убедитесь, что перед ней нет #.Используйте нестандартный порт (например, не 22). Это можно сделать либо с помощью переадресации портов в маршрутизаторе (например, 16121 -> 22 вместо 22 -> 22), либо с помощью демона SSH, который прослушивает другой порт. Это сделает вашу службу SSH менее легко обнаруживаемой для злоумышленников. Это делается путем редактирования файла
/etc/ssh/sshd_config
. ✝ Найдите следующую строку и измените 22 на любой порт, который вы хотите. Не забудьте перенаправить правильный порт в маршрутизаторе впоследствии.Не используйте пароли для входа в систему. Помимо паролей, SSH также позволяет входить в систему с использованием закрытых ключей. Это означает, что ключ хранится на вашем компьютере, на котором вы получаете доступ к SSH машины SSH. При попытке подключения клиент SSH использует ключ для входа на сервер, а не с помощью аутентификации по паролю. Ключи аутентификации намного надежнее криптографически, чем пароли, и поэтому их не так легко взломать. В Интернете также есть несколько учебных пособий о том, как настроить аутентификацию на основе ключей с помощью SSH, например, этот пример . (Если вы используете SSH из Windows с PuTTY, проверьте эту ссылку для получения информации о PuTTY.) После настройки аутентификации на основе ключей вы можете отключить аутентификацию по паролю, отредактировав файл
/etc/ssh/sshd_config
. ✝ Найдите следующую строку и убедитесь, что перед ней нет #.При желании, как @ Linker3000 упомянул в своем комментарии, вы можете настроить VPN-туннель для ПК, к которому вы хотите получить доступ через SSH, а затем запретить доступ к локальной сети на SSH-сервере. Таким образом, ни одно внешнее устройство без VPN-подключения не сможет получить доступ к вашему SSH-серверу. Это можно сделать, запретив ВСЕ хосты и затем разрешив входить только IP-адресам локальной сети. Это делается путем редактирования
/etc/hosts.deny
и добавления следующего:и
/etc/hosts.allow
добавить следующее:где IP совпадает с номером вашей локальной сети.
*
является подстановочным знаком, поэтому все IP-адреса, начинающиеся с,192.168.1.
будут приняты. Если это не сработает, ваш дистрибутив может использоватьssh
вместоsshd
. В этом случае вы должны попробоватьssh: 192.168.1.*
иssh: ALL
вместо этого.Вы можете разрешить только определенные хосты, сделать то же самое с и
/etc/hosts.allow
и/etc/hosts.deny
как описано в 6, но/etc/hosts.allow
добавьте следующую строку и каждый хост разрешите разделить пробелами:Разрешить только определенным пользователям доступ к вашему SSH-серверу. Это делается путем редактирования файла
/etc/ssh/sshd_config
. ✝ Найдите следующую строку и убедитесь, что перед ней нет #. Если его не существует, создайте его. Например, если вы хотите разрешить только Джон, Том и Мэри, добавьте / отредактируйте эту строку:Вы также можете запретить определенных пользователей, например, если вы хотите запретить доступ к Джону, Тому и Мэри, добавьте / отредактируйте эту строку:
Разрешить протокол SSH2 только для входящих соединений. Есть две версии протокола SSH. SSH1 подвержен проблемам безопасности, поэтому рекомендуется использовать SSH 2. Это может быть вызвано путем редактирования файла
/etc/ssh/sshd_config
. ✝ Найдите следующую строку и убедитесь, что перед ней нет #. Если его не существует, создайте его.удалить, 1, так что линия будет
Не разрешайте пользователям входить в систему без пароля. Это может быть вызвано путем редактирования файла
/etc/ssh/sshd_config
. ✝ Найдите следующую строку и убедитесь, что перед ней нет #. Если его не существует, создайте его.И хотя это просто и, возможно, само собой разумеется, но доказало свою решимость во многих случаях, обновляйте свое программное обеспечение. Регулярно обновляйте установленные пакеты / программное обеспечение.
✝ = после редактирования файла конфигурации SSH не забудьте перезапустить демон, чтобы применить изменения. Перезапустите демон, выполнив:
или
в зависимости от того, какой дистрибутив Linux вы используете.
источник
sudo service ssh restart
на Ubuntu.sudo restart ssh
.Несколько советов:
источник
Основной риск - забыть, что вы используете ssh-сервер, и поставить слабый пароль на учетную запись. Есть злоумышленники, которые систематически пытаются использовать общие имена учетных записей (например,
webmaster
иbob
) и слабые пароли. Вы можете устранить этот риск, запрещая пароль логин (положитьPasswordAuthentication no
вsshd_config
, и либо также ставитьUsePAM No
или отключить аутентификацию пароля в настройках PAM для SSH). Промежуточной мерой является ограничение входа в ssh в белый список пользователей сAllowUsers
илиAllowGroups
вsshd_config
.Обратите внимание, что разрешение входа в систему паролей само по себе не является проблемой безопасности. Проблемы со слабыми паролями и отслеживанием паролей - это проблема, и разрешение аутентификации паролем на сервере ssh является активатором. Чтобы защититься от отслеживания паролей, никогда не вводите свой пароль на машине, которой вы не полностью доверяете (но если вы доверяете машине, вы можете также установить на нее закрытый ключ, и тогда вам не понадобится аутентификация по паролю).
Минимальное требование для использования ssh-клиента на компьютере - это уверенность в том, что не будет активного перехвата ssh-связи (атака типа «человек посередине» возможна, если она выполняется на клиентском компьютере - вы думаете, вы набираете команды в нетронутом ssh-клиенте, но на самом деле клиент точно передает ваши данные аутентификации, а затем вставляет в сообщение троянский конь). Это более слабое требование, чем полагать, что не будет отслеживания паролей (обычно это выполняется с помощью кейлоггера, но есть и другие, менее автоматизированные методы, такие как серфинг через плечо). Если у вас есть минимальное доверие, но вы все еще боитесь перехватчиков, вы можете использовать одноразовые пароли (OpenSSH поддерживает их через поддержку PAM).
Конечно, как и любая другая программа, которая взаимодействует с машинами вне вашего контроля (не только с сетевыми серверами, но и с клиентами), вы должны следить за обновлениями безопасности.
источник
Три вещи пришли мне на ум:
Если вы откроете порт 22 по умолчанию, то довольно скоро он будет обнаружен, и ваш компьютер будет забит атаками грубой силы. Я предлагаю вам настроить sshd для прослушивания какого-либо другого порта или для сопоставления портов на вашем брандмауэре. Хотя это не волшебная пуля, она, по крайней мере, сэкономит вам те же циклы ЦП.
Порт 12345
Явно отключите аутентификацию по паролю и используйте только ключи. Любой ключ будет лучше, чем самый сложный пароль, который вы можете запомнить.
ПарольАутентификация нет
Хотя в Ubuntu по умолчанию отключен пользователь root, явно отключите вход в систему root
PermitRootLogin нет
источник