kako se znebiti T-2 usmerjevalnika

četrtek, 18. februar 2021 - Anton Luka Šijanec - kategorije: internet. - značke: internet, homelab in sysadmin.

Ob priklopu optičnega Interneta sem kmalu hotel povečati svoje omrežje strežnikov in doma namestiti strežnik, na katerem bi lahko gostoval spletno stran, imenski strežnik, poštni strežnik in še kaj. Kajkmalu sem naletel na težavo.

Ker T-2 na območju priključka nima svojega FTTH omrežja, nam je priklop GPON vlaken izvedel Telekom, T-2 pa je njihovo omrežje uporabil za zagotavljanje Interneta. To pomeni, da ni vse tako, kot mora biti, ker se mora T-2 za ceno uporabniške izkušnje podrediti zahtevam omrežja Telekoma. Poleg raznih tehničnih zahtev, kot so kratenje Internetne nevtralnosti v obliki filtriranja TCP povezav glede na številko vrat, so tu še omejitve glede uporabe opreme na strani naročnika.

Medtem ko imajo naročniki T-2 Interneta na T-2 omrežju opremo, ki uporabnika na njegovo željo priključi direktno v javno Internetno omrežje, so naročniki na T-2 gostovanju izpostavljeni veliko slabšim pogojem, recimo izbiri NAT usmerjevalnika. Ne le to, da je izbira majhna, T-2 ima kar v obvezni modem vgrajen NAT usmerjevalnik, tako da uporabnik do obljubljenih treh javnih IPv4 naslovov sploh nima dostopa.

T-2 sicer ponuja neko opcijo IP mostu, ki bi mi zagotovila en statičen IPv4 naslov, vendar sem po treh telefonskih klicih na pomoč uporabnikom obupal, ker T-2 modem ni in ni hotel posredovati mojih IP paketov.

Posodobitev: Med izvajanjem rednega pregleda paketov, ki mi jih pošilja operater, sem opazil TCP SYN pakete brez odgovora na nek meni nepoznan javen IPv4 naslov. Izkazalo se je, da je T-2 nastavil ta naslov kot moj sekundarni statični IPv4 naslov, čeprav je v servisne strani Horizonta napisal nek drug naslov in po telefonu večkrat zatrdil, da je naslov v Horizontu pravilen. Po vpisu tega naslova v računalnik vse deluje in T-2 posreduje moje pakete v svet (:

Ker neka bela škatlica, ki lahko beleži moj promet tudi v zasebnem omrežju, zame ni sprejemljiva, sem se odločil poiskati najpreprostejšo alternativo, ki bi mi poleg svobode izbiranja naročniške opreme prinesla tudi možnost gostovanja Internetnih storitev.

Odločil sem se za Rock64, majhen računalnik z gigabitnim Ethernetom, arm64 procesorjem, štirimi gigabajti RAMa, USB 3.0 in 64 gigabajti eMMC hitre shrambe. Ne sicer neposredno kot NAT usmerjevalnik, temveč kot zmogljiv medijski strežnik, saj ima HDMI izhod za zvok in 4K60s/sek sliko, ter pogon za mrežni disk. Če se name ne bi osredotočili na poštni carini, bi me brez dodatne opreme (infrardeči daljinec, napajalnik, …) to stalo manj kot 50€.

A kajkmalu po odločitvi, da mora T-2 modem stran, sem ugotovil, da zna biti samo en Ethernet priključek na Rock64 omejitev. Izkazalo se je, da ni, saj Linux lahko pripravimo do vsega mogočega.

Vse skupaj sem priklopil takole: Iz Telekomovega ONT sem potegnil UTP kabel do Ethernet stikala, v katerega sem priključil tudi vse ostale naprave, ki morajo biti v NAT omrežju, ter Rock64 računalnik, ki ga bom uporabljal kot NAT usmerjevalnik. Sedaj naj povem, da taka konfiguracija še vedno ni brez možnosti za napade s strani operaterja, saj lahko le-ta uporabi tehniko ARP ponarejanja, ker je moje zasebno omrežje v istem lokalnem omrežju plasti podatkovne povezave.

Kar se tiče distribucije operacijskega sistema, sem pa najbolj navajen na Debian, zato sem namestil ayufanovo gradnjo Debiana za Rock64, ki sem jo z APT spravil na Debian 10.

Najbolj osnovna zadeva je bila priklop v javno omrežje. Z nmtui sem naredil novo Ethernet povezavo in kloniral MAC naslov T-2jevega Iskratel modema, s katerim se oglaša po WAN priključku. To ni bilo zahtevno, ker je MAC naslov napisan na nalepki. Nastavitve IPv4 sem prepustil DHCP strežniku, ki mi bo ob ustreznem MAC naslovu povedal IPv4 naslov. O IPv6 lahko verjetno samo sanjam.

Ker ne uporabljam network-managerja, sem moral MAC naslov modema klonirati v systemd-networkd nastavitvah. To sem storil tako, da sem dodal novo pravilo v /etc/systemd/network/00-default.link:

[Match]
MACAddress=16:04:15:00:00:00 # originalen MAC naslov Rock64 (poglej z ifconfig)

[Link]
MACAddress=10:a3:b8:00:00:00 # MAC naslov modema
NamePolicy=kernel database onboard slot path

DHCP strežnika zaradi morebitnih konfliktov z operaterjevim DHCP strežnikom rajši nisem postavljal, NAT zasebne IP naslove sem v naprave vpisoval statično.

Uredil sem datoteko /etc/sysctl.conf, kjer sem nastavil nastavitev net.ipv4.ip_forward=1, da bo Linux postal usmerjevalnik po zagonu, ter datoteko /etc/network/interfaces.d/20-nat, kamor sem vpisal slednje besedilo, da sem dodal virtualni mrežni vmesnik, ki služi kot NAT vmesnik.

auto eth0:1
iface eth0:1 inet static
address 10.69.69.1
netmask 255.255.255.0

Seveda sedaj NAT še ne deluje, je pa čas za preverjanje delovanja posredovanja paketov. Za vsak slučaj sem ponovno zagnal vsa Ethernet stikala in izvedel reboot na Rock64 ter priklopil osebni računalnik v stikalo, mu nastavil statični IPv4 naslov (10.69.69.***/24, maska 255.255.255.0, prehod 10.69.69.1) in naslovu bodočega prehoda poslal ICMP ping: ping 10.69.69.1. Delovalo je.

Ker se na iptables ukaze ne spoznam najbolje, sem malo pogledal po spletu in sestavil tale sklop ukazov, ki poveže eth0 in virtualno NAT eth0:1:

iptables -A FORWARD -i eth0 -o eth0:1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0:1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Za ohranitev iptables pravil obstaja v Debianu skript iptables-persistent:

apt install iptables-persistent # potrdimo shranjevanje pravil, ko nas vpraša

To je vse. Po ponovnem zagonu vse opreme se NAT omrežje postavi nazaj in uspešno deluje. uPNP in posredovanja vrat nisem nastavljal, vendar lahko zelo verjetno to naredite z nekaj iptables pravili. Vsekakor pa lahko vse storitve, ki morajo biti obrnjene v širni splet, gostujete kar na vašem novem modemu.

možne napake

Debian prehaja iz iptables na nftables, možne so napake. Meni osebno samo ta konfiguracija ni delovala, iptables-persistent se je pritoževal v sistemske dnevnike, zato sem namesto nftables preklopil nazaj na iptables in ponovno konfiguriral iptables-persistent:

update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
update-alternatives --set arptables /usr/sbin/arptables-legacy
update-alternatives --set ebtables /usr/sbin/ebtables-legacy
iptables -A FORWARD -i eth0 -o eth0:1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0:1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables-save > /etc/iptables/rules.v4

LP in se beremo naslednjič!

Objava je bila nazadnje urejena v soboto, 06. marca 2021, ob 21:48:00.

kometarji

0 komentarjev


© Anton Luka Šijanec, 2020-2021 | stran generirana: 01. 12. 2021 ob 17:39:03


Podomrežje O bo spet dosegljivo jutri, od tedaj pa bosta dosegljiva samo še računalnika O->K in O->O, za dostop do ostalih pa bo vzpostavljen VPN. a@ž.ga