
Я хочу открыть терминал ssh, но он выдает мне сообщение об отказе в подключении на порту 22. В моем nmap нет порта 22? Как мне подключиться к моему серверу?
PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
80/tcp open http
4000/tcp filtered remoteanything
4001/tcp filtered newoak
4002/tcp filtered mlchat-proxy
Это мой скан портов с hackertarget.com:
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.1
22/tcp closed ssh
25/tcp open smtp Postfix smtpd
80/tcp open http lighttpd 1.4.29
110/tcp closed pop3
139/tcp closed netbios-ssn
143/tcp closed imap
443/tcp closed https
445/tcp closed microsoft-ds
1433/tcp closed ms-sql-s
3306/tcp closed mysql
8080/tcp closed http-proxy
Как закрыть sshd?
решение1
Если ваше соединение отклонено, а Nmap показывает, что порт закрыт, то вы не можете подключиться. Если у вас есть другой способ (физический терминал, виртуальная консоль и т. д.) получить доступ, вы можете подтвердить, запущен ли демон SSH, с помощью любой из этих команд (некоторые могут быть недоступны в вашей системе):
ps -f -C sshd
ps aux | grep sshd
sudo netstat -ptan | grep sshd
service ssh status
Если он не запущен, вам нужно его запустить. Обычные способы сделать это:
service ssh start
invoke-rc.d ssh start
/etc/init.d/ssh start
/usr/sbin/sshd
Все эти команды должны требовать привилегий root (например, sudo).
Если демон запущен, но вы все еще не можете подключиться, то, возможно, сетевое устройство или брандмауэр iptables вашего хоста блокируют соединения. Вы можете увидеть свои собственные правила с помощью iptables -L
, но если вы используете менеджер брандмауэра (UFW популярен в Ubuntu), таблицы могут быть трудночитаемыми, и вам следует проверить пользовательский интерфейс используемого вами инструмента ( ufw status
например, ). Маловероятно, что его блокирует сетевое устройство, поскольку ваш вывод Nmap показывает несколько отфильтрованных (защищенных брандмауэром) портов, и 22/tcp среди них нет.
Наконец, есть некоторые инструменты и скрипты защиты (например,fail2banи другие), которые могут блокировать адреса за нарушение политик (например, слишком много неудачных попыток входа в систему), поэтому вам может потребоваться проверить журналы на наличие подобных вещей.
решение2
Вы можете проверить состояние вашего SSH-сервера удаленно, используяnmap
$ nmap -v -nn serverip 22
Если он показывает, что ssh-сервер не работает, то вам нужно получить локальный доступ к ssh-серверу и выполнить команду типа:
$ /etc/init.d/ssh status
Если эта служба show ssh не работает, то вам придется ее запустить
$ sudo /etc/init.d/ssh start
или
$ service ssh start