Published: 5. 11. 2012   Category: GNU/Linux

Domácí síťování s VDSL od O2

Stal jsem se (ne)šťastným majitelem VDSL linky od O2, vyfasoval jsem od nich modem Comtrend VR-3026e a upsal se tarifu Optimal: download 20 Mbit/s a upload 2 Mbit/s (rychleji to z místa bydliště prý nelze, vzdálenost od ústředny slečna na lince nezjistila.).

Lehce jsem se děsil zejména modemu (na výběr jsou dva), kdysi dávno jsem měl pro ADSL vyfasoval: Huawei Echolife HG520i. Tenhle křáp trpěl tím, že se okamžitě resetl, pokud jsem zapnul VPN z klienta, ale O2 mi ho vyměnili bez řečí za Zyxel. (Na VPN mě předem upozorňoval prodavač na Brumlovce, protože problém zde mělo víc lidí a takže jsem objednal Zyxel, ale nakonec mi na adresu trvalého bydliště, nikoliv na kontaktní, poslali právě Huawei. Takže v tomto případě procesy v O2 moc nezafungovaly.)

První dojmy

Rychlost stahování je celkem fajn, jede přes 22 MBit/s (i tak je to ovšem trága, když se člověk řadu let rozmlsává na 100 MBit/s na kolejích Strahov a pak je konfrontován s internetovou realitou obyčejných smrtelníků).

První rána přišla vzápětí. Všichni uživatelé VDSL jsou za NATem, tudíž obvyklá veřejná IPv4 adresa, jakou jsem míval na ADSL nebo od UPC se nekoná. Protože přes SSH denně využívám domácí PC k práci musel jsem vyřešit jak se na něj z venku připojit. Naštěstí mám server na vnějším internetu, takže jsem nastavil reverzní SSH tunel a připojuji se přes něj ⇒ dalo by se říct, že proto abych mohl plně využívat svojí linku tak, jak jsem zvyklý, musím vlastnit jiný server (nebo alespoň SSH konto někde). Pokusím si zřídit pevnou IPv6 adresu a uvidíme.

Druhá jobovka je SMTP server od O2, který se mi nepodařilo vůbec rozchodit a nakonec jsem si jako SMTP nastavil smtp.gmail.com.

Poslední věcí je, že odezva při uploadování přes VDSL začne být značně sračkovitá. To znamená, že pokud vytížíte upload, což při zoufalých 2 MBit/s a větších souborech znamená desítky minut času, pak rychlost downloadu brutálně klesá, někdy až na hranici použitelnosti (začne se cukat Youtube). Pokud pak změřím rychlost např. přes dsl.cz, zjistím hodnoty v řádech stovek kilobitů...

Nastavení reverzního tunelu

Reverzní tunel se vytvoří následujícím příkazem na domácím PC:

ssh -v -N -R 2222:localhost:22 -p 22 bruxy@internetový.server

Kde význam parametrů je následující:

Tímto příkazem se otevře na vzdáleném stroji port 2222, který je tunelem propojen s portem na domácím PC. Po připojení na vzdálený stroj se se pak pohodlně dostanu na domácí PC:

ssh -p 2222 user@localhost

Protože reverzní tunel se na vnějším stroji připojí pouze na localhost a já se chtěl připojovat i z vnějšku, bylo nutné upravit konfiguraci ssh v /etc/ssh/sshd_config a přidat parametr GatewayPorts yes. Poté je port přístupný odkudkoliv. Pokud běží iptables, je nutné ještě povolit port 2222 v /etc/sysconfig/iptables:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

Proti rozpadnutí TCP spojení a ztrátě tunelu je možné se bránit pomocí utility autossh. Autossh si hlídá, zda tunel běží a v případě, že zanikne a nebo nelze posílat data automaticky jej zrestartuje, spustí se následovně:

autossh -M 0 -N -o "ServerAliveInterval 59" -o "ServerAliveCountMax 3" -p 22 \
   -R 2222:localhost:22 bruxy@internetový.server

Z nějakého, mě neznámého důvodu, program autossh občas uhnije, hláška pak vypadá následnovně:

debug1: Unspecified GSS failure.  Minor code may provide more information
        Credentials cache file '/tmp/krb5cc_500' not found

To se dá vyřešit tím, že se autossh pustí v nekonečné smyčce:

while true
do
    autossh -M 0 -N -o "ServerAliveInterval 59" -o "ServerAliveCountMax 3" -p 22 \
    -R 2222:localhost:22 bruxy@internetový.server
    sleep 5
done &

Odesílání emailů přes SMTP

Kdysi dávno jsem míval vlastní SMTP server poháněný postfixem, to už dnes není téměř možné, takže se musí použít SMTP server poskytovatele pomocí parametru relayhost. Ačkoliv přihlašovací údaje do webového email rozhraní fungují, nastavení SMTP není možné.

SMTP server O2: smtp.o2isp.cz sveřepě opakuje cannot authenticate to server a log se plní hláškami typu:

Oct 10 22:26:50 localhost postfix/smtp[21165]: 665FC80F52:
to=, relay=smtp.o2isp.cz[194.228.2.82]:25,
delay=1054, delays=1054/0.02/0.13/0, dsn=4.7.0, status=deferred (SASL
authentication failed; cannot authenticate to server
smtp.o2isp.cz[194.228.2.82]: no mechanism available)

Možnosti nastavení postfixu jsou řešeny zde: http://www.abclinuxu.cz/poradna/linux/show/173275. Je zde i hezký příklad jak funguje ověřování hesla při použití telnetu na portu 25. Vyzkoušel jsem snad všechny možné kombinace zadání loginu a pořád nic... Na portu 22 to po AUTH PLAIN jsem neustále dostával: 501 #5.1.3 partial domain not allowed.

Musel jsem si zkazit dva večery, abych si ověřil, že SMTP od O2 je naprosto k hovnu.

Pomocí následujícího návodu jsem nastavil SMTP server od googlu: http://charlesa.net/tutorials/centos/centosgmail.php. To zafungovalo okamžitě, ovšem Google změní mnou nastavené pole From na to gmailovské, naštěstí Reply-To je beze změny, takže doufám, že se občas dočkám i odpovědi na email. Bohužel se budu kvůli tomu muset přeregistrovat dvou konferencích a navíc nemůžu podvrhovat cizí emaily (což se může občas hodit) :P

Bezdrátové propojení s Edimax EW-7228APN

Poslední věc, kterou jsem potřeboval vyřešit, bylo bezdrátové připojení domácího desktopu k Internetu. Desktop už nemá volné PCI sloty, takže jsem koupil Edimax EW-7228APN, bezdrátový přístupový bod s podporou 802.11g/b/n a 5 LAN porty (pro možnost dalších zařízení).

Tohle AP umí pracovat i v režimu stanice, kdy se po připojení k wifi síti chová jako transparentní pojítko. Stačí do něj píchnout kabel, na desktopu si vyžádat DHCP parametry sítě a jede se. Zní to jednoduše, ale tohle AP má v verzi FW 1.03 poměrně hodně neintuitivní konfiguraci a např. neukazovalo stav připojení v wifi, to se muselo ověřovat na protistraně.

Zapeklitost se ukázala v nastavení zabezpeční, kdy se nebylo možné žádným způsobem autentifikovat, až v momentě kdy protistrana má nastaveno Mixed WPA2/WPA-PSK a encryption AES, se podařilo z Edimaxu připojit při nastavení WPA2(AES). Vyplatí se nejdřív nastavit otevřené připojení, ověřit že AP funguje a teprve potom začít řešit zabezpečení. Navíc některé změny konfigurace se na Comtrendu projeví až po restartu, jiné okamžitě. A právě wifi nastavení vyžadovalo restart protistrany.

Zakoupený typ z CZC je HW revize A s firmwarem verze 1.03. Protože se po několika dnech AP zaseklo a pomohl pouze tvrdý restart vytáhnutím ze zásuvky. Murphyho zákony jsou neúprosné, takže se AP zasekávalo nejčastěji v době, kdy nikdo nebyl doma. Rozhodl jsem se upgradnout firmware, z původního 1.03 na poslední 1.14.

Změna firmware mi připravila jedno nemilé překvapení. Wifi přestalo fungovat a než jsem si začal rvát vlasy, zkontroloval jsem veškeré nastavení. Příčinou problému bylo to, že z hesla u WPA zmizelo jedno písmenko. Jak je to možné, nevím. Každopádně pochybuji, že jsem v nějakém autohypnotickém módu písmenko vymazal klikl na APPLY a 60 sekund čekal než se modem restartuje.

Nová verze firmware navíc v menu Home (Status and Information) ukazuje nově stav připojení (State). Dokud zde bylo špatné heslo byl stav Scanning, po opravě se změnil na Connected. Na straně Comtrendu je ve Wireless→Station Info tabulka MAC adres připojených zařízení a stav Authorized. Zde pro AP chybělo Yes, takže AP evidentně nebylo správně přihlášeno a proto mě trklo, podívat se právě sem.