ZAPISKI ADMINA extreme 2008 Wiktor Kołodziej (wiktor [at] zhr pl)
O CZYM BĘDZIE? Platforma sprzętowa Rozplanowanie systemu plików GVINUM ACL-e Ciekawostki z basha / administracji
MASZYNA PC Poznań Dyski 2x76GB Raptor, 2x250GB Seagate 2GB Ram Kontroler RAID Intel (6x sata)
SYSTEM FreeBSD 6.2 apache + PHP5 + mysql pure-ftpd mrtg postfix + mailman + amavis
FILESYSTEM Mądre rozplanowanie systemu plików zaoszczędzi kłopotów w przyszłości / (2GB), /usr (23GB), /var (21GB) i /var/ log (14GB) /home (5GB+) i /home/users (122GB+) był jeszcze /backup...
FILESYSTEM [root@mail /home/staff/viciu]# df -h Filesystem Size Used Avail Capacity Mounted on /dev/amrd1s1a 1.9G 1.1G 681M 63% / /dev/amrd1s1d 23G 8.5G 13G 40% /usr /dev/gvinum/home 4.8G 1.1G 3.4G 24% /home /dev/gvinum/homeusers 122G 96G 16G 86% /home/users /dev/amrd1s1e 21G 4.0G 16G 21% /var /dev/amrd1s1f 14G 6.5G 6.0G 52% /var/log /dev/amrd1s2d 1.9G 203M 1.6G 11% /tmp /dev/amrd0s2d 3.9G 2.8G 728M 80% /mnt/tmp2
GEOM - MODULAR DISK TRANSFORMATION FRAMEWORK GEOM - framework, daje dostęp do tzw. control classes (MBR, BsdLabel, etc) wprowadza pojęcie providerów (np. mirror) obsługuje różne rodzaje raida przeźroczysta warstwa
REALIA SERWERA I GVINUM /home i /home/users przyrastają w czasie dzięki gvinumowi istnieje możliwość dodania kolejnego dysku lub jego części do rozrastających się partycji dodatkowa warstwa między dyskiem a systemem, daje skalowalność odpowiednik linuxowego LVM a
GVINUM - KONFIGURACJA (1) Po pierwsze albo wkompilowujemy w kernel, albo dodajemy do /boot/loader.conf wpis geom_vinum_load=yes
GVINUM - KONFIGURACJA (2) Następnie trzeba przygotować partycje najlepiej zrobić to na ODDZELNYM slice, np. ad4s3 co ważne, należy zmienić typ tej partycji na vinum, np. disklabel -e /dev/ad4s3
GVINUM - KONFIGURACJA (3) Tworzymy plik konfiguracyjny: /etc/vinum.conf a - nasza nazwa drive a device /dev/mirror/gm0s1e volume home plex org concat sd length 5g drive a volume homeusers plex org concat sd length 180g drive a
GVINUM - KONFIGURACJA (4) Wolumeny są przypisywane po kolei po stworzeniu, będziemy widzieli ile jeszcze jest wolnego (w mb) jeżeli chodzi o modyfikowanie wielkości fs, po dodaniu nowego wolumenu - growfs
GVINUM - KONFIGURACJA (5) Gdy mamy już plik konfiguracyjny odpalamy konsolę gvinuma gvinum> gvinum> create /etc/vinum.conf gvinum> list
GVINUM - KONFIGURACJA (6) Można usunąć wolumeny: rm -r home, rm -r homeusers gdy jesteśmy zadowoleni ze stworzonych dysków, to zapisujemy configa gvinum>saveconfig
GVINUM - UWAGI Jezeli chcemy coś dodac, to najlepiej stworzyć kolejny config config jest tak naprawdę zapisany w formacie wenętrznym gvinuma, pliki warto trzymać po to by łatwiej orientowac się w konfiguracji
GVINUM - UWAGI Problem: po crashu dysków i systemu gvinum zniknął wystarczyło z konsoli gvinuma wylistować info o dyskach (list) następnie gvinum start vol1 dokładny stan gvinuma: gvinum> printconfig
GVINUM - PODSUMOWANIE Nowoczesny menadżer wolumenów dla freebsd daje możliwość zrobienia raida softwarowego (poprzez providera gm_mirror) ukrywa przed systemem ilość dysków - w systemie widoczna 1 logiczna partycja stabilny, działa już ponad 2 lata na zhr.pl!
DOBRA RADA Jedną z ważniejszych rzeczy, które należy zrobić po zainstalowaniu systemu, jest wydrukowanie i rozesłanie do wszystkich swoich znajomych outputu z disklabel /dev/disk_slice w przeciwnym wypadku prosimy się o kłopoty src/tools/tools/find-sb/ ports/sysutils/scan_ffs/ ports/sysutils/ffsrecov/
CIEKAWOSTKA Mon Dec 25 22:31:15 CET 2006: Odkrycie, że twórca systemu plików ufs, Kirk McKusick jest gejem, a UFS magic number, to data jego urodzin. #define FS_UFS2_MAGIC 0x19540119" (/usr/ include/ufs/ffs/fs.h) mimo, że jest gejem, ma 4 synów: http://www.mckusick.com/~mckusick/index.html
ACL - ACCESS CONTROL LIST Standardowe uprawnienia w UNIXIE to informacja o prawie do odczytu, zapisu i wykonaniu dla użytkownika, grupy i wszystkich; jest to w wielu przypadkach za mało ACLe rozszerzają te możliwości dzięki nim możemy dać np. większe uprawnienia do plików serwerowi WWW, ograniczająć je zarazem innym użytkownikom serwera
ACL (1) Do ACLi sa potrzebne 2 rzeczy: options UFS_ACL w kernelu UFS2 te opcje są standarowe jak się okazuje cat /usr/src/sys/i386/conf/zhr17 grep ACL >options UFS_ACL # Support for access control list
ACL (2) Aby uruchomić ACLe, należy: tunefs -a enable /dev/costam podmontować system plików z obsługą acli (/ etc/fstab) dobrze jest również przekompilować programy korzystające z acli (np. rsync) do archiwizacji plików należy używać stara (zamiat tara)
ACL (3) - PRZYKŁAD setfacl -m u:sympa:rx,g::-,o::- ~hportal
ACL (4) - PRZYKŁAD su adam cd ~hportal su: cd: /home1/jed/hportal: Permission denied [root@mail ~/log]# ls -al ~hportal drwxr-x---+ 6 hportal phportal. drwxr-x--x 263 root wheel.. -rw-r--r-- 1 hportal phportal.login...
ACL (5) - PRZYKŁAD [root@mail /home/users]# getfacl ~hportal #file:/home1/jed/hportal #owner:2949 #group:3073 user::rwx user:sympa:r-x group::--- mask::r-x other::---
ACL - PODSUMOWANIE ACLE rozszerzają standardowe uprawnienia UNIXOWE zwiększają prywatność na serwerze dają elastyczną możliwość nadawania uprawnień (np. początkujący admin może mieć dostęp do wybranych zasobów)
CIEKAWOSTKA Ile znaków może mieć najkrótszy exploit na php? Wyzwanie dla kolejnego pokolenia adminów:)
BASHOWE ZAGADKI $$ $? $# $* $@!$!! $!
WIELU ADMINÓW, WIELE PROBLEMÓW? Jeden administrator zna swój system duży system - potrzeba wielu administratorów jak wspólnie pracować? jak inni admini mają wiedzieć co się dzieje na serwerze?
INŻYNIERIA screen skype logi, logi, logi, logi, logi, logi,... konwencje samodyscyplina
CIEKAWOSTKI (1) test = [ ] błędy HTTP ftp (active / passive) bity sgid i suid, find kernel panic vmstat, iostat
CIEKAWOSTKI (2) mamy dwa takie same pliki (identyczna nazwa), jak je skasować? rodzaje komunikacji międzyprocesowej? nie możemy odmontować fs, dlaczego? touch hardlinki i symlinki nie działa ps
PYTANIA?
DZIĘKUJĘ ZA UWAGĘ!