Stawianie serwera na FreeBSD 4.10-RELEASE (by SinusPL) (v1.2) -------------------------------------------------------------- v1.0: pierwsza wersja v1.1: zmiany z 4.8 na 4.10 v1.2: zmiany w skrypcie do reloadu sysctl.conf v1.3: dodatki o dodawaniu userow 1. Instalacja: - partycja / co najmniej 256M, nie musi byc duza, ew. wlaczyc soft-updates - reszta do woli, najlepiej na /usr/home wlasna partycja, tu na 100% soft-updates - instalacja minimalna - swap: 2x RAM +2MB 2. Po instalacji: - ustawiamy haslo roota komenda passwd - wywalamy procfs z /etc/fstab, odmontowujemy /proc komenda umount, bo nie potrzebujemy tego linuxowego balastu - konfigurujemy siec, w /etc/rc.conf ($IP to IP, $MASKA to maska, $GW to nasz router): --- CUT HERE --- hostname="pierdek.dupa.pl" ifconfig_fxp0="inet $IP netmask $MASKA" defaultrouter="$GW" --- CUT HERE --- ten przyklad jest dla karty Intel, pod device fxp0 - w /etc/resolv.conf wpisujemy ($IP1 i $IP2 to IP serwerow DNS): --- CUT HERE --- search dupa.pl nameserver $IP1 nameserver $IP2 --- CUT HERE --- - komendami ifconfig i route ustawiamy IP i routing bez restartu - komenda hostname ustawiamy nazwe hosta - pierwsze to 'pkg_add -r cvsup-without-gui', utworzenie katalogu /usr/local/etc/cvsup, w nim plikow relase-supfile i ports-supfile - w release-supfile: --- CUT HERE --- # supfile - /usr/local/etc/cvsup *default tag=RELENG_4_10 *default host=cvsup2.de.FreeBSD.org *default prefix=/usr *default base=/usr/local/etc/cvsup *default release=cvs delete use-rel-suffix compress # src-all # --- CUT HERE --- - w ports-supfile: --- CUT HERE --- # supfile - /usr/local/etc/cvsup *default host=cvsup2.de.FreeBSD.org *default base=/usr *default prefix=/usr *default release=cvs tag=. *default delete use-rel-suffix *default compress # ports-all # --- CUT HERE --- - tworzymy plik /etc/make.conf, a w nim conajmniej to: --- CUT HERE --- CPUTYPE=i686 PPP_NOSUID=true NO_I4B=true NO_X=true NOGAMES=true MAKE_IDEA=YES BOOTWAIT=1000 USA_RESIDENT=YES SUP_UPDATE=yes SUP=/usr/local/bin/cvsup SUPFILE=/usr/local/etc/cvsup/release-supfile PORTSSUPFILE=/usr/local/etc/cvsup/ports-supfile --- CUT HERE --- - po tym wklepujemy: --- CUT HERE --- mkdir -p /usr/src cvsup /usr/local/etc/cvsup/release-supfile mkdir -p /usr/ports cvsup /usr/local/etc/cvsup/ports-supfile --- CUT HERE --- po czym w /usr/src mamy zrodla systemu, a w /usr/ports porty - teraz na jednym terminalu startujemy kompilacje systemu: --- CUT HERE --- cd /usr/src make buildworld --- CUT HERE --- kompilacja trwa troche, zwykle kilkadziesiat minut - na drugim terminalu w miedzyczasie robimy kernel ($NAZWA to nazwa kompa): --- CUT HERE --- cd /usr/src/sys/i386/conf cp GENERIC PIERDEK --- CUT HERE --- - edytujemy plik PIERDEK, zmieniamy w nim nastepujace rzeczy: wywalamy: cpu I386_CPU cpu I486_CPU cpu I586_CPU zmieniamy ident GENERIC na ident PIERDEK wywalamy: options MATH_EMULATE #Support for x87 emulation options MD_ROOT #MD is a potential root device options NFS_ROOT #NFS usable as root device, NFS required options CD9660_ROOT #CD-ROM usable as root, CD9660 required jezeli mamy SCSI to tu zmieniamy 15000 na 3000: options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI jezeli mamy SMP to wlaczamy te dwie opcje: options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O jezeli mamy HyperThreading w P4, to wlaczamy to: options HTT # HyperThreading Technology wywalamy isa chyba, ze potrzebujemy: device isa USB tez mozna caly wywalic chyba, ze sie potrzebuje, tak samo jak i rozne urzadzenia przy ktorych jestesmy pewni, ze ich nie posiadamy dopisujemy jeszcze te linijki: options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default (dla ipf) options SHMMAXPGS=65536 options SEMMNI=40 options SEMMNS=240 options SEMUME=40 options SEMMNU=120 (dla shared memory) - kompilujemy kernel: --- CUT HERE --- config PIERDEK ../../compile/PIERDEK make depend make --- CUT HERE --- - czekamy az na naszym pierwszym terminalu skompiluje sie swiat i na bierzacym kernel, po czym (gdy _oba_ sa bezblednie gotowe) wklepujemy: --- CUT HERE --- cd /usr/src make installworld cd /usr/src/sys/compile/PIERDEK make install --- CUT HERE --- - dopisujemy sshd do /etc/rc.conf: --- CUT HERE --- sshd_enable="YES" --- CUT HERE --- - dopisujemy do /boot/loader.conf: --- CUT HERE --- userconfig_script_load="YES" kern.ipc.nmbclusters="32768" kern.ngroups="32" kern.maxusers="512" --- CUT HERE --- maxusers i maxgroups ew. dopasowac do wlasnych potrzeb, nmbclusters w zaleznosci od zuzycia, sprawdzanie komenda 'netstat -m', u mnie wyglada tak: # netstat -m 333/928/131072 mbufs in use (current/peak/max): 329 mbufs allocated to data 4 mbufs allocated to packet headers 156/666/32768 mbuf clusters in use (current/peak/max) 1564 Kbytes allocated to network (1% of mb_map in use) 0 requests for memory denied 0 requests for memory delayed 0 calls to protocol drain routines najwazniejsza linijka to 4 od dolu, ktora mowi nam, ze tylko 1% zuzyty, w nastepnych dniach najlepiej kontrolowac i dopasowac (zmiana przy reboot) aby nie bylo nigdy wiecej niz 15-20% zuzyte - dodajemy komenda adduser usera (siebie), dopisujemy do grupy 'wheel' aby mogl korzystac z 'su' - wklepujemy: --- CUT HERE --- sync reboot --- CUT HERE --- po chwili nasza maszynka powinna wstac, z siecia i z sshd, na ktory logujemy sie u loginu wlasnie stworzonego usera, robimy 'su -' i wklepujemy haslo roota 3. Po podstawowej instalacji kompilujemy juz wlasny cvsup: - siedzimy sobie na roocie, na ktorego weszlismy przed chwila, a wiec zacznijmy od wywalenia cvsup, aby skompilowac wlasne z portow: --- CUT HERE --- pkg_info | grep cvsup-without-gui | awk '{print $1}' | xargs pkg_delete cd /usr/ports/net/cvsup-without-gui make install --- CUT HERE --- 4. Zmiany w sysctl.conf: - uzywamy do tego celu pliku z adresu podanego nizej, zapisujemy jako /etc/sysctl.conf: http://sinuspl.net/tuning-freebsd-tcpip.txt - mozemy ew. dopasowac go... aby przeladowac na nowo ustawienia mozna zrebootowac albo odpalic nastepujacy skrypt: --- CUT HERE --- #/bin/sh for CTL in `cat /etc/sysctl.conf | grep -v "^\#" | xargs` do CODE=`/sbin/sysctl $CTL` RIGHT=`echo $CODE | awk -F ": " '{ print $2 }'` OLD=`echo $RIGHT | awk -F "->" '{ print $1 }' | xargs` NEW=`echo $RIGHT | awk -F "->" '{ print $2 }' | xargs` if [ "$OLD" != "$NEW" ]; then echo $CODE fi done --- CUT HERE --- - dopisujemy jeszcze do /stc/sysctl.conf nastepujace dwie linijki: kern.ps_argsopen=0 kern.ps_showallprocs=0 aby userzy nie widzieli nieswoich procesow w top/ps itd. Po dopisaniu odpalamy sysctl-reload z punktu 4. - w tym momencie raczej mozemy juz bez obaw wpuscic userow na serwer 5. Zakladanie kont uzytkownikom: CDN...