у меня есть впк 10.0.0.0/16
с интернет-шлюзом и двумя подсетями 10.0.100.0/24
и 10.0.200.0/24
в той же зоне доступности. Единая группа безопасности позволяет TCP/22
входящий от 0.0.0.0/0
и все исходящие. У меня также есть два сетевых интерфейса, привязанных к группе безопасности, по одному в каждой подсети. Каждый сетевой интерфейс имеет свой эластичный IP-адрес. Существует таблица маршрутизации для каждой подсети, указывающей 0.0.0.0/0
к интернет-шлюзу.
Вот проблема, с которой я столкнулся: у меня есть экземпляр EC2, связанный с обоими сетевыми интерфейсами, но я могу использовать SSH из Интернета только через тот, который связан с eth0
.
Это конфигурация:
$ uname -a
Linux ip-10-0-100-70 5.4.0-1045-aws #47-Ubuntu SMP Вт, 13 апреля, 07:02:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ ip а
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
инет 127.0.0.1/8 область хоста lo
valid_lft навсегда
inet6 :: 1/128 узел области видимости
valid_lft навсегда
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
ссылка/эфир 02:88:59:6e:78:c0 brd ff:ff:ff:ff:ff:ff
inet 10.0.100.70/24 brd 10.0.100.255 область действия глобальная динамическая eth0
valid_lft 1806 сек. selected_lft 1 806 сек.
ссылка на область inet6 fe80::88:59ff:fe6e:78c0/64
valid_lft навсегда
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
ссылка/эфир 02:7d:b2:d4:b5:ea brd ff:ff:ff:ff:ff:ff
inet 10.0.200.118/24 brd 10.0.200.255 область глобальная динамическая eth1
valid_lft 1807 сек. selected_lft 1 807 сек.
ссылка на область inet6 fe80::7d:b2ff:fed4:b5ea/64
valid_lft навсегда
$ IP-маршрут
по умолчанию через 10.0.100.1 dev eth0 proto dhcp src 10.0.100.70 метрика 100
по умолчанию через 10.0.200.1 dev eth1 proto dhcp src 10.0.200.118 метрика 200
10.0.200.0/24 dev eth1 ссылка на область ядра proto src 10.0.200.118
10.0.200.1 dev eth1 proto dhcp scope link src 10.0.200.118 метрика 200
10.0.100.0/24 dev eth0 ссылка на область ядра proto src 10.0.100.70
10.0.100.1 dev eth0 proto dhcp scope link src 10.0.100.70 метрика 100
$ IP-правило
0: из всех локальных поисковых систем
32766: из всех основных поисковых запросов
32767: из всех поисковых запросов по умолчанию
$ sudo ufw статус подробный
Статус: неактивен
$ сс -nlput
Состояние Netid Recv-Q Send-Q Локальный адрес: порт Одноранговый адрес: процесс порта
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 10.0.200.118%eth1:68 0.0.0.0:*
udp UNCONN 0 0 10.0.100.70%eth0:68 0.0.0.0:*
TCP ПРОСЛУШИВАТЬ 0 4096 127.0.0.53%lo:53 0.0.0.0:*
TCP ПРОСЛУШИВАТЬ 0 128 0.0.0.0:22 0.0.0.0:*
TCP ПРОСЛУШИВАТЬ 0 128 [::]:22 [::]:*
Таким образом, оказывается, что сетевые интерфейсы настроены правильно и демон SSH прослушивает все интерфейсы. Демон SSH работает правильно, потому что я уже подключен через SSH к eth0
. И оба интерфейса, кажется, отлично пропускают трафик в Интернет:
$ ping -I eth0 -c 5 1.1.1.1
PING 1.1.1.1 (1.1.1.1) от 10.0.100.70 eth0: 56 (84) байт данных.
64 байта из 1.1.1.1: icmp_seq=1 ttl=38 время=11,5 мс
64 байта из 1.1.1.1: icmp_seq=2 ttl=38 время=11,5 мс
64 байта из 1.1.1.1: icmp_seq=3 ttl=38 время=11,5 мс
64 байта из 1.1.1.1: icmp_seq=4 ttl=38 время=11,6 мс
64 байта из 1.1.1.1: icmp_seq=5 ttl=38 время=11,5 мс
--- 1.1.1.1 статистика пинга ---
5 пакетов передано, 5 получено, 0% потери пакетов, время 4007 мс
rtt min/avg/max/mdev = 11,470/11,515/11,567/0,031 мс
$ ping -I eth1 -c 5 1.1.1.1
PING 1.1.1.1 (1.1.1.1) от 10.0.200.118 eth1: 56 (84) байт данных.
64 байта из 1.1.1.1: icmp_seq=1 ttl=38 время=11,7 мс
64 байта из 1.1.1.1: icmp_seq=2 ttl=38 время=11,8 мс
64 байта из 1.1.1.1: icmp_seq=3 ttl=38 время=11,7 мс
64 байта из 1.1.1.1: icmp_seq=4 ttl=38 время=11,8 мс
64 байта из 1.1.1.1: icmp_seq=5 ttl=38 time=11,8 мс
--- 1.1.1.1 статистика пинга ---
5 пакетов передано, 5 получено, 0% потери пакетов, время 4008 мс
rtt min/avg/max/mdev = 11,705/11,755/11,829/0,042 мс
Но не могу подключиться:
$ ssh -i ~/.ssh/cert.pem ubuntu@3.<отредактировано> # EIP для eth0
Добро пожаловать в Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-1045-aws x86_64)
...
$ ssh -i ~/.ssh/cert.pem ubuntu@52.<отредактировано> # EIP для eth1
ssh: подключиться к хосту 52. <отредактировано> порт 22: время ожидания операции истекло
Я устанавливаю Netflow на эт1
сетевой адаптер в AWS и может видеть трафик:
2 840416055907 eni-07cc18b6f1b89378e <отредактировано> 10.0.200.118 54268 22 6 9 576 1623280724 1623280761 ПРИНЯТЬ OK
Поэтому я чувствую, что ОС сбрасывает трафик. Но брандмауэр не настроен, и демон SSH прослушивает все интерфейсы. Я также пробовал отслеживать журналы /var/log/{syslog,auth.log,kern.log} и dmesg, но ни в одном из них ничего не появилось, пока я пытался подключиться.
Я надеюсь, что упустил что-то простое, потому что сейчас я немного растерялся. Любая помощь будет очень признательна!