Portál AbcLinuxu, 5. května 2025 23:26
Pokud jste se prokousali prvními dvěma díly a zajistili si IPv6 konektivitu, máte stroj s IPv6 adresou. Nastal čas si pořídit a nakonfigurovat podsíť (subnet).
Podle toho, jak jste se připojili k IPv6, zkuste získat od poskytovatele podsíť, pokud ji ještě nemáte. Používáte-li 6to4, získáváte ji automaticky. Pokud máte SixXS tunel, nechte ho běžet, dokud nemáte dostatek bodů na žádost o subnet.
Vaše podsíť by měla při troše štěstí mít prefix délky 48 bitů. Dalších 16 bitů je vám k dispozici pro rozdělení na více lokálních podsítí a pořád vám ještě zbude 64 bitů na identifikaci počítačů a ostatních síťových uzlů.
Když je na váš router směrována podsíť, je čas dostat na Internet ostatní počítače. K tomu je potřeba nastavit IP adresu rozhraní routeru pro vnitřní síť a pustit démona, který bude do sítě posílat Router Advertisements. Ty umožní automatickou konfiguraci klientů.
Máme prefix xxxx:xxxx:xxxx::/48 a dáváme síťovému zařízení routeru adresu xxxx:xxxx:xxxx:1::1 (neboli xxxx:xxxx:xxxx:0001:0000:0000:0000:0001). Protože je to už koncová podsíť, kde budeme používat autokonfiguraci, dáme ji délku prefixu 64. Pokud máte více síťových rozhraní, můžete to udělat na každém (změníte první jedničku, která identifikuje vaši /64 podsít).
Záměrně vynechávám konfiguraci rozhraní do Internetu (například eth0
na Linuxu a ether5
na RouterOS) a výchozí brány. Pokud nemáte na vašem routeru připravenou IPv6 konektivitu, měl by vám pomoci předchozí díl.
Ruční konfigurace Linuxu by vypadala takto:
# ip address add xxxx:xxxx:xxxx:1::1 dev eth1 # ip link set eth1 up # ip address add xxxx:xxxx:xxxx:2::1 dev eth2 # ip link set eth2 up
Na Gentoo přidáte adresy do souboru /etc/conf.d/net. Můžete nastavovat IPv6 adresy společně s IPv4. Nezapomeňte na příslušné symlinky v /etc/init.d. Rozhraní do Internetu je eth0.
config_eth1=( "192.168.1.1/24" "xxxx:xxxx:xxxx:1::1/64" ) config_eth2=( "192.168.2.1/24" "xxxx:xxxx:xxxx:2::1/64" )
Na Debianu to bude /etc/network/interfaces.
auto eth1 iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0 iface eth1 inet6 static address xxxx:xxxx:xxxx:1::1 netmask 64 auto eth2 iface eth2 inet static address 192.168.2.1 netmask 255.255.255.0 iface eth2 inet6 static address xxxx:xxxx:xxxx:2::1 netmask 64
Mikrotik RouterOS se konfiguruje velmi podobně. Aby nám hezky vycházela čísla, budeme mít rozhraní do světa třeba na ether5.
> /ipv6 address add interface=ether1 address=xxxx:xxxx:xxxx:1::1/64 advertise=yes > /interface enable ether1 > /ipv6 address add interface=ether2 address=xxxx:xxxx:xxxx:2::1/64 advertise=yes > /interface enable ether2
Zatím ještě nikdo neřekne počítačům na síti o našem routeru (Router Advertisements), kromě RouterOS, kde to zajistí parametr advertise=yes. Nainstalujte si proto program radvd a upravte /etc/radvd.conf.
interface eth1 { AdvSendAdvert on; prefix xxxx:xxxx:xxxx:1::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; }; interface eth2 { AdvSendAdvert on; prefix xxxx:xxxx:xxxx:2::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
Nastavili jsme posílání RA (AdvSentAdvert) pro dvě rozhraní a nastavili jsme každému jeden /64 prefix. Router oznámí počítačům svoji adresu (používá se link-local adresa jeho síťového rozhraní pro daný segment). Navíc jim řekne, že počítače se stejným prefixem jsou na stejném segmentu (AdvOnLink) a že adresu si můžou zvolit samy (AdvAutonomous).
Takovéto jednoduché nastavení na hraní si s IPv6 postačí, v manuálové stránce najdete další volby, včetně například MTU, směrování, DNS serverů, Mobile IPv6 a dalších. DNS volba je experimentální a radvd ji podporuje od verze 1.0. Pokud Router Advertisements z nějakého důvodu nevyhovují nebo nestačí, můžete použít protokol DHCPv6. Oba způsoby se dají s úspěchem kombinovat.
Jak jste již poznali, IP adresy se dají konfigurovat ručně, pomocí protokolu DHCP(v6) nebo (v IPv6 nově) pomocí bezstavové automatické konfigurace (RFC 4862). Každá z možností má své použití. Počítač, který automaticky konfiguruje své síťové zařízení, může poslat žádost (Router Solicitation) na k tomu určenou multicast adresu (all-routers). Router posílá pravidelně i na žádost již zmíněné Router Advertisements. Koncový počítač mezi informacemi dostane /64 prefix, druhou část adresy si nastaví sám. Obvyklou metodou je odvození z EUI-64 identifikátoru (MAC adresa doplněná na 64 bitů).
Pro ty, kdo chtějí své soukromí chránit více a nechtějí prozrazovat světu svoji MAC adresu, jsou tu Privacy Extensions (RFC 3041). Pomocí náhodných čísel a pravidelných změn IP adres zabrání sledování počítače při pohybu mezi sítěmi. Rovněž znemožní zjišťování počtu počítačů v síti a jejich jednoznačnou identifikaci.
U klienta by mělo stačit povolit rozhraní a na něm IPv6 autokonfiguraci. Na Linuxu obvykle stačí mít v jádře podporu IPv6 a povolit zařízení:
# ip link set eth0 up
Pokud navíc chcete používat privacy extensions, zapněte je ještě předtím pomocí sysctl:
# sysctl net.ipv6.conf.eth0.use_tempaddr=2
IPv4 i IPv6 mají speciální automaticky konfigurované adresy pro komunikaci v rámci spoje nazývané link-local addresses (169.254.0.0/16 a fe80::/64). Většina IPv4 implementací tyto adresy zaváděla jen jako poslední možnost, když vše ostatní selže. IPv6 každému zařízení jednu takovou adresu přidělí. Druhá polovina adresy se opět řídí MAC adresou zařízení (tentokrát nejsou žádné privacy extensions potřeba).
Rovněž jsme zvyklí používat privátní rozsahy adres, většinou ke zprostředkování lokální komunikace a k překládání na společnou veřejnou adresu a port. Komunikaci po místním segmentu zajišťují všudypřítomné link-local adresy a pro vnější svět máme dostatek globálních adres. Pokud přesto chceme takový rozsah používat, máme možnost si vytvořit vlastní lokální /48 prefix podle RFC 4193, Unique Local IPv6 Unicast Addresses. Ten pak začíná binárně 11111101 (FD00::/8), pokračuje 40 náhodnými bity, které mají (s velkou pravděpodobností) zajistit unikátnost. Opět nám zbývá 16 bitů na podsítě a 64 bitů na identifikaci koncových počítačů. Těmto adresám se říká lokální kvůli tomu, že nejsou směrovány do Internetu. Na druhou stranu se dají pro účely privátních sítí považovat za unikátní. Tím pádem odpadají problémy při propojování těchto sítí a používání VPN a tunelů mezi nimi. Pravděpodobnost kolizí je při takovémto použití mizivá.
Jestliže ve své síti používáte lokální adresy, neměli byste je routovat mimo vaši síť a případné další sítě, se kterými jste ji propojili. Jak již bylo zmíněno v diskuzi k předchozímu dílu, v současném schématu IPv6 adres platí, že všechny adresy, u kterých není řečeno jinak, jsou globálně směrované. Ve skutečnosti není rozsah pro lokální adresy FD00::/8, ale FC00::/7. To proto, že FC00::/8 je rezervovaný pro případný další mechanismus volby síťového prefixu (všimněte si, že FC00::/8 a FD00::/8 dávají dohromady FC00::/7).
IPv6 síť už je připravená, ale možná vám chybí doménová jména. Pravděpodobně máte nějakou doménu a k ní i DNS službu, ale nejspíš vám nebudou chtít poskytovat reverzní překlad. Může být výhodné používat stejné servery na oba směry překladu, na některých serverech se vytvoří reverzní záznamy automaticky. Pokud nemáte vlastní DNS servery, poohlédněte se po nějaké službě dostupné na Internetu (z těch bezplatných například editdns.net nebo xname.org). V každém případě je potřeba udržovat správně nastavené seznamy DNS serverů u poskytovatele IPv6 podsítě i poskytovatele domény. V případě SixXS tunelů můžete přidávat nameservery v jejich webovém rozhraní (pozor, přidání nebo smazání DNS stojí bod, tak neupravujte moc divoce).
I na 6to4 je možné upravovat seznam nameserverů pro reverzní záznamy. Slouží k tomu webové rozhraní 6to4.nro.net, které vám umožní nastavit reverzní DNS z adresy vašeho 6to4 rozsahu. Kromě toho můžete nastavit heslo, které vám dovolí provádět nastavení i z jiné adresy. Služba je v testovacím provozu; přečtěte si informace o službě, než se do toho pustíte. Nastavit delegování je možné z libovolné adresy, neautorizovaným změnám můžete zamezit firewallem.
Linux:
# ip6tables -A forward -d 6to4.nro.net -j REJECT \ --reject-with=adm-prohibited
RouterOS:
> /ipv6 firewall filter add chain=forward dst-address=FC00::/7 \ action=reject reject-with=icmp-admin-prohibited
Toto pravidlo zajistí, že počítače z místní sítě nemají ke službě vůbec přístup. Není to úplně hezké řešení, ale funguje. Nastavovat pak musíte buď přímo z routeru (aspoň na Linuxu to není problém) nebo specificky povolit některou z místních IP.
Adresy se definují pomocí AAAA záznamů. Upravte zónový soubor domény.
orange.example.net. 86400 IN AAAA xxxx:xxxx:xxxx:1:iiii:iiii:iiii:iiii apple.example.net. 86400 IN AAAA xxxx:xxxx:xxxx:1:jjjj:jjjj:jjjj:jjjj carrot.example.net. 86400 IN AAAA xxxx:xxxx:xxxx:2:kkkk:kkkk:kkkk:kkkk
Přidáme si ještě pár serverů s hezkými staticky nastavenými adresami z rozsahu xxxx:xxxx:xxxx::/64 (xxxx:xxxx:xxxx:0000::/64).
mouse.example.net. 86400 IN AAAA xxxx:xxxx:xxxx::2 cat.example.net. 86400 IN AAAA xxxx:xxxx:xxxx::3 turtle.example.net. 86400 IN AAAA xxxx:xxxx:xxxx::4
A nakonec nastavíme reverzní DNS záznamy (každý A/AAAA záznam má mít odpovídající PTR záznam). Na rozdíl od IPv4, kde se staví adresy po bajtech, dělíme zóny po jednotlivých šestnáctkových číslicích. Číslice píšeme pozpátku (stejně jako bajty v IPv4). Pokud nemáte reverzní záznamy vytvořené automaticky, upravte zónový soubor pro váš prefix.
i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.1.0.0.0.x.x.x.x.x.x.x.x.x.x.x.x.ip6.arpa. 86400 IN PTR orange.example.net. j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.1.0.0.0.x.x.x.x.x.x.x.x.x.x.x.x.ip6.arpa. 86400 IN PTR apple.example.net. k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.2.0.0.0.x.x.x.x.x.x.x.x.x.x.x.x.ip6.arpa. 86400 IN PTR carrot.example.net. 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.x.x.x.x.x.x.x.x.x.x.x.x.ip6.arpa. 86400 IN PTR mouse.example.net. 3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.x.x.x.x.x.x.x.x.x.x.x.x.ip6.arpa. 86400 IN PTR cat.example.net. 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.x.x.x.x.x.x.x.x.x.x.x.x.ip6.arpa. 86400 IN PTR turtle.example.net.
Tímto dílem jsme uzavřeli naši síťovou konfiguraci. Těším se na vaše připomínky, opravy a náměty pro případné další články.
BTW veci kolem prekladu jmen a "kompletni kompatibilita nezi dns/ipv4/dns6/ipv6" jsou duvod, proc nejde ipv6 naimplementovat plosne a "ihned".Můžu poprosit o trochu víc detailů?
Reverzní A v IPv4 se obvykle řeší tak, že i když máš rozsah, nemáš vlastní nameserver, ale říkáš si upstream providerovi o každou změnuStandardni reseni je to, ze provider (nebo ten, kdo ma nadrazeny /24 rozsah) zridi v rozsahy poddomenu a pro vsechna reverzni jmena v udela CNAME do dane poddomeny. Poddomena se pak deleguje na tvuj DNS server. Viz RFC 2317
Ta "obrana" samozrejme funguje.Jistěže funguje – způsobem, který jsem popsal v závorce.
Navíc když takhle e-maily zahazuje jen primární SMTP server,Tak je admin pako, na to se nedá nic jinýho říct. Pokud někdo neumí nastavit mailservery, tak je to jeho problém. A zvlášť blbě nastavenej backup mailserver je mnohem horší než žádnej.
Pokud někdo neumí nastavit mailservery, tak je to jeho problém.Právě že ne. Když někdo neumí nastavit mailservery, je to problém hlavně všech okolo. Dotyčný admin je zpravidla jediný, kdo je v klidu, protože o nedoručených e-mailech neví, a že jeho server rozesílá spam (jiný případ špatné konfigurace) ho netrápí. Já osobně považuji za špatné nastavení mailserveru i to, pokud se z existence či tvaru reverzního záznamu IP adresy jeho protějšku pokouší něco uhodnout. Většina spamu pochází z počítačů, které reverzní záznam mají.
Většina spamu pochází z počítačů, které reverzní záznam mají.Na mailserverech, které se nebaví se strojema bez reverzů určitě. Ale jinak bys musel tohle tvrzení nečím podložit, podle mě nemáš obecně pravdu. Já jsem většinu spamů odfiltroval na základě špatného chování při SMTP komunikaci.
Já osobně považuji za špatné nastavení mailserveru i to, pokud se z existence či tvaru reverzního záznamu IP adresy jeho protějšku pokouší něco uhodnout.To já taky, já radši, když nic nehádá a prostě všecky, co se nechovaj rozumně pošle do háje. Oni si to velmi rychle opraví a když ne, jejich smůla, každopádně nemůžou předstírat, že si toho nevšimli.
Ale jinak bys musel tohle tvrzení nečím podložit, podle mě nemáš obecně pravdu.
grep 'client=unknown' /var/log/mail/* | wc -l grep 'client=' /var/log/mail/* | wc -la obě čísla podělit. Na jednom serveru jsem napočítal ani ne 40 % bez reverzu. Test, kterým mi projde více jak 60 % spamu a nijak neovlivní další testy, který ale bez varování může likvidovat i ham, ten nepotřebuju.
Oni si to velmi rychle opraví a když ne, jejich smůla, každopádně nemůžou předstírat, že si toho nevšimli.Co by si opravovali? A proč by si toho museli všimnout? Myslíte si, že budu pokaždé pátrat po tom, zda můj e-mail došel? Většinou pokud není na e-mail adekvátní reakce, není problém obrátit se někam jinam, kde na e-mail zareagují.
$ grep "SA: Action: temporarily rejected message:" rejectlog | grep "host=NULL" | wc -l 8 $ grep "SA: Action: temporarily rejected message:" rejectlog | wc -l 12 $ grep "SA: Action: permanently rejected message:" rejectlog | grep "host=NULL" | wc -l 57 $ grep "SA: Action: permanently rejected message:" rejectlog | wc -l 85Jsme na malém serveru, kde neběží žádné komerční nasazení. Přesto v dnešním ani včerejším logu není jediný přijatý mail, který by byl doručen. Tedy přesněji každý den to byly 3. U všech třech se v logu píše:
SA: Action: flagged as Spam but acceptedZa celou historii logů nemám ani jeden přijatý mail bez reverzu. Jestli tohle vám nestačí, potom to asi umíte líp. Mě to stačí a dál to nepotřebuji řešit. Pokud uvažujete o reálném mailování, reverz prostě potřebujete.
bez varování může likvidovat i hamLikvidovat nemůže nic. A bez varování nemůže taky nic (nejen likvidovat).
chybové zprávy o nedoručeném e-mailu se dnes právě kvůli spamu a hlavně virům většinou neodesílajíChybové zprávy o nedoručení mailu se podle mě odesílají.
A
má zavirovaný počítač, nějaký vir si vybere z jeho adresáře kontaktů náhodně uživatele B
a na adresu C
pošle sám sebe nebo nějaký spam s adresou odesílatele B
(aby to vypadalo důvěryhodně, případně prošlo whitelisty založenými na e-mailových adresách odesílatele). Cílový server e-mail z nějakého důvodu odmítne a odešle zprávu o nedoručení e-mailu na adresu odesílatele – B
. Takže B
právě dostal další milý spam. Jenom si nejsem jistý, zda tohle bude účinná taktika proti spamerům. Obávám se, že je marné doufat, že se takhle vygeneruje spamu ještě daleko víc a spameři se půjdou do kouta stydět, jací jsou břídilové, a spamování nechají.
Hm, moje věta „… se děje ve vzácné shodě s …“ evidentně padla na úrodnou půdu.Evidentně vůbec. Bavili jsme se o konfiguraci našeho mailserveru... a tento spam náš mailserver neodesílá ani nepřijímá, tudíš to není tak úplně náš problém.
leda že by si u každé zprávy ve frontě pamatoval i to, odkud se tam ten e-mail vzal.To si samozřejmě pamatuje. A nejen to, přidává tuto informaci do hlavičky mailu.
Tedy kromě obálkového odesílatele, což je ta informaceCož je úplně jiná informace, která s tím nemá nic společného.
Právě proto mám například na mém serveru nastavení takové, že mailserver mail nepřijme od uživatele hned, ale antispamové prostředky použije ještě předtím, že uživateli potvrdí převzetí.Parse error.
To je pak ale v rozporu s tvrzením, že se uživatel dozví o odmítnutí e-mailu.Není.
novak@example.com
. Pepa Novák bude odesílat přes relay svého ISP e-mail, přihlásí se jménem a heslem, server si ho najde v databázi a k e-mailu ve frontě poznamená, že pokud by došlo k chybě, má se chybová zpráva odeslat na novak@example.com
. Při troše štěstí se bude relay ISP bavit přímo s cílovým serverem, ten e-mail odmítne hned během SMTP sezení, takže relay se podívá, kam má poslat chybovou hlášku a odešle jí. Teoreticky to bude v tomhle ideálním případě fungovat. Ale už jste někdy viděl takovéhle řešení použité v praxi?
A na to se nelze spoléhat, protože tam si odesílatel (vir) napíše, co ho napadne.Takže tebe trápí, že autor viru nedostane zprávu o nedoručení? No to je mi líto...
Opravdu jste tak naivníOdpověz si sám. Ad ostatní: to řešíš úplně jiný problém než o který šlo a než který se týká kontroly reverzních záznamů na cílovém serveru.
Jenomže pavlix neustále doporučujeLžeš.
Pokud chceš provozovat vlastní mailserver, je dobrý mít statickou adresu, MX záznam, A/AAAA záznam, reverzní záznam a dobře nakonfigurovaný mailserver.A hodinky s vodotryskem potřeba nejsou? K odeslání e-mailu není nic z vyjmenovaného potřeba. A nic z toho neodlišuje server rozesílající spam od serveru rozesílajícího normální poštu. Tak k čemu ty vaše dodatečné podmínky jsou?
Asi jsi zaspal dobu, když si myslíš, že jsou to naše dodatečné podmínky. Je milé, že chceš mě a Pihhanovi přiřknout vynalezení těchto věcí. Ale musím tě zklamat, náš vynález to není, je to běžný dnešní standard.Tak to jistě nebude problém odkázat na nějaký úplný seznam těch dodatečných podmínek, nejlépe i nějak specifikovaných (třeba jako RFC). A určitě tam bude i popsáno, k čemu jsou takové dodatečné podmínky dobré (i když to zvládnu napsat sám – „aby to vypadalo, že se něco dělá“).
A až vynalezneš způsob, jak filtrovat spam bez heuristiky,Heuristické filtrování spamu znamená analyzovat několik faktorů, zejména obsah e-mailu, a podle toho rozhodnout. Náhodné odmítání různých zpráv nemá s heuristikou nic společného, to je loterie.
Náhodné odmítání různých zpráv nemá s heuristikou nic společného, to je loterie.Právě proto se to náhodně nedělá.
Jestli máte o hodně vychytanější metodu, jak se zbavit spamuK tomu mám jedině to, že tohle nepovažuju za metodu, jak se zbavit spamu. U mne by to např. eliminovalo ani ne 40 % spamu, takže na zbytek stejně musím nasadit něco jiného. Maximálně bych to mohl použít jako určitou váhu do celkového hodnocení, zda jde o spam – ale jinak mi ten test přijde zbytečný. Kdybych odmítal náhodně 40 % spojení, vyjde to nastejno.
Kdybych odmítal náhodně 40 % spojení, vyjde to nastejno.To si nemyslím :). Btw, už jsi psal klukům od abclinuxu, že to maj špatně? :D Přesněji řečeno... už tě s tím poslali do háje? ;)
Na to, že by se Linux choval k IPv6 adresám jinak než k IPv4 jsem zatím nenarazil.A on snad Linux v IPv4 dela to, co popisujes v druhem odstavci?
It is RECOMMENDED that the candidate source addresses be the set of unicast addresses assigned to the interface that will be used to send to the destination. (The "outgoing" interface.) On routers, the candidate set MAY include unicast addresses assigned to any interface that forwards packets, subject to the restrictions described below.Takže situace, kdy jediná globální adresa je na loop backu nebo dummy rozhraní je oficiálně posvěcena. Ovšem situace, kdy router nemá žádnou globální adresu (kdo by to dělal, když by přišel o možnost přihlásit se tam po síti), nemá žádné uspokojivé řešení. Takže se omlouvám za zmatení. Zdá se, že koncept globální adresy náležící stroji a nikoliv rozhraní i někdo jiný považuje za rozumný.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.