configurarea unui server freebsd

Upload: mitica434

Post on 03-Mar-2016

9 views

Category:

Documents


0 download

DESCRIPTION

Configurarea Unui Server FREEBSD

TRANSCRIPT

  • 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.