Mám tohoto klienta vpn, který se dotkne směrovací tabulky a poté ji sleduje, aby ji ukončil, pokud se ho dotkne.
Je to druh nastavení potřebný pro koncový bod, jako je notebook.
Chci použít malý počítač jako koncový bod vpn a směrovat přes něj pro další stroje v mé LAN (192.168.0.0/24).
Nemohu se dotknout směrovací tabulky a všechny pakety jsou nuceny přes vpns tun0 zařízení, myslel jsem, že iptables by mi mohl pomoci POSTROUTEing paketů do sítě 192.168.0.0 zpět do zařízení eth1.
Nejsem si však jistý, jak by to fungovalo, protože jakmile ukončí eth1, mělo by to vyřešit IPtoMAC, protože již je v cílové síti a nevím, zda to paket již vyřešil, nebo se to nestane, dokud nedosáhne iface.
Nějaké rady?
Přijatá odpověď:
Protože jste neposkytli více informací, nejsem si jistý, jak nejlépe odpovědět.
Zde je můj pokus dát vám nějaké pokyny, záměrně ignorující, že nemůžete upravit svou směrovací tabulku (pochopíte, proč si přečtete můj návrh):
V závislosti na klientovi VPN a kde připojuje se k FIB (forward information base) jádra, možná budete mít štěstí v tom, že monitorování FIB nebo pomocí vaší směrovací tabulky výrazů pomocí VPN probíhá pouze pro local
a main
tabulky pravidel. Svá pravidla směrování můžete zkontrolovat pomocí
ip rule show
Pro každý z řetězců za značkou „lookup“ (což jsou položky tabulky pravidel) se můžete dotázat na příslušné směrovací informace z FIB pomocí
ip route show table <name>
S trochou štěstí se můžete pokusit sestavit pravidlo, které odpovídá vašim požadavkům, a dát mu přednost ve vyhledávací tabulce pravidel. Například (vymyslel jsem něco, abych vám dal náskok), pojďme přidat nové pravidlo s vyšší preferencí než main
na určité toky:
ip rule add from 192.168.1.0/24 to 10.10.212.1/30 iif eth0 oif eth2 lookup 888 pref 12000
ip rule show
0: from all lookup local
12000: from 192.168.1.0/24 to 10.10.212.1/30 iif eth0 oif eth2 lookup 888
32766: from all lookup main
32767: from all lookup default
Na standardním systému Linux (v případě tohoto příspěvku Ubuntu) byste viděli tři výchozí tabulky pravidel local
, main
a default
, z nichž normálně vidíte pouze main
tabulky při vyvolání netstat -rn
například.
Nyní chceme naplnit položky FIB ve vyhledávací tabulce 888 novými položkami směrování:
ip route add default via 10.37.129.4 dev eth2 table 888
Podívejme se, jak vypadají naše záznamy o směrování v tabulce 888:
ip route show table 888
default via 10.37.129.4 dev eth2
Myslím, že chápete. Nyní, s ohledem na vaše konkrétní potřeby směrování, není jasné, čeho přesně se snažíte dosáhnout. Ujistěte se, že jste vyprázdnili mezipaměť směrování, když si pohráváte s tabulkami pravidel:
ip route flush cache
Všimněte si, že pomocí architektury iproute2 můžete v podstatě filtrovat a upravovat prakticky jakýkoli záznam FIB; položky pravidel lze dokonce vytvářet na základě fwmarků a/nebo klasifikátorů u32, jako je následující (příklad převzat z knihy směrování zásad):
tc filter add dev eth1 parent ffff: protocol ip prio 1 u32
match ip src 10.1.1.0/24 classid :1
ip rule add fwmark 1 table 1 prio 15000 realms 3/4
ip route add default via 192.168.1.1 table 1 src 192.168.1.254
ip route flush cache
Protože se věci v tabulkách pravidel kazí, před mnoha lety jsem připravil malý úryvek bash, abych vrátil můj systém zpět do původního stavu pravidel směrování:
: ${KEEP:="local main default"}
while read prio rule; do
continue=0
for keep in ${KEEP}; do
if [ "${rule//lookup ${keep}/}" != "${rule}" ]; then
continue=1
fi
done
if [ ${continue} -eq 0 ]; then
ip rule del prio ${prio%%:*} ${rule//all/0/0}
fi
done < <(ip rule show)
Překvapivě se zdá, že po více než 10 letech iproute2
Zdá se, že jen málo lidí stále ví, že existuje vesmír za hranicemi klasického "rozbitého" nástroje jako ifconfig
nebo netstat
.