configurarea unui server freebsd
DESCRIPTION
Configurarea Unui Server FREEBSDTRANSCRIPT
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
1 din 8 31.10.2006 22:24
CURSURI MS Windows Internet & E-mail Web Design SEMINARE HTML JavaScript ASP curs Unix Adobe Photoshop Dial-Up pentru Windows Utilitare de cautare Cautare avansata in Internet HyperTerminal Digital Media on the Internet What is spam Notiuni generale ale MySQL Configurarea unui servermultifunctional pe baza laFreeBSD E-businessTehnologiile XML - noioportunitati pentru business Dezvoltarea afacerilor ininternet in MoldovaAsigurarea securitatii datelorin format electronic PREZENTARI
This website is hosted free of chargethrough the Internet Access and
Training Program (IATP). IATP is a program of the Bureau of Educational
& Cultural Affairs (ECA), USDepartment of State, funded under the Freedom Support Act (FSA).
IATP is administered by IREX, the International Research & Exchanges
Board.
IATP Moldova Contact Info
Configurarea unui server multifunctional pe baza la FreeBSD
Introducere: Vom incerca sa instalam un server multifunctional pe baza sistemului de operare dinfamilia UNIX FreeBSD.
De ce anume FreeBSD? FreeBSD este un sistem comod organizat si se deosibeste de cele late sisteme deoperare UNIX prin distibutivul simplu si modalitatea simpla de instalare.
Ce functii va avea serverul? Serverul nostru va indeplini urmatoarele functii:
Marsrutizator 1.Mail server (POP3 + IMAP) 2.FTP server 3.Web server (Apache + PHP) 4.Data base server (MySQL) 5.
Instalarea sistemului Vom examina versiunea FreeBSD 5.0. Pentru simplitate voi descrie toata procedura pepasi. Din start va pot promite ca daca veti face totul corect instalarea va dura circa 40minute.
plasam CD ul cu distributivul FreeBSD in CD-ROM. 1.Dupa ce se porneste instalarea alegem regimul CUSTOM de istalare. Acest regim ne va permite sa instalam doar ceea ce avem nevoie.
2.
Pasul urmator este de a imparti corect HDDul pe partitii. Dat fiind faptul ca pentru serverul nostru HDDul nu joaca cel mai important rol, il vom imparti asa cum ne ofera sistemul. Activam punctul PARTITION apasam litera A , si dupa ce el a impartit totul automat apasam litera Q .
3.
Activam punctul LABEL. Apasam iarasi litera A si apoi Q . 4.Activam punctul DISTRIBUTIONS. Apoi de aici alegem MINIMUM. Adica instalam sistema cu minimum de resurse. Apoi EXIT
5.
Activam punctul MEDIA, de acolo alegem de unde vom instala sistemul in cazul nostru va fi CDROM
6.
Activam punctul COMMIT. Si pe vreo 20 minute putem savura o cafea. 7.Activam punctul CONFIGURATION. De aici puteti sa adaugati porturile si sursele care se afla in DISTRIBUTION, PACKAGE, PORTS. Apoi mergem sa schimbam parola pentru userul ROOT
8.
In Punctul USER MANAGEMENT adaugam un utilizator din grupa WHEEL, pentru a putea trece de la acest user la ROOT
9.
Setam TIME ZONE 10.Trecem la punctul NETWORKING 11.Atentie!!! Se presupune ca serverul nostru are 2 placi de retea. Una se va uita in Internet alta spre reteaua locala.
12.
Mergem la punctul GATEWAY, apasam spatiu si bifam optiunea. 13.Accesam punctul INTERFACES. Vom vedea pe ecran toate placile noastre de retea.
14.
La doua din ele care pot sa se numeasca lnc0 si lnc1 (in dependenta de versiune denumirea poate sa varieze, dar 0 li 1 este neaparat.) la sfarsitul randului este notat ETHERNET. Deci anume acestea sunt placile noastre.
15.
O activam pe prima. Setam numele calculatorului, numele de demeniu, adresa DNS, si IPun din reteaua din care face parte aceasta placa.
16.
Activam a doua placa si cu ea procedam la fel. 17.Iesim din instalare si restartam calculatorul. 18.Felicitari ROUTER-ul este instalat 19.
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
2 din 8 31.10.2006 22:24
Setarea marsrutizatorului Deci deja avem calculatorul cu 2 interfete de retea in care una se uita spre Internet si altaspre reteaua locala. Vom continua pe pasi.
Verificam daca functia de router este activata. /etc/rc.conf gateway_enable='YES'
1.
Recompilam nucleul adaugand elementele de care vom avea nevoie si eliminand celea de care nu avem nevoie. Asta se face in felul urmator.
2.
cd /usr/src/sys/i386/conf cp GENERIC my # facem o copie a nucleului
Redactam fisierul adaugand:
########### FIREWALL options IPFIREWALL #firewall options IPFIREWALL_VERBOSE #enable logging to syslogd(8) options IPFIREWALL_FORWARD #enable transparent proxy support options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
########### DUMMYNET saiper in FreeBSD options DUMMYNET
######### IPDIVERT - sistemul NAT options IPDIVERT #divert sockets
Recompilam 3.
config my cd ../../depend/my make depend && make && make install
Restartam computerul 4.
shutdown -r now
Cream fisierul rc.firewall.local Presupunem ca reteaua locala este 10.7.0.0/16. si interfata ce privesteinternetul este 195.131.31.240, care este asociata interfetei dc1Atunci fisierul rc.firewall.local va fi:
5.
#!/bin/sh
/sbin/ipfw -f flush /sbin/ipfw add 5000 divert natd ip from 10.7.0.0/16 to any out xmit dc1 /sbin/ipfw add 5100 divert natd ip from any to 195.131.31.240
activam acest fisier: sh /etc/rc.firewall.local
Pornim programul NATD 6.
/sbin/natd -n dc1
Din acest moment routerul ar trebui sa lucreze. Dar dupa prima reincarcare totul se vapierde de aceea trebuie sa automatizam procesul de incarcare a marsrutizatorului.
Cream fisierul /etc/rc.local si introducel urmatorul text 7.
/sbin/natd n dc1
/bin/sh /etc/rc.firewall.local
Restartam sistemul si ne convingem ca totul lucreaza. 8.
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
3 din 8 31.10.2006 22:24
Mail server Mail serverul consta din 2 componente. Componenta de transmitere a e-mailurilor de laun calculator la altul - protocolul SMTP si componenta de primire a scrisorilor de la serverspre client protocoalele POP3 si IMAP.
Setam SMTP
Agentul standard pentru SMTP este programul sendmail. Vom avea nevoie de urmatoarele fisiere de configurare:
1.
/etc/mail/access /etc/mail/aliases /etc/mail/local-host-names /etc/mail/mailer.conf /etc/mail/mailertable /etc/mail/sendmail.cf /etc/mail/virtusertable
Setam fisierul /etc/mail/access . Aici noi putem seta hosturile si IPurile carora le permitem sau nu sa se foloseasca de SMTPul nostru. Editam fisierul.
2.
cyberspammer.com 550 We don't accept mail from spammers FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK RELAY
Daca este setat OK sau RELAY atunci de pe aceste hosturi sau IPuri, sau inceputuri deIPuri se va putea de transmis scrisori. Daca este REJECT atunci nu se va permite detransmis.
In /etc/mail/aliases se poate de notat sinonimele la utilizatori si liste de utilizatori. Presupunem ca dorim ca utilizatorul X sa primeasca e-mailuri adresate si pe numele X si pe Y. Atunci vom nota:
3.
Y:X
Daca noi dorim ca adresa Y sa se refere la mai multi abonati atunci scriem:
Y: joe,eric,paul sau Y: [email protected], [email protected], [email protected] ce am editat acest fisier neaparat trebuie sa scriem:
Newaliases
Configurarea POP3 si IMAP
Pentru inceput vom instala un program care ne permite sa folosim protocoalele IMAP siPOP3. Sunt foarte multe programe de acest fel. Unul din ele pot fi gasite aicihttp://www.washington.edu/imap/ programul se numeste IMAPDftp://ftp.cac.washington.edu/imap/imap.tar.Z
Dezarhivam:
gunzip imap.tar.Z
tar xvf imap.tar
Trecem in directoriul IMAP si compilam:
make bsf
Trecem in directoria ../imapd si copiem fisierul imapd si pop3 in /usr/local/libexec
Intram in fisierul /etc/inetd.conf si stergem semnul # sin fata la IMAP4 si POP3
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
4 din 8 31.10.2006 22:24
In rindul POP3 in loc de pop3 schimbam in ipop3d, si la IMAP resprectiv tot schimbam
Restartam serviciul
ps ax | grep inetd'Tinem minte numarul din /usr/sbin/inetd wW
Si scriem kill HUP numarul.
Controlam, trebuie sa lucreze ambele protocoale
FTP server Ca ftp server poate fi folosit programul PROFTPD
Acest program poate fi gasit aici http://www.proftpd.org
De asemenea putem instala din porturi
cd /usr/ports/ftp/proftpd/
make all install
make clean
Pornim serviciul din fisierul /etc/inetd.conf
Adaugam:
ftp stream tcp nowait root /usr/local/libexec/proftpd proftpd
Restartam serviciul
inetd kill HUP
Configuram serviciul
Copiem fisierul de configurare
cp /usr/local/etc/proftpd.conf.default /usr/local/etc/proftpd.conf
Acum in fisierul /usr/local/etc/proftpd.conf putem configura toate optiunele dorite.
Explicatii adaugatoare sunt prezente aici http://www.proftpd.org/docs
Web server (Apache + PHP) Exista doua versiune absolut independente de Web servere Apache. Apache 1 si 2. Noivom examina cum se instaleaza apache 2 care poate fi gasit aici http://www.apache.org/
Se deyarhiveaza cu ajutorul comenzii tar zxvfApoi intram in directoriul creat
./configure
Make
Make install
Automatizam incarcarea serverului
In fisierul /etc/rc.local (daca nu exista acest fisier il creem noi) adaugam/usr/local/apache2/bin/apachectl start
Toate fisierele Apache inclusiv acele de configurare se afla in /usr/local/apache2
Urmatorul pas este instalarea PHP pe care il gasim aici www.php.net
Dezarhivam si configuram metoda de instalare prin:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
5 din 8 31.10.2006 22:24
make make install
Daca inca nu avem instalat MySQL stergem imbinarea --with-mysql
Instalarea MySQL va fi explicata in pasul urmator.
Schimbam configuratia Apache:
Intram in =/usr/local/apache2/conf/httpd.conf
Verificam daca exista
Pentru PHP4
LoadModule php4_module libexec/libphp4.so
Pentru PHP5
LoadModule php5_module libexec/libphp5.so
Adaugam sau scoatem # din fata la rindurile
AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps
Restartam apache
/usr/local/apache2/bin/apachectl restart
Instalarea MySQL Exista citeva pachete de distributie MySQL. Toate pot fi gasite pe www.mysql.com
Noi ne vom folosi de versiune necompilata a programului si o vom compilao singuri.
MySQL necompilat toate fi gasit aici:
ftp://ftp.chg.ru/.0/FreeBSD/ports/distfiles/mysql-4.0.16.tar.gz
Dezarhivam
tar -zxvf mysql-4.0.16.tar.gz -C /usr/local/src
Cream utilizatorul mysql si grupa pentru acest utilizator deoarece mysql va lucra sunpropriul utilizator
pw groupadd mysql pw useradd mysql -g mysql -d /usr/local/mysql -s /dev/null
Configuram instalarea
cd /usr/local/src/mysql-4.0.16 ./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql
Compilam
make make install
Instalam baza de date mysql
scripts/mysql_install_db
Atribuim fisierele compilate utiliyatorului mySQL
chown -R mysql /usr/local/mysql/var chgrp -R mysql /usr/local/mysql/var
In mapa /usr/local/etc/rc.d/ creem fisierul mysql.sh
Continutul acestui fisier poate fi gasit in internet, http://tutorial.ru/files/mysql/mysql.sh
sau copiati de aici:
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
6 din 8 31.10.2006 22:24
#!/bin/sh
basedir="/usr/local/mysql"
datadir="$basedir/var"pid_file="$basedir/var/mysqld.pid"bindir="$basedir/bin"PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/binexport PATH
mode=$1 # start or stopparse_arguments() {for arg docase "$arg" in--basedir=*) basedir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;--datadir=*) datadir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;--pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;esacdone}# Get arguments from the my.cnf file,# groups [mysqld] [mysql_server] and [mysql.server]if test -x ./bin/my_print_defaultsthenprint_defaults="./bin/my_print_defaults"elif test -x $bindir/my_print_defaultsthenprint_defaults="$bindir/my_print_defaults"elif test -x $bindir/mysql_print_defaultsthenprint_defaults="$bindir/mysql_print_defaults"else# Try to find basedir in /etc/my.cnfconf=/etc/my.cnfprint_defaults=if test -r $confthensubpat='^[^=]*basedir[^=]*=\(.*\)$'dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`for d in $dirsdod=`echo $d | sed -e 's/[ ]//g'`if test -x "$d/bin/my_print_defaults"thenprint_defaults="$d/bin/my_print_defaults"breakfiif test -x "$d/bin/mysql_print_defaults"thenprint_defaults="$d/bin/mysql_print_defaults"breakfidonefi
# Hope it's in the PATH ... but I doubt ittest -z "$print_defaults" && print_defaults="my_print_defaults"fi
## Test if someone changed datadir; In this case we should also read the# default arguments from this directory#
extra_args=""if test "$datadir" != "@localstatedir@"thenextra_args="-e $datadir/my.cnf"fi
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
7 din 8 31.10.2006 22:24
parse_arguments `$print_defaults $extra_args mysqld mysql_server mysql.server`# Safeguard (relative paths, core dumps..)cd $basedircase "$mode" in'start')# Start daemon
if test -x $bindir/mysqld_safethen# Give extra arguments to mysqld with the my.cnf file. This script may# be overwritten at next upgrade.$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file Make lock for RedHat / SuSEif test -w /var/lock/subsysthentouch /var/lock/subsys/mysqlfielseecho "Can't execute $bindir/mysqld_safe from dir $basedir"fi;;
'stop')# Stop daemon. We use a signal here to avoid having to know the# root password.if test -s "$pid_file"thenmysqld_pid=`cat $pid_file`echo "Killing mysqld with pid $mysqld_pid"kill $mysqld_pid# mysqld should remove the pid_file when it exits, so wait for it.
sleep 1while [ -s $pid_file -a "$flags" != aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]do[ -z "$flags" ] && echo "Wait for mysqld to exit\c" || echo ".\c"flags=a$flagssleep 1doneif [ -s $pid_file ]then echo " gave up waiting!"elif [ -n "$flags" ]then echo " done"fi# delete lock for RedHat / SuSEif test -f /var/lock/subsys/mysqlthenrm /var/lock/subsys/mysqlfielseecho "No mysqld pid file found. Looked for $pid_file."fi;;
'restart')# Stop the service and regardless of whether it was# running or not, start it again.$0 stop$0 start;;
*)# usageecho "Usage: $0 start|stop|restart"exit 1;;esac
Atribuim drepturi acestui fisier
-
eTraining http://e-training.iatp.md/seminars/FreeBSD/index.htm
8 din 8 31.10.2006 22:24
chmod 700 mysql.sh
Lansam MySQL
/usr/local/etc/rc.d/mysql.sh start
Setam parola pentru adminul mysql
/usr/local/mysql/bin/mysqladmin -u root password PAROLA
Facem citeva linkuri la alte programe care vor lucra cu Internetul
ln -s /usr/local/mysql/include/mysql /usr/include
ln -s /usr/local/mysql/lib/mysql /usr/lib
ln -s /usr/local/mysql/bin/mysql /usr/local/bin
ln -s /usr/local/mysql/bin/mysqldump /usr/local/bin
ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin
ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /usr/local/lib
Restartam calculatorul.