На хосте у меня дома есть хост для VPN, который мне нужен для нескольких целей. Временно проживающий в Японии, он работает как NAT для некоторых устройств, поэтому я все еще могу использовать мой NETFLIX и некоторые другие сервисы. Однако я хочу, чтобы этот сервер все еще использовал обычную сеть для загрузок / просмотра веб-страниц. В настоящее время ниже приведена копия моей конфигурации:

IP правило шоу

0:      from all lookup local
32764:  from all fwmark 0x1 lookup 10
32767:  from all lookup main
32768:  from all lookup default

ip route show table 10

default dev ppp0 scope link

Iptables-сохранить

*mangle
:PREROUTING ACCEPT [11:822]
:INPUT ACCEPT [11:822]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8:872]
:POSTROUTING ACCEPT [8:872]
-A OUTPUT -s 192.168.1.102 -j MARK --set-mark 0x1
COMMIT
*nat
:PREROUTING ACCEPT [2831:752380]
:POSTROUTING ACCEPT [107531:7116617]
:OUTPUT ACCEPT [107652:7124121]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [41463962:7467495526]
-A FORWARD -i eth0 -p ppp+ -j ACCEPT
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
COMMIT

Я хотел бы заявить, что моя фактическая конфигурация iptables более сложна, чтобы включить несколько операторов журнала для новых соединений на стороне FORWARD и чтобы избежать слишком большого количества журналов, существует общий прием для УСТАНОВЛЕННЫХ, СВЯЗАННЫХ соединений перед журналом заявление и больше IP-адресов в таблице mangle. Эта конфигурация служит своим целям для моих устройств, однако я просто попытался ssh'ing в нее с пульта и не могу. Причина очевидна: ответы от моей службы ssh направляются по адресу eth0 вместо ppp0. Что подводит меня к моему вопросу.

Можно ли применять fwmark 1 ко всем сеансам, созданным через ppp0? Я знаю, что через некоторое копание, что conntrack может выполнять сопоставления, основанные на исходном IP-адресе исходного хоста сеанса, но могу ли я сделать что-то подобное для исходного dev?

Общая цель состоит в том, чтобы ssh можно было выполнять из частной подсети, моего исходного ip-адреса (японский ip 204.xxx.xxx.xxx) или ip vpn (23.xxx.xxx.xxx) без постоянного изменения конфигурации. Неэффективное решение, позволяющее использовать ssh только для частного и VPN, будет применять fwmark к любой подсети, кроме 192.168.xxx.xxx, со значением sport 22 в таблице mangle, однако это не позволит использовать ssh для японского ip. ,

1 ответ1

0

Используйте CONNMARK, чтобы отметить соединения:

iptables -t mangle -A INPUT -i ppp+ -j CONNMARK --set-mark 0x1
iptables -t mangle -A OUTPUT -m connmark --mark 0x1 -j MARK --set-mark 0x1

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