Как сказано выше, изменение номера версии
- Трудно сделать
- Безопасность через неизвестность
- Не гибкий
То, что я предлагаю, это реализация Port Knocking. Это довольно простой способ скрыть все, что работает на вашем сервере.
Вот хорошая реализация:
http://www.zeroflux.org/projects/knock
Вот как я реализовал это на своих серверах (другие номера), чтобы открыть SSH только людям, которые знают «секретный стук»:
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
Это даст 5-секундное окно, в котором 3 SYN-пакета должны быть получены в правильном порядке. Выберите порты, которые расположены далеко друг от друга и не являются последовательными. Таким образом, сканер портов не может открыть порт случайно. Эти порты не нужно открывать с помощью iptables.
Вот сценарий, который я называю. Он открывает определенный порт на 5 секунд для IP, отправляющего SYN-пакеты.
#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2 -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2 -j ACCEPT
Отправка SYN-пакетов может быть очень болезненной, поэтому я использую скрипт для подключения к SSH моих серверов:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6
(Совершенно очевидно, что здесь происходит ...)
После того, как соединение установлено, порт можно закрыть. Подсказка: используйте ключ-аутентификацию. В противном случае вам нужно очень быстро вводить пароль.