
Изменение портов по умолчанию (таких как SSH 22 или RDP 3389) — это практичный способ уменьшить количество автоматических сканирований и попыток взлома методом перебора. Это не «волшебная защита», но полезный элемент стратегии многоуровневой защиты — особенно на публичном VPS-хостинге.
В этом руководстве показано, как безопасно изменить порты на VPS под Linux (SSH) и на VPS под Windows (RDP), как избежать блокировки доступа и как проверить работу брандмауэра и подключения.
Перед изменением любого порта управления:
На VPS под управлением Linux SSH обычно является целью № 1. Самый безопасный алгоритм действий: разрешить новый порт → настроить SSH → перезапустить → протестировать → затем закрыть старый порт.
Выберите порт, например 2222, 22022 или любой другой высокий порт, который не используется вашими сервисами.
# Check if a port is already in use (replace 2222)
sudo ss -lntp | grep ':2222' || echo "Port 2222 is free"
# Allow new SSH port
sudo ufw allow 2222/tcp
# Keep existing SSH port until you verify access
sudo ufw allow 22/tcp
sudo ufw status
Если вы не используете UFW, откройте порт в вашем инструменте брандмауэра (iptables/nftables/firewalld) и также убедитесь, что он разрешен в брандмауэре панели вашего провайдера VPS-хостинга.
Отредактируйте конфигурацию SSH:
sudo nano /etc/ssh/sshd_config
Установите (или добавьте) следующие строки:
Port 2222
# Keep this enabled
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Совет: Безопаснее сначала убедиться, что вход по ключу работает, и только потом отключить пароли.
sudo sshd -t
sudo systemctl restart ssh
sudo systemctl status ssh --no-pager
# From your local PC
ssh -p 2222 user@SERVER_IP
Только после успешного входа на новый порт:
sudo ufw delete allow 22/tcp
sudo ufw status
На VPS с Windows изменение порта RDP может уменьшить количество автоматических сканирований, но вам также следует ограничить правило по IP и оставить NLA включенным. Если возможно, рассмотрите использование RD Gateway / VPN для внешнего доступа.
Выберите порт, например 3390 или 53389. Сначала откройте его в брандмауэре провайдера в панели управления VPS, чтобы избежать ситуации, когда «внутри работает, а снаружи нет».
Запустите PowerShell от имени администратора на сервере (в примере используется 53389):
# Set new RDP port (Decimal)
$NewPort = 53389
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' -Name 'PortNumber' -Value $NewPort
# Allow inbound TCP on the new port
New-NetFirewallRule -DisplayName "RDP (TCP $NewPort)" -Direction Inbound -Protocol TCP -LocalPort $NewPort -Action Allow
Рекомендуемая практика: ограничьте доступ по вашему IP-адресу (замените x.x.x.x):
New-NetFirewallRule -DisplayName "RDP (TCP $NewPort) - My IP only" `
-Direction Inbound -Protocol TCP -LocalPort $NewPort -RemoteAddress x.x.x.x -Action Allow
Перезагрузка — самый простой и надежный способ. Если вы не можете перезагрузить систему сразу, перезапустите службу (это может привести к сбою текущего сеанса):
Restart-Service TermService -Force
С клиентского компьютера под управлением Windows:
Test-NetConnection SERVER_IP -Port 53389
В mstsc подключитесь следующим образом: SERVER_IP:53389
ss/netstat проверки).Изменение порта по умолчанию — это хороший шаг по «уменьшению шума» и укреплению безопасности, но настоящая безопасность обеспечивается надежной аутентификацией и ограниченным доступом. Используйте это в рамках многоуровневого подхода на вашем VPS под Linux или Windows на профессиональном VPS-хостинге.