Брандмауэр начал сбрасывать ответ SSH
Мой брандмауэр (Sonicwall NSA 2400) начал сбрасывать ответ SSH с моего удаленного сервера Linux. Когда я запускаю сеанс SSH со своего внутреннего IP-адреса, время ожидания истекает, и когда я просматриваю журнал брандмауэра, я вижу следующее:
TCP connection dropped
source (remote Linux server IP), port 1200, interface X1
destination: (my internal IP), port 65050, interface X0
notes: TCP Port: 65050
Последующие попытки заканчиваются неудачей, всегда с другим внутренним портом назначения. Что мне здесь не хватает? Я не добавил никаких правил в брандмауэр Sonicwall, но SSHD сервера Linux (Ubuntu 10.10) недавно был обновлен.
Обновить:
Дамп пакета показывает, что пакет отбрасывается из-за недопустимого флага TCP.
IP Type: TCP(0x6), Src=[source ip], Dst=[10.10.10.11]
TCP Packet Header
TCP Flags = [RST,], Src=[1200], Dst=[51150], Checksum=0x76d7
Application Header
Not Known
Value:[0]
DROPPED, Drop Code: 22, Module Id: 26, (Ref.Id: _3694_uyHtJcpfngKrRmv) 1:1)
Hex:
0017c519 be3d0090 1a422c89 08004500 002c0000 00001606 *.....=...B,...E..,......*
82a34e10 18c10a0a 0a0b04b0 c7ce6c45 9d910000 00005004 *..N...........lE......P.*
000076d7 00007366 7463 *..v...sftc *
Означает ли это, что Sonicwall просто суетливо или что-то неправильно настроено на удаленном сервере? Я могу подключиться к нему из другой удаленной локальной сети без каких-либо проблем.
2 ответа
Ах, радость выяснения, почему кровавый Sonicwall отбрасывает пакеты. Добро пожаловать на владение устройством АНБ.
Прежде всего, укажите на это выпадающее сообщение на странице администратора Sonicwall. Вы должны увидеть всплывающее сообщение, и в него будет включен "идентификатор сообщения". Вы можете сопоставить это значение с указанными здесь кодами удаления (для версии встроенного ПО 5.6.0.x). Если вы используете более старую прошивку, вот версия 5.5.0.x или версия 4.2.0.x. Коды довольно расплывчаты, но это может помочь вам встать на правильный путь.
Кроме того, вы можете сделать дамп пакета, и код сброса и идентификатор модуля будут перечислены в интерфейсе захвата пакета, когда вы посмотрите на отброшенный пакет.
- Кристофер Карел
Проблема в том, как Linux управляет согласованием MTU (tcp_mtu_probing). Большинство Linux-коробок поставляется с режимом, в котором Linux не вступает в общение с альтернативой стандарту (который с другой стороны небезопасен, и поэтому Sonicwall его не принимает). Вы можете исправить это в своей Linux-системе, выполнив это:
echo 2> / proc / sys / net / ipv4 / tcp_mtu_probing
Таким образом, проблема в том, что Sonicwall отказывается определять размер MTU, используя "первый" и самый стандартный метод, потому что это небезопасно, а Linux отказывается согласовывать размер MTU, используя "альтернативный" метод, который является более безопасным, но менее эффективным.
Результат, ты трахал. Это происходит только в ситуациях, когда брандмауэр не может самостоятельно фрагментировать пакет из-за зашифрованной полезной нагрузки, которую необходимо перекомпоновать в источнике, а не в пути. Вот почему, похоже, много проблем с SSL, SSH и другими зашифрованными соединениями.
С OpenSSH вы можете "взломать" способ согласования необходимости изменения размера полезной нагрузки, коснувшись некоторых опций в опциях клиента openSSH, но вы можете найти проблему с помощью другого приложения, поэтому лучше решить проблему, изменив способ Ядро управляет этой ситуацией, если нет, вы можете исправить SSH, но позже обнаружите проблемы с SSL или OpenVPN.
Дополнительная информация от Sonicwall: https://support.software.dell.com/kb/sw3798. SonicWALL не учитывает и не передает сообщения об обнаружении пути в MTU локальной сети, поскольку нет способа их аутентификации, и они могут использоваться как форма атаки. Например, кто-то может инициировать атаку типа "отказ в обслуживании" на незащищенный сервер, просто отправив ему пакет Path MTU Discovery, который предписывает серверу ограничить размер пакета 5 байтами вместо обычных 1500 байтов. Это замедлит работу сервера до его обхода, поскольку ему приходится обрабатывать одинаковое количество данных во многих других пакетах, что создает большие издержки.