Все больше и больше веб-мастеров начинают использовать выделенные хосты и VPS. Чтобы сэкономить средства или повысить производительность, автономные компьютеры и VPS многих людей основаны на неуправляемом «голом железе», и все должно быть сделано своими руками. В настоящее время реализация политики безопасности по-прежнему важна. В следующей статье я возьму CentOS в качестве примера, чтобы кратко описать, как настроить безопасный доступ по SSH.
Первая стратегия безопасности SSH в Linux: закрытие ненужных портов
Большинство хостов, которые были скомпрометированы в сети, стали целью хакеров, использующих инструменты сканирования для проведения крупномасштабных проверок. Поэтому, чтобы избежать сканирования, кроме необходимых портов, таких как Web, FTP, SSH и т. д., следует закрыть все остальные. Стоит отметить, что я настоятельно рекомендую закрыть icmp-порт и установить правила отбрасывания icmp-пакетов. Таким образом, другие не смогут пропинговать ваш сервер, и угроза, естественно, уменьшится вдвое. Чтобы отбросить пакеты icmp, добавьте в iptables следующую строку:
-A ВХОД -p icmp -j DROP
Вторая стратегия безопасности SSH в Linux: изменение порта SSH
Порт SSH по умолчанию — 22. Настоятельно рекомендуется изменить его на более чем 10 000. Таким образом, вероятность того, что порт просканируют другие, значительно снижается. Метод модификации:
# Редактируем /etc/ssh/ssh_config
vi /etc/ssh/ssh_config
# В разделе «Хост *» добавьте новое значение порта. В качестве примера возьмем 18439 (то же самое ниже):
Порт 22
Порт 18439
# Редактируем /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Добавляем новое значение порта
Порт 22
Порт 18439
# После сохранения перезапустите службу SSH:
перезапуск службы sshd
Я настроил здесь два порта, в основном для того, чтобы предотвратить невозможность входа в систему по SSH из-за ошибок модификации. Измените порт подключения вашего SSH-клиента (например: Putty) и проверьте соединение. Если новый порт может подключиться успешно, отредактируйте два вышеуказанных файла и удалите конфигурацию порта 22. Если соединение не установлено, подключитесь через порт 22, а затем выполните повторную настройку.
После успешной настройки порта обратите внимание, что вам также следует удалить порт 22 из iptables, добавить вновь настроенный 18439 и перезапустить iptables.
Если пароль для входа в SSH слабый, следует установить сложный пароль. В блоге Google есть статья, в которой особое внимание уделяется безопасности паролей: проходит ли ваш пароль проверку?
Третья стратегия безопасности Linux SSH: ограничить вход по IP
Если вы можете подключиться к серверу с фиксированным IP-адресом, вы можете настроить разрешение входа на сервер только с определенного IP-адреса. Например, я захожу на сервер через собственный VPN. Настройки следующие:
# Редактируем /etc/hosts.allow
vi /etc/hosts.allow
# Например, вход разрешен только с адреса 123.45.67.89.
сшд: 123.45.67.89
Четвертая стратегия безопасности SSH в Linux: используйте сертификаты для входа в SSH
Использование сертификата более безопасно, чем вход в систему с паролем. Я написал подробный мастер-класс по приготовлению кофе с водопроводной водой и с его разрешения перепечатываю его следующим образом:
Настройка проверки входа в систему по сертификату SSH для CentOS
Помогите сетевому администратору компании удаленно обнаружить почтовый сервер CentOS 5.1 и использовать OpenSSH для удаленного управления им. При проверке журнала безопасности я обнаружил, что в последние несколько дней куча IP приходила подбирать пароли почти каждый день. Похоже, нам нужно изменить метод проверки входа и заменить его на проверку сертификата.
На всякий случай я временно запустил VNC, чтобы предотвратить завершение настройки, и перезапуск sshd, когда я был бы рад, мог бы вызвать проблемы. (Позже я узнал, что это избыточно, просто заранее откройте putty и не закрывайте его)
Вот простые шаги:
1) Сначала добавьте учетную запись обслуживания: msa.
2) Тогда су - мса
3) ssh-keygen -t rsa
После указания пути к ключу и ввода пароля в /home/msa/.ssh/ генерируются открытый и закрытый ключи: id_rsa id_rsa.pub
4) cat id_rsa.pub >> авторизованные_ключи
Что касается того, почему создается этот файл, то это то, что написано в sshd_config.
Затем выполните chmod 400authorized_keys, чтобы немного защитить его.
5) Используйте psftp, чтобы вернуть id_rsa на локальный компьютер, а затем уничтожьте id_rsa и id_rsa.pub на сервере.
6) Настройте /etc/ssh/sshd_config
Протокол 2
Серверкейбитс 1024
PermitRootLogin no #Просто запретить вход в систему с правами root, не имеет ничего общего с этой статьей, к тому же это безопаснее
#В следующих трех строках нечего менять, просто удалите комментарий # по умолчанию.
RSAA-аутентификация да
PubkeyAuthentication да
AuthorizedKeysFile .ssh/authorized_keys
ПарольАутентификация нет
PermitEmptyPasswords нет
7) Перезапустите СШД.
/sbin/service перезагрузка sshd
8) Преобразуйте формат сертификата и вставьте шпатлевку.
Запустите puttygen, чтобы преобразовать id_rsa в файл сертификата ppk putty.
9) Настройте вход в putty в Connection-SSH-Auth, нажмите «Обзор» и выберите только что преобразованный сертификат.
Затем введите имя пользователя для автоматического входа в Connection-Data, например, у меня msa.
Введите IP-адрес сервера в сеансе. Если вас устраивает, вы можете сохранить его.
10) Когда вы решите небольшую проблему и достигнете этого шага, вы можете быть напрасно счастливы. В настоящее время вы можете войти в систему с волнением, но, возможно, вы не сможете войти:
Нет доступных поддерживаемых методов аутентификации.
В это время вы можете изменить sshd_config и изменить
Номер пароляAuthentication временно изменен на:
ПарольАутентификация да и перезапустите sshd
Таким образом, вы сможете успешно войти в систему. После выхода из системы снова измените значение PasswordAuthentication на no и перезапустите sshd.
При дальнейшем входе в систему вам будет предложено ввести пароль файла ключа. Если вы ответите правильно, вы сможете успешно войти в систему.
Что касается команды psftp, просто добавьте параметр -i и укажите путь к файлу сертификата.
Если вы управляете сервером удаленно, чтобы изменить вышеуказанную конфигурацию, не забывайте проявлять осторожность на каждом этапе и избегать ошибок. Если конфигурация неправильная и соединение SSH не может быть установлено, это будет сбой.
По сути, после настройки в соответствии с четырьмя вышеперечисленными пунктами доступ по SSH под Linux становится относительно безопасным. Конечно, безопасность и незащищенность относительны. Вам следует регулярно проверять журнал сервера, чтобы своевременно обнаруживать и устранять скрытые опасности.
Источник статьи: http://www.xiaohui.com/dev/server/linux-centos-ssh-security.htm