Что такое возможные проблемы безопасности с демоном SSH?

Я хотел бы смочь к SSH в мой офис Ubuntu 10.04 ПК с внешней стороны. Я таким образом думаю для запуска демона SSH на ПК. Что является проблемами безопасности, возможными незначительными сбоями, определенными параметрами конфигурации, и т.д. Я должен знать?

В случае, если это имеет значение: это по существу для моего собственного использования только, я не думаю, что будут другие люди, использующие его; это - ПК Ubuntu 10.04 в среде главным образом Windows 7/Vista/XP.

14
задан 11.02.2011, 01:06

4 ответа

Самое большое беспокойство было бы людьми, входящими в систему как администратор компьютера по SSH. Это может быть сделано грубой силой, если у Вас есть легкое для предположения пароля.

Существует несколько мер по обеспечению безопасности, которые можно взять, ниже некоторые из тех, я всегда беру при установке сервера SSH и некоторых дополнительных.

  1. Используйте сильный пароль, состоять из, по крайней мере (говорит) что 10 верхних - и строчные буквы, числа и другие символы.

  2. Пользователи тюрьмы к их корневому каталогу. Заключенные в тюрьму пользователи не смогут получать доступ/редактировать к файлам, которые являются вне их корневого каталога. Таким образом, Ваш пользователь не сможет к системным файлам доступа/клавиши редактирования. Много учебных руководств может быть найдено онлайн о том, как заключить в тюрьму пользователя. Большинство из них использует JailKit. Пример такого учебного руководства может быть найден здесь. С другой стороны, можно также использовать собственный компонент OpenSSH-сервера ChrootDirectory директива. Пример учебного руководства на этом может быть найден здесь.

  3. Установка Fail2Ban. Fail2Ban является программой, которая проверяет журналы аутентификации на неправильные записи. Когда определенный предел достигнут, он добавляет блок брандмауэра для того определенного IP для предварительно установленного количества времени. Существует также несколько учебных руководств онлайн, найденных онлайн о том, как настроить Fail2Ban с SSH, пример был бы этим. Домашняя страница Fail2Ban содержит некоторые хорошие и полные ПРАКТИЧЕСКИЕ РУКОВОДСТВА также.

  4. Отключите корневой вход в систему через SSH. Это - пользователь, который имеет доступ к в значительной степени каждому файлу в Вашей системе, запрещение ее входа в систему оболочки поэтому рекомендуется. В последних версиях Ubuntu автоматически отключен пользователь root, но не повреждает отключать свой доступ SSH так или иначе. Это сделано путем редактирования файла /etc/ssh/sshd_config. Ищут следующую строку и удостоверяются, что нет никакого # перед нею.

    #PermitRootLogin no
    
  5. Используйте нестандартный порт (Например, не 22) Это или сделано посредством перенаправления портов в Вашем маршрутизаторе (Например, 16121-> 22 вместо 22-> 22) или заставив демона SSH послушать на другом порте. Это сделает Ваш сервис SSH менее легко обнаруживаемым злонамеренным пользователям. Это сделано путем редактирования файла /etc/ssh/sshd_config. Ищут следующую строку и изменяются 22 на любой порт, который Вы хотите. Не забывайте передавать правильный порт в своем маршрутизаторе впоследствии.

    Port 22
    
  6. Не используйте пароли для входа в систему. Помимо паролей, SSH также позволяет вход в систему при помощи закрытых ключей. Это означает, что ключ хранится на Вашем компьютере, на котором Вы получаете доступ к SSH машины SSH. Когда соединение предпринято, клиент SSH использует ключ для входа в систему в сервер вместо посредством аутентификации по паролю. Аутентификационные ключи намного более сильны криптографически, чем пароли и поэтому не настолько легки расколоться. Существует также несколько учебных руководств онлайн, найденных онлайн о том, как настроить основанную на ключе аутентификацию с SSH, пример был бы этим. (Если Вы SSH из окон с PuTTY, проверьте эту ссылку на практическое руководство PuTTY.) После установки основанной на ключе аутентификации можно отключить аутентификацию по паролю путем редактирования файла /etc/ssh/sshd_config. Ищут следующую строку и удостоверяются, что нет никакого # перед нею.

    #PasswordAuthentication no
    
  7. Дополнительно, как @Linker3000 упомянутый в его комментарии, Вы могли создать туннель VPN к ПК, к которому Вы хотите получить доступ через SSH и затем запретить нелокальный доступ к сети на сервере SSH. Тем путем никакое внешнее устройство без соединения VPN не сможет получить доступ к Вашему серверу SSH. Это может быть сделано, отклонив ВСЕ хосты и затем позволив только локальной сети дюйм/с входить в систему. Это сделано путем редактирования /etc/hosts.deny и добавьте следующее:

    sshd: ALL
    

    и к /etc/hosts.allow добавьте следующее:

    sshd: 192.168.1.*
    

    где IP соответствует тому Вашей локальной сети. * подстановочный знак, таким образом, все IP-адреса, запускающиеся с 192.168.1. будет принят. Если это не работает, Ваше распределение могло бы использовать ssh вместо sshd. В этом случае необходимо попробовать ssh: 192.168.1.* и ssh: ALL вместо этого.

  8. Вы могли только позволить определенные хосты, сделать то же с /etc/hosts.allow и /etc/hosts.deny как описано в 6, но в /etc/hosts.allow добавьте следующую строку и каждый хост для разрешения разделенный пробелами:

    sshd: {IP OF HOST TO ALLOW 1} {IP OF HOST TO ALLOW 2} {IP OF HOST TO ALLOW 3} {ETC.}
    
  9. Позвольте только определенным пользователям получать доступ к своему серверу SSH. Это сделано путем редактирования файла /etc/ssh/sshd_config. Ищут следующую строку и удостоверяются, что нет никакого # перед нею. Если это не существует, создайте его. Например, если Вы хотите позволить Джону, tom и Мэри только, добавляйте/редактируйте эту строку:

    AllowUsers john tom mary
    

    Вы могли также отклонить определенных пользователей, например, если Вы хотите запретить доступа Джону, tom и Мэри, добавляйте/редактируйте эту строку:

    DenyUsers john tom mary
    
  10. Только позвольте протокол SSH2 для входящих соединений. Существует две версии протокола SSH. SSH1 подвергается проблемам безопасности, которые рекомендуется настолько использующий SSH 2. Это может быть вызвано путем редактирования файла /etc/ssh/sshd_config. Ищут следующую строку и удостоверяются, что нет никакого # перед нею. Если это не существует, создайте его.

    Protocol 2,1
    

    удалите, 1, таким образом, строка будет

    Protocol 2
    
  11. Не позволяйте пользователям входить в систему, которые не имеют никакого набора пароля. Это может быть вызвано путем редактирования файла /etc/ssh/sshd_config. Ищут следующую строку и удостоверяются, что нет никакого # перед нею. Если это не существует, создайте его.

    PermitEmptyPasswords no
    
  12. И хотя простой и возможно само собой разумеется, но доказанный крайне важный для нескольких случаев, усовершенствуйте свое программное обеспечение. Регулярно обновляйте свои установленные пакеты/программное обеспечение.


= отредактировав файл конфигурации SSH, не забывайте перезапускать демона для применения изменений. Перезапустите демона путем выполнения:

sudo /etc/init.d/ssh restart

или

sudo /etc/init.d/sshd restart

в зависимости от которого распределения Linux Вы используете.

20
ответ дан 07.12.2019, 11:13

Несколько подсказок:

  1. Используйте основанную на ключе аутентификацию, которая является ПУТЕМ, более безопасным, чем пароли
  2. SSH 2 только
  3. Отключите Корневые логины
  4. Для параноика измените порт от стандартного порта 22
  5. Для удобства используйте инструмент для отображения IP на имя DNS, как Dyndns или его род. Можно пойти долгое время с тем же IP, но что одно время для перемещения и нужен он, Вы найдете, что были выпущены новый.
  6. Конечно, только позвольте порт, необходимый для SSH (порт 22, или нестандартное, если Вы выбираете) через Ваш брандмауэр.
7
ответ дан 07.12.2019, 11:13

Основной риск забывает, что Вы выполняете ssh сервер и помещаете слабый пароль в учетную запись. Существуют взломщики там, которые систематически пробуют общие имена учетной записи (как webmaster и bob) и слабые пароли. Можно устранить этот риск путем запрещения логинов пароля (помещенный PasswordAuthentication no в sshd_config, и любой также помещенный UsePAM No или отключите аутентификацию по паролю в настройках PAM для ssh). Промежуточная мера должна ограничить логины ssh белого списка пользователей с AllowUsers или AllowGroups в sshd_config.

Обратите внимание, что разрешение логинов пароля не является сам по себе проблемой безопасности. Слабые пароли и отслеженные пароли являются проблемами, и позволяющий аутентификацию по паролю в ssh сервере активатор. Для защиты от отслеживания пароля никогда не вводите пароль на машине, которую Вы не делаете полностью доверительный (но затем при доверии машине, Вы могли бы также установить закрытый ключ на нем, и затем Вам не нужна аутентификация по паролю).

Минимальное требование для использования ssh клиента на машине - то, что Вы полагаете, что не будет активного угона ssh коммуникации (атака "человек посередине" возможна, если это работает на клиентской машине — Вы думаете, что вводите команды в нетронутый ssh клиент, но клиент на самом деле передает Ваши данные аутентификации искренне, но также и вставляет троянского коня в коммуникацию впоследствии). Это - более слабое требование, чем доверие, что не будет снупера пароля (обычно выполняемый через клавиатурный перехватчик, но существуют другие менее автоматизированные методы, такие как перемещение плеча). Если Вы действительно имеете минимальное доверие, но все еще боитесь снуперов, можно использовать одноразовые пароли (OpenSSH поддерживает их через свою поддержку PAM).

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

2
ответ дан 07.12.2019, 11:13

Три вещи столкнулись с моим умом:

  1. При открытии порта по умолчанию 22 затем довольно скоро, он будет обнаружен, и ПК будет коваться грубой силой нападения. Я предлагаю, чтобы Вы настроили sshd для слушания некоторого другого порта или действительно портировали отображение на брандмауэре. В то время как это не чудодейственное средство, оно будет верное сохранение Вы те же циклы ЦП, по крайней мере.

    Порт 12345

  2. Явно отключите аутентификацию по паролю и используйте ключи только. Любой ключ будет лучше, чем наиболее сложный пароль, который можно помнить.

    PasswordAuthentication нет

  3. Даже при том, что Ubuntu отключили пользователя root по умолчанию, явно отключите корневой вход в систему

    PermitRootLogin нет

2
ответ дан 07.12.2019, 11:13

Теги

Похожие вопросы