500 likes | 610 Views
Seminar T op 10@syshelp. Osnovna ideja: Stručna pomoć sistem-inženjerima Centralno koordiniranje upita između različitih grupa Savjetovanje. Helpdesk za sistem-inženjere Sistemac@carnet.hr Telefon: 01 6165 680. Priredio: Božo Juretić <bjuretic@srce.hr>. Seminar T op 10@syshelp.
E N D
Seminar Top10@syshelp • Osnovna ideja: • Stručna pomoć sistem-inženjerima • Centralno koordiniranje upita između različitih grupa • Savjetovanje Helpdesk za sistem-inženjere Sistemac@carnet.hr Telefon: 01 6165 680 Priredio: Božo Juretić <bjuretic@srce.hr> Top10@Helpdesk
Seminar Top10@syshelp Plan seminara Brisanje mailova korisnika za određeno razdoblje (Debian) Sendmail: blokiranje spammera na lošoj mreži Rad sa AIDE sustavom Popravak «puknutih» instalacija programskih paketa LDAP: promjena root passworda LDAP: problemi u instalaciji novih paketa Problemi sa random-om na Solarisu Problemi sa PINE-om Downgrade unstable/testing Debiana na stable Upute za izradu vlastitih .deb paketa za Debian i Solaris Top10@Helpdesk
Seminar Top10@syshelp Dodatni sadržaji: Novi projekti: AIDE-Central Centralna Snort analitička konzola Slobodna rasprava i pitanja koja ćemo nastojati zajednički riješiti Top10@Helpdesk
1. Brisanje mailova za određeno razdoblje(Debian) Upit >Pa recimo da hocu pobrisati sve poruke iz mailboxeva korisnika starije od >sredine 2002-e.Da da, Debian je. Rješenje: Pobrisati poruke pomoću skripte mail-expire Npr. $ mail-expire --delete <broj dana> Rezime problema: • nakon postavljanja FEATURE(`dnsbl',`relays.ordb.org'), mailovi se ne isporučuju ni lokalno u slučaju ispada mreže Top10@Helpdesk
1. Brisanje mailova za određeno razdoblje(Debian) • Program nije u stable distribuciji Debiana, pa cete ga morati instalirati rucno: # apt-get install libcompress-zlib-perl libdate-calc-perl (perl moduli koje program koristi) $ wget 'http://ftp.us.debian.org/debian/pool/main/m/mail-expire/mail-expire_0.4_all.deb' # dpkg -i mail-expire_0.4_all.deb # zsh # cd /var/mail # for i in * (udarite enter) # do # mail-expire --delete <broj dana> $i # chown $i:mail $i # chmod 660 $i # done Top10@Helpdesk
2. Sendmail: blokiranje spammera sa loše mreže Upit: >U sendmail.mc sam jos davno dodao slijedece: >FEATURE(`dnsbl',`relays.ordb.org',`"550 Email rejected due to sending server >misconfiguration - see ") >Medjutim poradi i glede cestog ispadanja dijela mreze, sendmail mi ne salje mejlove >cak ni lokalno, pa pretpostavljam da je problem u ovom FEATURE-u. Ocito se >pokusava spojiti na ordb.org, ali mu to ne ide. Pa sad, sto mislite koliko je ovo uopce >korisno iz vasega iskustva, postoji li neka druga opcija i jeli mi se to uopce desava >zbog toga ili je nesto drugo? Top10@Helpdesk
2. Sendmail: blokiranje spammera sa loše mreže Rješenje • u /etc/mail/access dodati liniju 127.0.0.1 OK • pokrenuti # cd /etc/mail # makemap hash access.db < access • restartati sendmail # /etc/init.d/sendmail restart Top10@Helpdesk
3. Rad sa AIDE sustavom AIDE – Advanced Intrusion Detection Environment • provjerava integritet podataka na datotečnom sustavu • kreira bazu podataka sa checksumima svih fajlova • usporedjuje trenutno stanje sa bazom i ispisuje razlike (mailom ili u na konzoli) Top10@Helpdesk
3. Rad sa AIDE sustavom Upit: >Samo jedno pitanjce vezano uz AIDE. Dakle, ako sam dobro shvatio, >svaki put kad se bilo sto >instalira, nakon toga je potrebno napraviti "aide --init", potom u >/var/lib/aide promijenitiaide.db.new u aide.db? >Mislim da je to ono sto treba napraviti pa molim nadopunite, > akonije :) Top10@Helpdesk
3. Rad sa AIDE sustavom Način korištenja • podešavanje aide.conf-a • inicijalizacija baze # aide –init (ili aideinit) • gledanje razlika sa # aide –check • Prepisivanje baze sa trenutnim stanjem datottečnog sustava sa # cd /var/lib/aide # mv aide.db.new aide.db Top10@Helpdesk
3. Rad sa AIDE sustavom Pretpostavke: • bazu je na readonly mediju, ili zaštićena od brisanja i izmjene od strane napadača • praćenje ispisa aide –check , jer inače stvar nema smisla Prijedlog: # aideinit - nakon svakog update-a stroja, ali prije provjeriti stanje sa # aide --check Top10@Helpdesk
4. Popravak «puknutih» instalacija paketa • Problem se javlja pri instalaciji programskih paketa, koji se zbog nekog razloga ne uspiju do kraja instalirati. • Simptomatika: neispravan rad servisa neispravan status paketa $ dpkg -l openldap-cn Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description ====================================================== iF openldap-cn 2.1.17-5 OpenLDAP server and client with utility for easy start Top10@Helpdesk
4. Popravak «puknutih» instalacija paketa Rješenja: • javiti problem grupi za pakete na paketi@carnet.hr i čekati da oni poprave paket • NE kontaktirati maintainere paketa preko telefona, ukoliko oni to nisu eksplicitno dopustili • pokušati samostalno riješiti problem i o problemu i rješenju obavijestiti maintainera paketa Samostalno rješenje problema • Prvo pogledamo informacije o paketu koji je problematican $ dpkg –l openldap-cn $ dpkg –s openldap-cn Top10@Helpdesk
4. Popravak «puknutih» instalacija paketa Postupak popravljanja paketa • oslanja se na poznavanje problematike iz pitanja br. 1 • Ukoliko iz poruke koju paket ispisuje pri neuspješnoj instalaciji nije očito kako popraviti instalaciju, treba pogledati datoteke u var/lib/dpkg/info/paket.* • Pogledati datoteke postinst, preinst, prerm … i u njima pokušati otkriti gdje je problem • Ukoliko problem nije očit, pokušati editirati te skripte i na njihov vrh umjesto pozivanja shella pozvati shella sa –x opcijom za ispisivanje naredbi koje se trenutno izvrsavaju pri instalaciji: #!/bin/sh promijeniti u #!/bin/sh –x Top10@Helpdesk
4. Popravak «puknutih» instalacija paketa • Pokrenuti dpkg --configure –a i vidjeti dali je problem rijesen, odnosno paket uredno instaliran (dpkg –l vraca uredan ii status) • Ponavljati zadnja dva koraka dok se greška ne otkrije i ispravi • Prepakirati paket postupkom sličnim onome u pitanju 1: - otpakirati naispravan paket sa kontrolnim datotekama na neko mjesto - prepisati ispravljene postinst i ostale datoteke unutar tog direktorija - prepakirati paket sa $ dpkg –b paket . Poslati na paketi@carnet.hr u čemu se sastojao problem i koje mu je rješenje Top10@Helpdesk
5. LDAP: promjena root passworda • Nekada je trebalo napraviti .ldif sa izmijenjenim podacima (i sada potrebno ukoliko se mijenjaju poaci za korisnike iz komandne linije – sada preko sučelja) • Sada se obavlja uz pomoć slappasswd alata • Izmjena se vrši putem rootpw direktive u /etc/ldap/slap.conf (na Solarisu /usr/local/etc/ldap/slapd.conf) Primjer takve linije: rootdn "cn=admin,dc=adu,dc=hr" rootpw {crypt}H17H7AH.3dW46 Top10@Helpdesk
5. LDAP: promjena root passworda Postupak • Generiranje hash vrijednosti nove lozinke sa slappasswd # slappasswd New password: (unos) Re-enter new password: (unos) (vraća) {SSHA}gxXS4A8++BhJASlDMOPOhkicmK6Wcik6 Top10@Helpdesk
5. LDAP: promjena root passworda {SSHA}gxXS4A8++BhJASlDMOPOhkicmK6Wcik6 • Liniju {SSHA} upisati pored direktive rootpw u slapd.conf-u, tako da linije sada izgledaju ovako rootdn "cn=admin,dc=adu,dc=hr" rootpw {SSHA}gxXS4A8++BhJASlDMOPOhkicmK6Wcik6 • Restartati slapd sa # /etc/init.d/slapd stop # /etc/init.d/slapd start Top10@Helpdesk
( savjet: LDAP preko HTTPS-a) Razlozi • Trenutno sav promet u kojemu koordinator preko web sučelja unosi i mijenja podatke korisnika CMU-a putuje neenkriptiran preko mreže Opasnosti • Bilo tko može usniffati promet i saznati LDAP administratorsku lozinku i otvarati N korisničkih računa, ili im mijenjati status, što se teško otkriva • Narušena sigurnost sustava (iste lozinke za LDAP i shell accounte?) Top10@Helpdesk
(savjet: LDAP preko HTTPS-a) Način izvedbe • Podešavanje apache-a da radi sa mod_ssl-om Provedba • (Debian) Instalirati najnoviji apache-cn paket koji sve podesava automatski: SSL dobivate out-of-the-box i ostaje samo koristiti ga na način: Umjesto http://www.domena.hr/ldap Koristiti https://www.domena.hr/ldap Ubrzo planiramo omogućiti automatsku preusmjeravanje sa http://ldap.domena.hr/ => https://www.domena.hr/ldap (jednostavno za koordinatore, ne moraju misliti o SSL-u, sve se događa automatski) Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa Razlozi za upgrade • bolja integracija u sustav (poštuju CARNetovu paketnu politiku) • implementirane nove access kontrole • omogućen udaljeni backup LDAP imenika na SRCU • bolje funkcioniranje kombinacije openldap, radius, web sučelje • lako upgradanje u budućnosti • kompatibilnost sa Debian standardom Redoslijed instaliranja paketa • libdb4, libsasl i libdb3 • openldap • freeradius • cn-ldap-hr (web sučelje) Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa Najčešći problemi u instalaciji (Debian) (upgrade sa paketa Dubravka Penezica, CMUNG na pakete Josipa Rodina) 1. Problem: slapd se nije dobro instalirao, pa puca instalacija openldap-a apt-get install openldap-cn vraca Dumping directory to /var/backups/slapd-2.0.23-6.ldif... /var/lib/dpkg/tmp.ci/preinst: slapcat: command not founddpkg: error processing /var/cache/apt/archives/slapd_2.1.17-1_i386.deb(--unpack): Rješenje: • dpkg –P slapd; apt-get install slapd; apt-get install openldap-cn • Eventualno pogreška u /var/backups/slapd-2.0.23-6.ldif datoteci – potrebno ispraviti DC= liniju Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa 2. Problem: Greška sa atributima (nedostaju ili su duplicirani) Rješenje: • U /etc/ldap/slapd.conf-u pomaknuti include linije sa dna datoteke na vrh, pored drugih include linija • Provjeriti dali se neke include linije ponavljaju na vrhu i dnu datoteke Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa 3. Problem: Nije pokrenuta naredba slapcat prije upgrade-a paketa Rješenje: • Instalirati STARI paket koji zna citati stari format baze (potraziti ga u /var/cache/apt/archives) • Izvršiti slapcat nakon instalacije slapcat -l /var/backups/slapcat.openldap-cn • Pokrenuti instalaciju openldap-cn apt-get update apt-get install openldap-cn Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa Problem • U slapd.conf-u umjesto rootovog passworda stoji: rootdn "cn=admin,dc=ihjj,dc=hr" rootpw Incorrect number of arguments (pokreška u samom paketu) Rješenje • Isto kao i za promjenu LDAP root passworda (slappasswd) Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa Problem • Ne prolazi instalacija openldap-cn-a, iako je napravljen slapcat Rješenje • staru bazu u /var/openldap/openldap-ldbm pomaknite na drugo mjesto Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa Problem • Pri instalaciji openldap-cn javlja slapadd: dn="dc=efri,dc=hr" (line=20): (64) value of naming attribute 'dc' is not present in entry couldn't insert old data: No such file or directory Do greške dolazi ukoliko ukoliko se u datoteci /var/backups/slapcat.openldap-cn razlikuje dc podatak u poljima dn i dc Rješenje • Promijeniti polja tako da dc podataka u dn idc poljima bude isti Top10@Helpdesk
6. LDAP: problemi u instalaciji paketa Problem • Instalacija paketa javlja: >slapadd: dn="cn=admin,dc=efri,dc=hr" (line=39): (64) value of naming >attribute 'cn' is not present in entry >couldn't insert old data: Illegal seek Rješenje • Zamijeniti linije u /var/backups/slapcat.openldap-cn dn: cn=root,dc=efri,dc=hr cn: admin … u dn: cn=admin,dc=efri,dc=hr cn: admin Top10@Helpdesk
7. Problemisa random-om na Solarisu Problem • random modul (Sun patch 112438) ne instalira se kako treba Rješenja • Rebootanje stroja, ukoliko je zaboravljeno • Ručna instalacija patcha kojeg nosi random paket Dijagnostika problema • $ ssh neki_host vraća PRNG is not seeded Top10@Helpdesk
7. Problemisa random-om na Solarisu Ručna instalacija patcha Prvo pogledamo dali je patch instaliran sa $ showrev -p | grep 112438 Ukoliko nije instaliran (showrev ne vraćanešto), rješenje je: # cd /usr/local/doc/random # unzip 112438-01.zip # cp –pr 112438-01 /tmp # cd /tmp # patchadd 112438-01 # add_drv random Top10@Helpdesk
7. Problemisa random-om na Solarisu Ukoliko showrev -p | grep 112438 vrati nešto slično ovome: Patch: 112438-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcarx, SUNWcsr, SUNWmdb, SUNWmdbx, SUNWhea • Potrebno je pogledati dali je učitan modul # modinfo | grep random • Ukoliko nije učitan učitati ga sa # add_drv random Isprobati random sa ssh localhost Top10@Helpdesk
8. Rješenje problema sa PINE-om (Sol) Problem • Pine javlja nesigurne permissione na /var/mail direktoriju • Pine nudi rješenje: 1777 na /var/mail • Nedostaci rješenja: svi mogu pisati (možda nema quote?) Rješenje • umjesto chmod 1777 kako pine sugerira (svatko može pisati u /var/mail), staviti setgid na pine # chmod 1775 /var/mail # chgrp mail /var/mail # chmod g+s /usr/local/bin/pine # chgrp mail /usr/local/bin/pine Top10@Helpdesk
9. Downgrade unstable/testing Debiana na stable Upit: >imam problem na serveru XXX.XXX.hr, ostali su stari podaci u >/etc/apt/sources.list datoteci te su se instalirali testing paketi, >pokusao sam ih skinuti, ali nisam uspio ni s dpkg --purge, niti apt-get >remove, zapelo je kod mysql-server paketa: > >root@XXXXt:~# apt-get remove mysql-server (apt ovdje ispisuje kako ne može deinstalirati pakete jer mnogo drugih ovisi o njima) Top10@Helpdesk
9. Downgrade unstable/testing Debiana na stable Razlozi • nestabilne distribucije • nemaju security updateove Uzroci • zabuna pri prelasku na stable distrbuciju (prekasna promjena linija u /etc/apt/spurces.list sa unstable/testing na stable) Trajanje:oko 2h, bez komplikacija Top10@Helpdesk
9. Downgrade unstable/testing Debiana na stable Rješavanje: • Prvo podesiti ispravne linije u /etc/apt/sources.list # Osnovno deb http://security.debian.org stable/updates main contrib non-free deb http://debian.carnet.hr/debian stable main contrib non-free deb http://ftp.carnet.hr/pub/debian carnet core opt # Izvorni kodovi deb-src http://debian.carnet.hr/debian unstable main contrib non-free Top10@Helpdesk
9. Downgrade unstable/testing Debiana na stable • Prepravljanje /etc/apt/sources.list tako da se linije sa unstable/testing zamijene sa stable (ili woody) • Pokretanje skripte koja će skinuti definicije paketa za stable distribuciju te koja će napraviti sljedeće - Usporediti verziju paketa na sustavu sa verzijom paketa u stable distribuciji - Ukoliko je verzija paketa na sustavu veća od one u distribuciji forsirati instalaciju starije verzije paketa Skriptu se pokreće na sljedeći način: # cd /var/lib/apt/lists ( # apt-get install grep-dctrl , zahtjeva da skripta) # apt-get update Top10@Helpdesk
9. Downgrade unstable/testing Debiana na stable # zsh # for i in $(COLUMNS=200 dpkg -l | grep ^.i | awk '{print $2}'); do if dpkg --compare-versions "$(grep-dctrl -F Package -X $i -s Version -n *_Packages)" lt "$(COLUMNS=200 dpkg -l $i | grep $i | awk '{print $3}')"; then echo $i; apt-get -t stable install $i=`grep-dctrl -F Package -X $i –sVersion -n *_Packages`; fi; done Top10@Helpdesk
9. Downgrade unstable/testing Debiana na stable • Izbrisane pakete vratiti rucno • Neke pakete možda ne želite downgradeati, i zato na svaki upit odgovarate posebno Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris • Napredna tematika • Potrebno dobro poznavanje sustava i programa kojega se “paketira” • Potreba i procjena smisla paketiranja nekog programa Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris Definicija: Paket je skup izvršnih, konfiguracijskih, bibliotečnih i dokumentacijskih datoteka, podešenih tako dainstalacijom omogućuju osnovnu funkcionalnost programa koji je zapakiran. Praktična primjena i smisao paketa: • Podešavanja programa za vlastite potrebe • Izrada paketa iz programa koji nisu zapakirani, radi čistoće sustava i lakešeg održavanja • Promjena konfiguracija na više računala jednokratnim procesom Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris Procedura izrade novog programskog paketa Priprema: • Odabir paketa za paketiranje • download izvornog koda • proucavanje instalacijske dokumentacije • pokretanje ./configure (--help) skripte • make (kompajliranje) U ovoj fazi program je pripremljen za paketiranje: • izvršne datotekei biblioteke su izgrađene iz izvornog koda • dokumentacija je napoznatom mjestu. Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris Osnovna izrada paketa • pokretanje make install narebe, sa istovremenimpraćenjem promjena stanja datotečnog sustava uz pomoćinstallwatch-a: # installwatch –o izlaz.installwatch make install • Kreiranje inicijalnog paketa iz popisa paketa skriptom inst2deb:# inst2deb izlaz.installwatch paket_name (odgovara se na pitanja o paketu) U ovoj fazi imamo kreiran inicijalni paket. Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris Naknadno podešavanje paketa U ovoj fazi osnovni paket proširujemo uključivanjemdokumentacije, ipodešavanjima sustava koje paketautomatski izvodi Redom: • Otpakiramo osnovni paket u zaseban direktorij sa dpkg-om $ dpkg –x neki_paket.deb neki_direktorij • Otpakiramo i konfiguraciju paketa u isti direktorij $ cd neki_direktorij $ dpkg –e ../neki_paket.deb (ovo će kreirati direktorij DEBIAN u direktoriju neki_direktorij) Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris Naknadno podešavanje paketa • Podešavamo skripte u DEBIAN direktoriju • Uključimo u paket dokumentaciju i dodatne datoteke, ukoliko su potrebne • Obavezno(!): promijeniti vlasnistvo svih fajlova na ispravne vrijednosti, npr.: # chown –R root:root neki_direktorij • Izrada finalnog programskog paketa # dpkg –b neki_direktorij . (Ovo će kreirati neki_paket.deb u trenutnom direktoriju.) Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris Isprobavanje paketa • Istestiramo rad paketa sa # dpkg –i neki-paket.deb • Provjerimo ispravnost control datoteke sa $ dpkg –I neki-paket.deb • odnosno, nakon instalacije paketa sa $ dpkg -l neki-paket $ dpkg -s neki-paket Alati za izradu paketa, poput skripte inst2deb će biti dostupni na http://sistemac.carnet.hr/obrazovanje/seminari/top10 Top10@Helpdesk
10. Izrada vlastitih .deb paketa za Debian i Solaris Isprobavanje paketa • Istestiramo rad paketa sa # dpkg –i neki-paket.deb • Provjerimo ispravnost control datoteke sa $ dpkg –I neki-paket.deb • odnosno, nakon instalacije paketa sa $ dpkg -l neki-paket $ dpkg -s neki-paket Alati za izradu paketa, poput skripte inst2deb će biti dostupni na http://sistemac.carnet.hr/obrazovanje/seminari/top10 Top10@Helpdesk
Dodatni sadržaji • AIDE central – log collector • Snort central security console Top10@Helpdesk
Projekti: AIDE Central • Novi projekt u nizu sigurnosnih projekata SRCE+CARNet-a • Namjena (sigurna pohrana i dohvat baze sa stanjem datotečnog sustava) • Korištenje • Implementacija Top10@Helpdesk
Projekti: Snort Central Log Collector • Nadziranje sigurnosti mreže CARNet sa centralne “sigurnosne konzole” na SRCU • Nadzor vrši administrator cjelokupne mreže (stručnjak za sigurnost) ili sistemac za ustanovu • Mogućnosti • Daljnja proširenja (otvoreno za prijedloge) Top10@Helpdesk
Kraj seminara: otvorena diskusija Zahvaljujem na strpljivosti. Svi materijali vezani uz ovaj seminar biti će dostupni na http://sistemac.carnet.hr/obrazovanje/seminari/top10 Top10@Helpdesk