Difference between revisions of "SITE 2006 zapocty"
From NMS
(→POP3 Proxy) |
(→Analýza dat SMTP komunikace) |
||
(16 intermediate revisions by 3 users not shown) | |||
Line 37: | Line 37: | ||
*#požadavky na správce a uživatele | *#požadavky na správce a uživatele | ||
*RFC 4405, RFC 4406, RFC 4407 RFC 4408 | *RFC 4405, RFC 4406, RFC 4407 RFC 4408 | ||
− | *rozdíly mezi spfv1 a spfv2.0 | + | *rozdíly mezi spfv1 a spfv2.0, [http://new.openspf.org/SPF_vs_Sender_ID kompatibilita] |
*vztah mezi spf a sender-id | *vztah mezi spf a sender-id | ||
*výhody/nevýhody proti jiným řešením (třeba DomainKeys resp. DKIM) | *výhody/nevýhody proti jiným řešením (třeba DomainKeys resp. DKIM) | ||
Line 67: | Line 67: | ||
*bezlicenční pásmo? | *bezlicenční pásmo? | ||
Výsledky: [[WiMAX V.Jary]] | Výsledky: [[WiMAX V.Jary]] | ||
+ | [https://nms.fjfi.cvut.cz/wiki-test/WiMAX_P.Machacek Petr Macháček] | ||
=[[Zeroconf]] - automatická konfigurace sítí a služeb= | =[[Zeroconf]] - automatická konfigurace sítí a služeb= | ||
Line 86: | Line 87: | ||
=[[Multicast]]= | =[[Multicast]]= | ||
− | *o co jde a k čemu je to dobré (kde a jak se to dá použít, příklady aplikací) | + | *o co jde a k čemu je to dobré (kde a jak se to dá použít, příklady aplikací, způsob inzerování služeb, způsob připojení k multicastu, zabezpečení, multicast-storm) |
*základní popis standardních služeb a protokolů (jako třeba <bash>ping 224.0.0.1</bash> | *základní popis standardních služeb a protokolů (jako třeba <bash>ping 224.0.0.1</bash> | ||
*implementace jednoduchého multicastového serveru a klienta | *implementace jednoduchého multicastového serveru a klienta | ||
Line 98: | Line 99: | ||
=[[Monitorování výskytu stanic v síti]]= | =[[Monitorování výskytu stanic v síti]]= | ||
+ | <strike> | ||
*deamon monitorující stroje, které se nacházejí v lokální síti | *deamon monitorující stroje, které se nacházejí v lokální síti | ||
*odchytává ARP request/response | *odchytává ARP request/response | ||
Line 103: | Line 105: | ||
*poslouchá na všech/definovaných rozhraních | *poslouchá na všech/definovaných rozhraních | ||
*volitelně rozhraní pro vyčítání nasbíraných informací (TCP/IP server) | *volitelně rozhraní pro vyčítání nasbíraných informací (TCP/IP server) | ||
+ | </strike> | ||
+ | * podívat se jestli umí CISCO 3550 posílat SNMP TRAP při výskytu nové stanice na síti (ARP) | ||
+ | * napsat aplikaci, která bude tyto zprávy odchytávat a bude je ukládat do databáze | ||
+ | ** aktuální informace | ||
+ | ** historie | ||
+ | * (zjišťovat a ukládat informaci o tom, že daná stanice přestala být aktivní) | ||
=[[Analýza dat SMTP komunikace]]= | =[[Analýza dat SMTP komunikace]]= | ||
Line 116: | Line 124: | ||
RCPT TO: <nejaka.lokalni.adresa@fjfi.cvut.cz> | RCPT TO: <nejaka.lokalni.adresa@fjfi.cvut.cz> | ||
*v databázi jsou předzpracovány informace přibližně odpovídající [http://www.postfix.org/SMTPD_POLICY_README.html Postfix SMTP Access Policy Delegation], dál jsou tam body přiřazené spamassassinem | *v databázi jsou předzpracovány informace přibližně odpovídající [http://www.postfix.org/SMTPD_POLICY_README.html Postfix SMTP Access Policy Delegation], dál jsou tam body přiřazené spamassassinem | ||
− | *úkolem by bylo vygenerovat pár histogramů podle dat z databáze (podrobnosti na mailu vokac | + | *úkolem by bylo vygenerovat pár histogramů podle dat z databáze (podrobnosti na mailu vokac at fjfi.cvut.cz) |
*pokusit se na základě bodů od spamassasinu navrhnout pravidla pro odmítání mailů po RCPT TO (jen podle informací uvedených v [http://www.postfix.org/SMTPD_POLICY_README.html Postfix SMTP Access Policy Delegation]) | *pokusit se na základě bodů od spamassasinu navrhnout pravidla pro odmítání mailů po RCPT TO (jen podle informací uvedených v [http://www.postfix.org/SMTPD_POLICY_README.html Postfix SMTP Access Policy Delegation]) | ||
*mrknout se na [http://kmlinux.fjfi.cvut.cz/~vokac/activities/ppolicy/ ppolicy] a navrhnout případně další možné kontroly | *mrknout se na [http://kmlinux.fjfi.cvut.cz/~vokac/activities/ppolicy/ ppolicy] a navrhnout případně další možné kontroly | ||
Line 145: | Line 153: | ||
*volitelně - routování POP3 spojení k různým POP3 serverům na základě údajů uložených v LDAP | *volitelně - routování POP3 spojení k různým POP3 serverům na základě údajů uložených v LDAP | ||
*příklad [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2005/site/novakj/pop3.htm POP3 komunikace] | *příklad [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2005/site/novakj/pop3.htm POP3 komunikace] | ||
+ | |||
+ | =[[Whois třída v Pythonu]]= | ||
+ | *stučný popis whois (protokol, jaké informace poskytuje, k čemu slouží, ...) | ||
+ | *napsat třídu v pythonu, která zprostředkuje přístup k informacím z [[w:whois|whois]] | ||
+ | *výsledek by měl vypadat/fungovat podobně jako perl modul [http://search.cpan.org/~romm/Net-Whois-IANA-0.21/IANA.pm Net::Whois::IANA] | ||
+ | |||
+ | =[[Úprava záznamů v DNS pomocí DDNS]]= | ||
+ | *aplikace pro správu DNS pomocí přes DDNS (RFC2137 resp. RFC3007) | ||
+ | *použít některou z existujících knihoven ([http://www.dnspython.org/ python], [http://www.dnsjava.org/ java], [http://www.net-dns.org/ perl], ...) | ||
+ | *GUI, WEB nebo CLI rozhraní | ||
+ | *podpora "všech" možných typů záznamů (A, AAAA, CNAME, MX, SRV, TXT, NS, ...) | ||
+ | |||
+ | =[[Zabezpečené spojení přes SSL]]= | ||
+ | *viz. [[SITE_2005_zapocty#Zabezpe.C4.8Den.C3.A9_spojen.C3.AD_p.C5.99es_SSL|zadání z minulého roku]] |
Latest revision as of 15:15, 16 July 2009
Contents
- 1 Obecné pokyny pro vypracování
- 2 Identifikace zdrojů spamu na FJFI
- 3 Knihovna pro DNSBL v Pythonu
- 4 Zajištění důvěryhodnosti mailu - SPF
- 5 Zajištění důvěryhodnosti mailu - DKIM
- 6 Nové trendy v oblasti wireless sítí - WiMAX
- 7 Zeroconf - automatická konfigurace sítí a služeb
- 8 SCTP
- 9 Multicast
- 10 Monitorování SMTP provozu
- 11 Monitorování výskytu stanic v síti
- 12 Analýza dat SMTP komunikace
- 13 Generování grafu sítě
- 14 IMAP Proxy
- 15 POP3 Proxy
- 16 Whois třída v Pythonu
- 17 Úprava záznamů v DNS pomocí DDNS
- 18 Zabezpečené spojení přes SSL
Obecné pokyny pro vypracování
- nebude-li uvedeno/dohodnuto jinak, výsledná prace bude vložena do těchto wiki stránek
- každý uživatel se přihlasí svým jménem/heslem (je potřeba vybrat vhodný autentizační zdroj - GAS pro většinu znamená autentizaci proti NDS)
- stránku vložte pod odkaz z titulku úkolu, který zpracováváte
- přihlašujte se přes zabezpečené spojení HTTPS!
- manuál pro editování wiki
- pokud jste úplně ztraceni, zkuste http://www.wikipedia.org/ nebo http://www.google.com/ :)
Identifikace zdrojů spamu na FJFI
- aplikace, která bude kontrolovat výskyt strojů na blacklistech z IP rozsahu FJFI
- spouštěna pravidelně z cronu (tj. není potřeba psát přímo daemona)
- bude uchovávat historii incidentů v DB
- informace o změnách (přírůstcích?) proti poslední kontrole pošle mailem
- zobrazení aktuálního stavu + historie na webu
Knihovna pro DNSBL v Pythonu
- rozumně použitelné API
- možnost konfigurace různých blacklistů
- převzetí (rozparsování) konfigurace ze spamassassinu, tohoto seznamu, případně i dalších
- cachování výsledků, možnost nastavit velikost cache a expirace
- thread-safe (bude se to týkat práce s cache a možná také DNS dotazů v závislosti na použitém DNS modulu)
- sychroní a asynchroní volání
- optimalizace pro maximální výkon
- funkce (třída?) pro kontrolu proti seznamu blacklistů
- výsledkem bude volání kontrolní funkce bude
- boolean hodnota
- skóre podle konfiguračních souborů pro spamassassin
- seznam blacklistů na nichž je adresa uvedena (přicemž budu moci zjistit další informace o konkrétním blacklistu - viz. info v konfiguračních souborech)
- možno využít adns nebo libovolnou jinou knihovnu
Zajištění důvěryhodnosti mailu - SPF
- základní popis
- co to vlastně je
- k čemu je to dobré
- k čemu to naopak neslouží
- jednoduchý popis konfigurace DNS záznamů
- požadavky na správce a uživatele
- RFC 4405, RFC 4406, RFC 4407 RFC 4408
- rozdíly mezi spfv1 a spfv2.0, kompatibilita
- vztah mezi spf a sender-id
- výhody/nevýhody proti jiným řešením (třeba DomainKeys resp. DKIM)
- implementace
- knihovny pro různé jazyky (python, perl, C, ...) - vyzkoušet
- moduly pro mailservery (postfix, sendmail, exchange, ...) - odkazy
Zajištění důvěryhodnosti mailu - DKIM
- základní popis
- co to vlastně je
- k čemu je to dobré
- k čemu to naopak neslouží
- jednoduchý popis konfigurace
- požadavky na správce a uživatele
- rozdíly mezi původním návrhem DomainKeys a DKIM
- výhody/nevýhody proti jiným řešením (třeba SPF)
- vztah k existujícím RFC (omezení délky záznamů v DNS, X- hlavičky mailů, ...)
- implementace
- knihovny pro různé jazyky (python, perl, C, ...) - vyzkoušet
- moduly pro mailservery (postfix, sendmail, exchange, ...) - odkazy
- oficiální stránky
Nové trendy v oblasti wireless sítí - WiMAX
- základní popis WiMAX
- vlastnosti, srovnání se současnými standardy WiFI (802.11a/b/g) - výhody/nevýhody
- možnosti zabezpečení komunikace
- použitelnost na FJFI
- zařízení? klienti? (existují vůbec? cena?)
- bezlicenční pásmo?
Výsledky: WiMAX V.Jary Petr Macháček
Zeroconf - automatická konfigurace sítí a služeb
- co to je a k čemu je to dobré
- alokace IP bez DHCP (IPv4 Link-Local Addressing)
- překlad jméno<->adresa bez DNS serveru (Multicast DNS)
- hledání dostupných služeb (DNS Service Discovery)
- ...
- principy fungování, stav implementace pro různé OS
- vztah k existujícím RFC (např. vzhledem k záznamům v DNS pro DNS-SD)
- rozchození ukázkové konfigurace (např. avahi v linuxu)
- jiné systémy propagace/informace o službách v síti jako historický SAP (Service advertising protocol na IPX), WINS (Windows Internet Naming Service) pro MS Windows, otevřený standard SLP (Service Location Protocol) pro NetWare a unix, aj.? Srovnání v čem si všechny uvedené systémy konkurují, doplňují se.
- najít statistiky, v jakém množství jsou výše uvedené systémy zastoupené v internetu, LAN apod.
SCTP
- popis vlastností tohoto síťového protokolu
- vztah k TCP/UDP (vlastnosti, výhody, nevýhody, ...)
- implementace jednoduché aplikace pro prezentaci (některých) jedinečných vlastností tohoto protokolu
Multicast
- o co jde a k čemu je to dobré (kde a jak se to dá použít, příklady aplikací, způsob inzerování služeb, způsob připojení k multicastu, zabezpečení, multicast-storm)
- základní popis standardních služeb a protokolů (jako třeba <bash>ping 224.0.0.1</bash>
- implementace jednoduchého multicastového serveru a klienta
- používá se například při hledání, kde běží určitá služba. Takže zkuste třeba klienta protokolu SLP
Monitorování SMTP provozu
- daemon monitorující navazování spojení na port 25
- možnost definovat IP rozsahy, které se nemají monitorovat
- pokud nějaký stroj ze sledovaného rozsahu začne navazovat hromady spojení, zaslat mail správci, případně uložit záznam do databáze
- možnost definovat stroje, které se nemají monitorovat (typicky oficiální mailservery)
Monitorování výskytu stanic v síti
- deamon monitorující stroje, které se nacházejí v lokální síti
- odchytává ARP request/response
- údaje ukládá do souboru (databáze)/uchovává v paměti
- poslouchá na všech/definovaných rozhraních
- volitelně rozhraní pro vyčítání nasbíraných informací (TCP/IP server)
- podívat se jestli umí CISCO 3550 posílat SNMP TRAP při výskytu nové stanice na síti (ARP)
- napsat aplikaci, která bude tyto zprávy odchytávat a bude je ukládat do databáze
- aktuální informace
- historie
- (zjišťovat a ukládat informaci o tom, že daná stanice přestala být aktivní)
Analýza dat SMTP komunikace
- maily lze rozumně odmítat jen při SMTP spojení s remote serverem
- vygenerování chybové zprávy pro uživatele je přenecháno na odesílajícím serveru
- negenerují se mail-delivery failure zprávy na falešné adresy
- úkolem je analyzovat data z komunikace
220 mailgw1.fjfi.cvut.cz ESMTP CTU FNSPE 1st MX NO UCE NO SPAM EHLO cizi.mail.server 250 mailgw1.fjfi.cvut.cz MAIL FROM: <nejaka.adresa@nejaky.cizi.server> 250 Ok RCPT TO: <nejaka.lokalni.adresa@fjfi.cvut.cz>
- v databázi jsou předzpracovány informace přibližně odpovídající Postfix SMTP Access Policy Delegation, dál jsou tam body přiřazené spamassassinem
- úkolem by bylo vygenerovat pár histogramů podle dat z databáze (podrobnosti na mailu vokac at fjfi.cvut.cz)
- pokusit se na základě bodů od spamassasinu navrhnout pravidla pro odmítání mailů po RCPT TO (jen podle informací uvedených v Postfix SMTP Access Policy Delegation)
- mrknout se na ppolicy a navrhnout případně další možné kontroly
Generování grafu sítě
- motivace - ze switchů lze přes SNMP vyčíst informaci, přes který port se komunikuje s konkrétní MAC adresou, tímto způsobem by se mělo dát automaticky vygenerovat zapojení všech zařízení do sítě
- mám seznam uzlů
- z každého uzlu vede více hran
- v každém uzlu vím, kterou hranou se vydat do jiného uzlu (ale nevím, přes kolik dalších uzlů projdu)
- graf je acyklický (pokud nebudeme brát do úvahy Spanning Tree Protocol, který fyzické kruhy logicky rozděluje, ale zřejmě pro každou VLAN mohou být jiné cesty )
- úkolem je vygenerovat a nakreslit graf (graphviz) na základě uvedených pravidel
IMAP Proxy
- motivace - zrychlení práce s maily přes webmail
- proxy pro IMAP server, která bude cachovat autentizovaná spojení pro uživatele
- možnost využít python-twisted - viz. např. tento jednoduchý příklad IMAP Proxy
- podpora zabezpečeného spojeni přes SSL (a to jak od klienta k proxy, tak i od proxy k serveru), ověřování platnosti certifikátů
- na základě uživatelského jména směřovat spojení na různé back-end IMAP servery
- volitelně - routování IMAP spojení k různým IMAP serverům na základě údajů uložených v LDAP
- příklad IMAP komunikace
POP3 Proxy
- motivace - zrychlení práce s maily pres webmail
- proxy pro POP3 server, která bude cachovat autentizovaná spojení pro uživatele
- možnost využít python-twisted - viz. např. tento jednoduchý příklad IMAP Proxy
- podpora zabezpečeného spojeni přes SSL (a to jak od klienta k proxy, tak i od proxy k serveru), ověřování platnosti certifikátů
- na základě uživatelského jména směřovat spojení na různé back-end POP3 servery
- volitelně - routování POP3 spojení k různým POP3 serverům na základě údajů uložených v LDAP
- příklad POP3 komunikace
Whois třída v Pythonu
- stučný popis whois (protokol, jaké informace poskytuje, k čemu slouží, ...)
- napsat třídu v pythonu, která zprostředkuje přístup k informacím z whois
- výsledek by měl vypadat/fungovat podobně jako perl modul Net::Whois::IANA
Úprava záznamů v DNS pomocí DDNS
- aplikace pro správu DNS pomocí přes DDNS (RFC2137 resp. RFC3007)
- použít některou z existujících knihoven (python, java, perl, ...)
- GUI, WEB nebo CLI rozhraní
- podpora "všech" možných typů záznamů (A, AAAA, CNAME, MX, SRV, TXT, NS, ...)