SSH стал де-факто стандартом для удаленного доступа. Однако установка ssh
по умолчанию не является самой безопасной, и
есть несколько простых шагов, которые могут значительно повысить безопасность.
Я покажу вам, как защитить открытый ssh-сервер.
Файл конфигурации сервера находится в / etc / ssh / и называется sshd_config.
Это файл конфигурации сервера.
Чтобы изменить что-либо, относящееся к серверу, вы должны отредактировать этот файл.
После редактирования файла необходимо перезапустить сервер, чтобы новые изменения вступили в силу.
Прежде чем вы начнете вносить какие-либо изменения в конфигурацию сервера, я рекомендую вам сделать резервную копию
файла.
Я настоятельно рекомендую это, особенно если вы новичок.
Обратите внимание, что есть также файл с именем sshd_config, он
является файлом конфигурации клиента ssh, а sshd_config - файлом
конфигурации демона ssh.
Это d происходит от daeman. Итак, я открываю sshd_config, конечно, корень.
Каждая строка, начинающаяся с символа «#», интерпретируется как комментарий. Каждая строка может состоять из параметра
конфигурации , пробела и значения для этого параметра.
В этом файле ключевые слова нечувствительны к регистру, а аргументы, содержащие пробелы, должны быть заключены
в двойные кавычки (").
И, как объясняется в файле, используемая стратегия состоит в том, чтобы указать параметры с их значениями по умолчанию, 20
но оставить их в комментариях. out.21
Если вы хотите переопределить параметр по умолчанию, вы должны раскомментировать эту строку и изменить параметр.
Взгляните на эту строку, которая закомментирована. Значение по умолчанию для параметра Port - 22,
порт, на котором сервер слушает, и
если я хочу изменить порт по умолчанию,
мне нужно раскомментировать строку и изменить значение этой опции.
Не все доступные опции запроса ssh представлены в этом файле.
И если вы хотите узнать больше о том, что используется конкретная опция, затем откройте страницу руководства sshd_config.
и найдите там интересующий вас
вариант.
Вот так . Я ищу параметр под названием "Разрешить пользователям".
И я вижу описание параметра.
Давайте начнем !
Это мои главные рекомендации по безопасности ng сервер. Используйте нестандартный порт для сервера.
По умолчанию демон ssh прослушивает входящие соединения на порту 22. Чтобы хакер мог определить, что
ssh запущен на вашем компьютере, он, скорее всего, просканирует порт 22; измените его на случайный порт,
и вас не заметят при случайном сканировании, но не при целевых атаках.
Конечно, это безопасность через неясность,
и в целом это не считается хорошей практикой безопасности, потому что изменение порта не делает
ваш сервер более безопасным.
Хакер, который нацелен на вас, может просканировать все порты с помощью такого инструмента, как nmap, и найти порт vew.
Однако в случае ssh, когда подавляющее большинство атак автоматизированы и не являются целевыми, это
настоятельно рекомендуется.
Раскомментирую строку
и меняю порт на какой-нибудь случайный.
Не забудьте внести необходимые изменения в правила вашего брандмауэра, чтобы разрешить Новый порт, если это так.
Мой второй совет - отключить прямой вход root.
Одна из самых опасных дыр в системе безопасности - это возможность прямого входа в систему как root
через ssh. Независимо от того, насколько надежен пароль root, всегда есть вероятность, что хакер сможет найти
пароль с помощью атаки грубой силы. Если вам нужен root-
доступ, войдите в систему как обычный пользователь и используйте команды sudo или su для выполнения команд как root. Я
ищу PermitRootLogin.
Эта строчка! Директорский логин root по умолчанию отключен, но вы все равно должны это проверить.
Значение по умолчанию - запретить пароль, что означает, что root может войти в систему напрямую, используя другой
метод аутентификации, а не пароль.
Например, он может использовать аутентификацию с открытым ключом.
Это приемлемо, но я предпочитаю изменить это на «нет».
Мой третий совет - полностью отключить аутентификацию по паролю, если это возможно, и включить только аутентификацию
публичного просмотра .
Это считается более безопасным.
Это не самая простая задача,
поэтому есть специальный раздел о том, как это сделать позже в курсе.
Если невозможно отключить аутентификацию по паролю на сервере, используйте только надежные пароли,
а это означает случайные пароли длиной не менее 10 символов, состоящие из букв, цифр
и специальных символов! Не используйте словарные слова или сочетания таких слов, независимо от языка.
Еще один совет - ограничить доступ пользователей по ssh. По умолчанию
все пользователи системы могут входить в систему через SSH, используя свой пароль или открытый ключ, даже если есть только несколько пользователей-
администраторов, которым действительно нужен удаленный доступ к системе.
Этот параметр ограничит влияние обычного пользователя со слабым паролем. Добавьте параметр AllowUsers,
а затем список разрешенных пользователей, разделенных пробелом.
Обратите внимание, что этого параметра нет в файле, поэтому я просто добавляю его.
AllowUsers
и список пользователей. Еще один совет - фильтровать доступ по ssh на уровне брандмауэра.
Если есть только несколько администраторов, которые используют ssh для удаленного управления, тогда разрешите подключение к
порту ssh только из ограниченного списка исходных IP-адресов. Это будут исходные IP-адреса, с
которых администратор будет подключаться, оставаться дома и работать. Разрешить всю сеть, если исходный IP-адрес изменяется
или является динамическим.
Предположим, я хочу разрешить доступ по ssh только с двух IP-адресов или сетей, тогда требуются
следующие правила таблиц IP. Я становлюсь root.
iptables -A INPUT -p tcp --dport и порт ssh; Я изменил
порт на 2278
-s и IP-адрес, который будет разрешен; Я напишу rendom one, - -j ACCEPT accept написано
заглавными буквами и второе правило для второго IP-адреса, которое будет разрешено.
И, наконец, iptables -A INPUT -p tcp --dport 2278 -J
drop.
Теперь будут разрешены только ssh-соединения, исходящие с этих двух IP-адресов.
Если вы хотите разрешить работу всей сети, используйте сетевой адрес вместо IP-адреса! Взгляните
на раздел таблиц IP, где я очень глубоко погрузился в него.
Другой совет - использовать протокол ssh версии 2.
Это значение по умолчанию для последних версий Open Ssh, поэтому вам не нужно ничего делать, просто не
меняйте его на версию 1.
Затем вы должны настроить интервал времени ожидания простоя. .
Это интервал в секундах, после которого, если от клиента не было получено никаких данных, демон ssh
отправит сообщение через зашифрованный канал, чтобы запросить ответ от клиента.
Например, если интервал ожидания простоя, который вы устанавливаете, составляет 300 секунд, по истечении этого интервала
бездействующий пользователь автоматически выходит из системы.
Давайте проверим, есть ли опция в файле.
И это там.
Итак, ClientAliveIntervale 300
и ClientAliveCountMax 0.
Вы можете искать эти параметры на странице руководства sshd_config в любое время.
Вы также можете взглянуть на MaxAuthTries, я ищу MaxAuthTries;
Здесь указывается максимальное количество попыток аутентификации, разрешенных для каждого соединения, и максимальное количество запусков.
Этот параметр определяет максимальное количество одновременных неаутентифицированных подключений к демону ssh.
Также может быть интересно время отсрочки входа в систему.
Сервер отключается по истечении этого времени, если пользователь не вошел в систему, и мой последний совет
- всегда использовать последнюю версию OpenShh.
Выполните все шаги, описанные в этом видео, и вы получите un ssh-сервер, который достаточно безопасен
для большинства корпоративных настроек.