В настоящее время я запускаю сервер с SSH на нестандартном порту из соображений безопасности. Это был 522 на CentOS 5, но CentOS 6 (легко) не позволяет SSH работать на любом порту ниже 1024, кроме 22, очевидно. Для CentOS 6 я использовал гораздо более высокий порт (>10000), но теперь мне приходится запускать его на 522 (из-за различных неприятных проблем с хостингом/брандмауэром, введенных моим хостинг-провайдером). Я использую ядро > 2.6.24 и SELinux.
Я считаю, что это возможно, возможно, с помощью CAP_NET_BIND_SERVICE и setcap, но я не могу найти хорошую ссылку. Любая помощь будет оценена по достоинству.
решение1
На CentOS How To есть пост о том, как защитить SSH в системе. В пятом разделе говорится об использовании нестандартного порта:
http://wiki.centos.org/HowTos/Network/SecuringSSH
- Используйте нестандартный порт
По умолчанию ssh прослушивает входящие соединения на порту 22. Чтобы хакер мог определить, запущен ли ssh на вашей машине, он, скорее всего, просканирует порт 22, чтобы определить это. Эффективный метод — запустить ssh на нестандартном порту. Подойдет любой неиспользуемый порт, хотя предпочтительнее порт выше 1024. Многие выбирают 2222 в качестве альтернативного порта (так как его легко запомнить), так же как 8080 часто называют альтернативным портом HTTP. По этой самой причине это, вероятно, не лучший выбор, так как любой хакер, сканирующий порт 22, скорее всего, также будет сканировать порт 2222 просто для пущей уверенности. Лучше выбрать какой-нибудь случайный порт с высоким номером, который не используется ни для одной известной службы. Чтобы внести изменение, добавьте в файл /etc/ssh/sshd_config следующую строку:
# Run ssh on a non-standard port:
Port 2345 #Change me
Затем при использовании SSH для подключения просто укажите ключ -p, если вы делаете это с другого сервера Linux. Или, если вы используете что-то вроде PuTTY, измените там порт.