Různé audity bezpečnostních systémů pařížského muzea Louvre odhalily závažné problémy v oblasti kybernetické bezpečnosti a tyto problémy přetrvávaly déle než deset let. Jeden z těchto auditů, který v roce 2014 provedla francouzská národní agentura pro kybernetickou bezpečnost, například ukázal, že heslo do kamerového systému muzea bylo „Louvre“. 😀
Z upstreamu GNOME Mutter byl zcela odstraněn backend X11. GNOME 50 tedy poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
Byl publikován plán na odstranění XSLT z webových prohlížečů Chrome a Chromium. S odstraněním XSLT souhlasí také vývojáři Firefoxu a WebKit. Důvodem jsou bezpečnostní rizika a klesající využití v moderním webovém vývoji.
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.3.0. Přehled novinek v poznámkách k vydání.
Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.
Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.
Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.
Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co
… více »Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).
Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.
Já vím, že už se to mnohokrát řešilo. Vím, jak to funguje, a proto jsem v koncích. Potřebuju zprovoznit pasivní FTP na můj stroj. A iptables samozřejmě nepovolí datové spojení.
Kernel 2.6.24 (TuxOnIce, Gentoo) byl zkompilován s parametry:
CONFIG_NF_CONNTRACK_ENABLED=y
CONFIG_NF_CONNTRACK=y
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=y
# CONFIG_NF_CONNTRACK_SANE is not set
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NF_CONNTRACK_IPV4=y
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_IP_NF_IPTABLES=y
A iptables samozřejmě obsahují tento řádek:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Nemáte někdo nápad, proč datové pasivní FTP spojení přes firewall neprojde?
CONFIG_NF_CONNTRACK_FTP=y
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
Pak ti pujde aktivni i pasivni spojeni.... Pouze FTP, ne FTPs (FTP over SSL)
modprobe mi samozřejmě nepomůže - nemám ty moduly, když je to v jádře. Spíš mě překvapuje modul ip_nat_ftp. Co přesně tenhle modul dělá? Která volba způsobí, že se zkompiluje? Stroj běží na veřejné IP, ale nepřijde mi to podstatné.
Myslíte si, že bych měl zakompilovat do kernelu i podporu pro NAT? Nechápu, proč by to s tím mělo souviset...
Brzdí to samozřejmě iptables - jakmile je vypnu, vše funguje.
Když zkusím připojení z telnetu, tak vše funguje dle očekávání - přihlásím se, pošlu PASV paket, na ten mi přijde odpověd, ale iptables neotevřou port pro ono datové spojení. Přitom server poslouchá - v netstat jde otevřený port vidět.
/proc/net/nf_conntrack* neboo tak přibližně, jestli tam není něco vidět.
Ha! Tady doslo ke zmene! V souboru /proc/net/nf_conntrack se nahle objevilo nekolik radku zhruba tehle podoby:
ipv4 2 tcp 6 431912 ESTABLISHED src=my.beauty.ip.addr dst=86.49.93.28 sport=46541 dport=6667 packets=118 bytes=7137 src=86.49.93.28 dst=and.a.gain.ip sport=6667 dport=46541 packets=114 bytes=13148 [ASSURED] use=1
U vsech radku je napsano ESTABLISHED, jen u dvou je TIME_WAIT. Ja jsem si rikal, ze ESTABLISHED mi asi funguje, kdyz muzu vesele brouzdat po webu... Jinak bootuju spravny kernel.
Diky... Ano, ESTABLISHED spojeni na port 21 v souboru nf_conntrack je. Prikazove spojeni funguje naprosto bez problemu.
Zapnout logovani je urcite dobry napad - pokud pridam pravidlo, ktere zaloguje a zahodi vsechny spojeni na port >1024. Ted mam samozrejme vsechno zahazovane implicitnim pravidlem. Nevite nekdo, jak toto logovani zapnout?
Jen se bojim, ze v pripadnem logu uvidim presne to, co se da cekat - iptables zakazaly spojeni, protoze jim nedoslo, ze se jedna o RELATED spojeni, ale mysli si, ze je NEW.
Vsiml jsem si ale, ze v iptables existuji krome match state (RELATED, ESTABLISHED) jeste match conntrack (RELATED, ESTABLISHED). Nevite nekdo, jaky je mezi nimi rozdil? Pro jistotu uvedu cely radek iptables:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# ftpd chain -N S_FTP -F S_FTP -A S_FTP -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT # ftpd (passive) -A S_FTP -p tcp -m state --state ESTABLISHED,RELATED -m multiport --dports 49152:49162 -j ACCEPT ------------- # ftpd -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j S_FTP # ftpd (passive, data) #-A INPUT -p tcp -m state --state NEW -m multiport -m multiport --sports 1024: --dports 49152:49162 -j S_FTP -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -m multiport --dports 49152:49162 -j S_FTP # ftp (pasive, data) -A INPUT -p tcp -m state --state ESTABLISHED -m tcp --sport 1024: --dport 1024: -j ACCEPT ----------------- # ftpd (active, data) -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -m tcp --sport 20 --dport 1024: -j ACCEPT # ftp -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT # ftp (active, data) -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -m tcp --dport 20 -j ACCEPT # ftp (passive, data) -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED --sport 1024: --dport 1024: -j ACCEPT -----------------#ftpd jsou pravidla týkající se serveru, #ftp týkající se klienta. Filtruji i output, ale to se dá vyhodit. Pokud chcete nějakou informaci lognout, tak před to pravidlo napíšete dané pravidlo ještě jednou, pričemž místo
-j ACCEPT_OR_SOdáte
-j LOG -m limit --limit 1/minute --limit-burst 1 --log-level debug --log-prefix "iptables: ftp: wtf "a následovat bude to pravidlo. Pozor, délka textu prefixu je omezená (asi 16 znaků nebo tak nějak, už nevím). Pokud si pak dáte tail -f /var/log/messages tak se vám objeví informace že nějaký paket dorazil v iptables až "tam" (jen jeden paket za minutu, ale to lze změnit), případně pokud je těch logů více, tak se vám objeví v pořadí v jakém paket lezl... To zakomentované pravidlo (tedy NEW místo RELATED/ESTABLISHED) mi tuším fungovalo právě pro pasivní spojení ještě než jsem tam dal právě conntracking.
# LOG -A INPUT -m limit --limit 5/minute --limit-burst 5 -j LOG --log-level debug --log-prefix "iptables: undefined input: " -A FORWARD -m limit --limit 5/minute --limit-burst 5 -j LOG --log-level debug --log-prefix "iptables: undefined forward: " -A OUTPUT -m limit --limit 5/minute --limit-burst 5 -j LOG --log-level debug --log-prefix "iptables: undefined output: " # input #-A INPUT -j REJECT --reject-with icmp-port-unreachable #-A INPUT -j DROP # output -A OUTPUT -j ACCEPT #-A OUTPUT -j DROPPřičemž neznámý output explicitně povoluji, neznámý input po lognutí neřeším, protože mám na začátku default policy jako DROP...
modprobe capability
iptables -A INPUT -i ${WAN} -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT je obecnější než třeba -A INPUT -m state --state RELATED,ESTABLISHED -m multiport --sports 1024: --dports 65500:65535 -j ACCEPT a než otevření portů bez vazby na conntrack je přecejen lepší ten conntrack rozchodit, on se hodí i pro další nastavení v iptables...
Prikazove spojeni samozrejme projdeNeviděl bych to jako samozřejmost. Zvlášť pokud se někde vyskytuje NAT. Pokud nejde conntrack (nebo je conntrack tabulka prázdná), nebude celkem logicky fungovat nic, co na conntracku závisí. Ještě se docela hodí nechat iptables pakety nejen zahazovat ale i logovat, tím se přijde na další případné probémy (a případné hyby v iptables). Ještě je dobré vidět výstup z firewall skriptu s příkazama iptables, jestli některý neselhal. Případně použít přepínač -L.
NAT se nade mnou nevyskytuje, dokonce mam verejnou IP.
Prikazove spojeni zkratka projde - ve firewallu je povoleny port 21, a kdyby neproslo, tak uz bych se sel asi obesit...
Prave me zarazilo, jaktoze mi funguje detekce ESTABLISHED spojeni (muzu brouzdat po webu), kdyz soubor /proc/net/nf_conntrack byl prazdny. Podival jsem se tam znovu, a, jak uz jsem psal drive, ted je v nem nekolik ESTABLISHED spojeni.
Netusite, kde bych mohl zapnout logovani paketu v iptables? Porad premyslim jeste nad volbou CONFIG_NETFILTER_NETLINK_LOG v kernelu, kterou mam zatim vypnutou.
iptables -L vypisou presne ta pravidla, ktera bych cekal - tedy povoleny port 21 a RELATED i ESTABLISHED spojeni.
Jenom taková poznámka. Kdysi jsem kompiloval jádro a dal nějakou "věc" přímo do jádra a ona překvapivě nefungovala. Jako modul fungovala v pohodě.
Přeju hodně štěstí.
Tak, problém je snad vyřešen.
Samozřejmě byl problém v conntrack - nevěděl jsem, co musím do kernelu zakompilovat, aby fungoval. Jedná se primárně o moduly nf(ip)_conntrack_ftp a nf_nat_ftp. Protože modul nf_conntrack_ftp sleduje spojení implicitně jen na portu 21, je nutné jej zkompilovat jako modul a do /etc/modules.conf(či snad jako parametr jádra) mu předat jako parametr port, na kterém FTP server běží.
Modul nf_nat_ftp asi potřeba není.
Díky všem za reakce.
Tiskni
Sdílej: