1

Я только что установил Ubuntu Server на одном из моих компьютеров. Я использую маршрутизатор Netgear, и это помогло мне создать учетную запись DynDNS. У меня есть имя хоста для моего динамического IP-адреса, и я перенаправил порты на IP-адрес моего компьютера. Я могу получить доступ к своему компьютеру (Ubuntu Server) через HTTP, HTTPS, FTP и SSH с любого удаленного компьютера.

Недавно, когда я проверил журналы моего маршрутизатора, я обнаружил, что есть несколько удаленных компьютеров, которые подключены к моим серверам SSH (порт 22).

[LAN access from remote] from 218.12.159.34:43871 to 10.X.X.X:22 Monday, Sep 05,2011 04:10:19
[LAN access from remote] from 194.213.42.58:36664 to 10.X.X.X:22 Monday, Sep 05,2011 01:00:41

Эти IP-адреса пытались получить доступ к моему компьютеру более часа. Есть несколько других IP-адресов, которые пытаются это сделать. Когда я вошел в свою учетную запись SSH, я обнаружил, что никто не успешно вошел в систему. Мой компьютер уязвим? Или это автоматизированные программы, которые пытаются установить соединение, или кто-то пытается взломать мой компьютер?

2 ответа2

2

Это соединения, которые вы видите от ботов, пытающихся получить доступ к общим учетным записям с хорошо известными паролями через Интернет. Вы не атакованы, вы просто подключены к интернету :)

Вы можете отфильтровать эти соединения несколькими способами:

Один из способов - разрешить доступ к вашей машине только определенным IP-адресам, используя iptables:

# iptables -N SSH
# iptables -A SSH --src <src_ip1> -j  ACCEPT
# iptables -A SSH --src <src_ip2> -j  ACCEPT
# iptables -A SSH --src <src_ipN> -j  ACCEPT
# iptables -A INPUT -i <iface> -p tcp --dport 22 -j SSH
# iptables -A INPUT -i <iface> -p tcp --dport 22 -j DROP

Другой способ, если вы предпочитаете разрешить кому-либо доступ к вашей машине, но отказываетесь от доступа на основании неудачных входов в систему, вы можете использовать fail2ban , просто apt-get it и следуйте документации. Это очень простая в настройке служба, которая будет сбрасывать соединения с удаленных IP-адресов в зависимости от того, сколько раз они пытались получить доступ к вашему компьютеру и потерпели неудачу.

1

Другой вариант - отключить интерактивный вход с паролем / клавиатурой и использовать ssh-ключи для аутентификации.

Во-первых, вам нужно будет сгенерировать пару ключей, если у вас ее еще нет - в зависимости от вашей ОС это может отличаться, но вот несколько советов:

Как только это будет сделано, вам нужно будет добавить открытый ключ в файл authorized_keys ключи (под учетной записью пользователя, в которую вы хотите войти как):

mkdir -p ~/.ssh
chmod 0700 ~/.ssh
echo "ssh-rsa AAAA..0Wovw== something@somewhere.local" > ~/.ssh/authorized_keys

Затем попробуйте подключиться с вашего клиента:

ssh -i ~/.ssh/id_rsa user@server.ext

Если это не работает, отредактируйте вашу конфигурацию SSH (/etc/ssh/sshd_config) и убедитесь, что установлены следующие записи (и перезапустите службу с помощью service ssh restart):

RSAAuthentication yes
PubkeyAuthentication yes

Однако, если это работает, вы можете отключить вход в систему паролей на SSHd-сервере (еще раз, в файле конфигурации /etc/ssh/sshd_config и перезапустить службу с помощью service ssh restart):

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Наконец, отсоедините и повторите попытку подключения - если это работает, попытайтесь выполнить ssh без аргумента -i ~/.ssh/id_rsa и он не пройдет проверку подлинности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .