При подключении по ssh в auth.log в качестве исходного IP-адреса отображается внешний IP-адрес сервера вместо IP-адреса клиента.

Вопрос или проблема

У меня очень странная ситуация с моим SSH-соединением. Каждый раз, когда я подключаюсь к своему серверу, независимо от моего внешнего IP, источником соединения является внешний IP сервера.

Пример

    ОС сервера:  PCLinuxOS
    IP клиента:  [C.C.C.C]
    IP сервера:  [S.S.S.S]

После успешного соединения по SSH я выполняю команду “last” и получаю это:

username pts/0        [S.S.S.S]   Ср Янв 29 19:29   все еще в системе

Это результат netstat для поиска порта 22:

$ netstat -atn | egrep '(:22)'
tcp        0     96 192.168.1.34:22            [S.S.S.S]:31685        ESTABLISHED

Я не могу найти IP клиента [C.C.C.C] нигде.

У меня не было бы никаких особых проблем с этим, но теперь приходит лучшая часть. Я нашел атаку на мой сервер в файле auth.log:

Jan 27 12:55:42 localhost sshd[2295]: Неверный пользователь a с [S.S.S.S]
Jan 27 12:55:42 localhost sshd[2295]: input_userauth_request: неверный пользователь a [preauth]
Jan 27 12:55:42 localhost sshd[2299]: Неверный пользователь a с [S.S.S.S]
Jan 27 12:55:42 localhost sshd[2299]: input_userauth_request: неверный пользователь a [preauth]
Jan 27 13:49:58 localhost sshd[17917]: Неверный пользователь jack с [S.S.S.S]
Jan 27 13:49:58 localhost sshd[17917]: input_userauth_request: неверный пользователь jack [preauth]
Jan 27 13:50:07 localhost sshd[17923]: Неверный пользователь ibsadmin с [S.S.S.S]
Jan 27 13:50:07 localhost sshd[17923]: input_userauth_request: неверный пользователь ibsadmin [preauth]

После этой атаки результат заключается в том, что мой демон fail2ban добавит IP сервера [S.S.S.S] в список заблокированных, и я больше не смогу подключиться к своему серверу.

Сервер находится за маршрутизатором с настроенной NAT-перенаправлением порта на SSH. Проблема не возникает, когда я подключаюсь к серверу из своей локальной сети, в этом случае отображается правильный IP. Это мой файл sshd_config:

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_IDENTIFICATION LC_ALL
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AuthorizedKeysFile      .ssh/authorized_keys
ChallengeResponseAuthentication no
ClientAliveInterval 60
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
IgnoreRhosts yes
KeyRegenerationInterval 1h
LoginGraceTime 30
MaxAuthTries 2
MaxSessions 4
MaxStartups 10:30:60
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
Port 22
PubkeyAuthentication yes
RSAAuthentication yes
StrictModes yes
Subsystem       sftp    /usr/lib64/ssh/sftp-server
TCPKeepAlive yes
UseDNS  no
UsePAM no
UsePrivilegeSeparation yes
X11Forwarding yes

Я точно знаю, что у меня не было этой проблемы месяц назад, но я не могу понять, что изменилось.

EDIT:

Это результат команды iptables -L:

$ iptables -L
Цепочка INPUT (политика ACCEPT)
цель     протокол опция источник               назначение
fail2ban-SSH  tcp  --  везде             везде             tcp dpt:ssh

Цепочка FORWARD (политика ACCEPT)
цель     протокол опция источник               назначение

Цепочка OUTPUT (политика ACCEPT)
цель     протокол опция источник               назначение

Цепочка fail2ban-SSH (1 ссылка)
цель     протокол опция источник               назначение
RETURN     all  --  везде             везде

Редактировать: Извините за позднее редактирование… Я решил эту проблему, сменив ОС на Debian.

Проблема с тем, что IP-адрес вашего собственного маршрутизатора отображается в логах как источник любого внешнего соединения, вызвана программным обеспечением NAT (преобразование сетевых адресов), работающим на вашем маршрутизаторе. Попробуйте использовать другой маршрутизатор. (Если вам комфортно это делать, вы также можете перепрошить свой маршрутизатор на более хорошую прошивку, такую как Gargoyle).

После прочтения первой половины я задался вопросом, подключаетесь ли вы из внешней сети. Сервер находится в частной сети (например, 192.168.x.x), есть ли маршрутизатор с NAT. Возможно, маршрутизатор изменяет адрес.

Мой маршрутизатор не делает этого на входящих портах. Он только переписывает исходный адрес. Поэтому замена маршрутизатора может помочь.

Ответ или решение

Подробный анализ проблемы SSH: Отображение внешнего IP сервера вместо IP клиента

Введение

Проблема, с которой вы столкнулись, заключается в том, что при подключении к вашему серверу через SSH в логах auth.log отображается внешний IP-адрес вашего сервера вместо фактического IP-адреса клиента. Это создает сложности с безопасностью и ведением учета подключений, особенно при использовании таких инструментов, как fail2ban, что может блокировать доступ к вашему серверу из-за подозрительной активности. В данной статье мы будем разбирать, что может вызывать это поведение и как его можно исправить.

Причины проблемы

1. NAT (Сетевой адресный перевод)

Наиболее вероятной причиной данной ситуации является использование NAT на вашем маршрутизаторе. Когда клиент подключается к серверу, запрашивая IP-адрес сервера, маршрутизатор преобразует исходный адрес пакетов связи клиента в свой собственный внешний IP-адрес. В результате, когда сервер регистрирует незаконные подключения, он видит внешние IP маршрутизатора.

Таким образом, если ваш сервер находится за маршрутизатором с настроенным NAT, любой внешний трафик, проходящий через него, будет отображать внешний IP адрес маршрутизатора в логах SSH.

2. Настройки маршрутизатора

Ваш маршрутизатор может быть настроен неправильно или использовать свою собственную реализацию NAT, в которой исходный адрес не сохраняется. Кроме того, некоторые маршрутизаторы могут иметь более жесткие правила, которые могут быть причиной такого поведения.

3. Конфигурация SSH

Конфигурационный файл sshd_config, который вы привели, в целом выглядит корректно. Важные параметры, такие как UseDNS, установленный в значение no, предотвращают попытки SSH-сервера разрешать IP адреса в DNS. Это решение подходит, но не затрагивает отметку IP адреса клиента.

Решение проблемы

1. Измените настройки маршрутизатора

Самым простым и эффективным решением будет проверка и, возможно, модификация настроек вашего маршрутизатора. Попробуйте:

  • Обновить прошивку маршрутизатора до последней версии.
  • Изменить маршрутизатор на более современный и надежный, который может лучше обрабатывать NAT.
  • Рассмотреть возможность настройки маршрутизатора так, чтобы он не скрывал исходный IP-адрес клиента, если такая возможность есть.

2. Используйте VPN

Второй способ – настроить VPN-соединение, которое позволяет удаленному клиенту подключаться к серверу через защищенное соединение. Подключение через VPN может облегчить идентификацию клиента и избежать проблемы, связанной с NAT.

3. Изменения в конфигурации SSH

На данный момент это не решит основную проблему, но вы можете рассмотреть возможность дополнительной логики обработки подключений на сервере, например, добавить систему аутентификации, которая позволяет отслеживать и регистрировать IP-адреса клиентов более точно.

Заключение

Ваша ситуация может представлять риски безопасности, поскольку IP-адрес вашего сервера может быть заблокирован на основании неправильной информации. Изменение настроек вашего маршрутизатора или переход на более современное устройство может решить вашу проблему. Также рассмотрите возможность использования VPN для улучшения управления подключениями. Надеемся, что предложенные выше решения помогут вам устранить возникшую проблему, обеспечивая при этом большую безопасность вашего сервера.

Оцените материал
Добавить комментарий

Капча загружается...