Типичная переадресация портов на примере nftables
Я хочу подключиться к виртуальной виртуальной машине, размещенной на сервере 1.2.3.4, используя ssh. IP-адрес виртуальной машины 10.10.10.100.
"nft list ruleset" печатает:
Фильтр inet таблицы { вход цепи { тип фильтра ловушки приоритет ввода 0; падение политики; iif "lo" принять комментарий "Принять любой трафик localhost" ct state недействителен для удаления комментария состояние ct установлено, связанный принять комментарий "Принять трафик от нас" ip6 nexthdr ipv6-icmp icmpv6 тип {пункт назначения недоступен, пакет слишком большой, превышено время, проблема с параметрами, mld-listener-query, mld-listener-report, mld-listener-done, nd-router-solicit, nd-router-advert, nd-сосед-запрос, nd-сосед-объявление, ind-сосед-запрос, инд-сосед-реклама, mld2-listener-report } принять комментарий "Принять ICMPv6" ip protocol icmp icmp тип {пункт назначения недоступен, объявление маршрутизатора, запрос маршрутизатора, превышено время, проблема параметра} принять комментарий "Принять ICMP" IP-протокол igmp принять комментарий "Принять IGMP" tcp dport ssh принять комментарий "Принять SSH на порт 22" tcp dport { http, https, 8008, http-alt } принять комментарий "Принять HTTP (порты 80, 443, 8008, 8080)" } вперед тип фильтра перехватывает приоритет приоритета 0; падение политики; } выход цепи { тип фильтра ловушки приоритет вывода 0; политика принять; } } таблица ip nat { вход цепи { введите nat hook приоритет ввода 0; политика принять; Счетчик пакетов 3 байта 180 } предварительная маршрутизация цепи { type nat hook prerouting priority -101; политика принять; Счетчик пакетов 12 байтов 2122 карта dnat to tcp dport { 10100: 10.10.10.100 }: карта dc tcp { 10100: ssh } } цепная маршрутизация { type nat hook приоритет приоритета 0; политика принять; карта snat to ip saddr {1.2.3.4: 10.10.10.100} } }
"nmap -p10100 1.2.3.4" говорит: 10100/tcp отфильтрованный itap-ddtp
"ssh 1.2.3.4" работает.
На сервере "ssh 10.10.10.100" работает
"sysctl net.ipv4.ip_forward" печатает "net.ipv4.ip_forward = 1"
1 ответ
Моя проблема заключалась в несовместимости virt-manager и nftables. Вирт-менеджер использует iptables. Может быть, есть решение. Использование virt-manager для меня важнее, чем использование nftables.
Вирт-менеджер поддерживает firewalld. Так что я "должен" выучить firewalld (: