VNC server

V tomto návode si nastavíme na našom systéme VNC server aby sme sa mohli prihlásiť do GUI na našom systéme.
Ako prvé si nainštalujem VNC server

[root@centos]# yum install tigervnc-server.x86_64

Teraz si nastavíme VNC server podľa naších potrieb

[root@centos ~]# cat /etc/sysconfig/vncservers 
VNCSERVERS="1:dubnik"
VNCSERVERARGS[1]="-geometry 800x600"

Takže sme nastavili ze vnc server 1 bude použíať user dubnik s daným rozlíšenim.
Teraz nastavíme našemu userovi vncpassword
A spustíme službu

[root@centos ~]# su - dubnik
[dubnik@centos ~]$ vncpasswd 
Password:[root@rhcsa ~]# /etc/init.d/vncserver restart
Shutting down VNC server: 1:dubnik                         [  OK  ]
Starting VNC server: 1:dubnik xauth:  creating new authority file /home/dubnik/.Xauthority

New 'centos:1 (dubnik)' desktop is centos:1

Starting applications specified in /home/dubnik/.vnc/xstartup
Log file is /home/dubnik/.vnc/centos:1.log

                                                           [  OK  ]

VNC server defaultne počúva na porte 5901 tak ak máme zapnuté iptables otvorime daný port.

[root@centos ~]# netstat -tapn | grep vnc
tcp        0      0 0.0.0.0:5901                0.0.0.0:*                   LISTEN      3595/Xvnc  

Mysqldumpslow – analýza slow query

Ako prvé povolíme logovanie slow queries, potom vytvorime slow query a nakoniec sa pozrieme do slow query logu.
Logovanie slow queries si zapneme pridaním nasledujúceho riadku do konfiguračného súboru mysql /etc/my.cnf

log-slow-queries = /var/log/mysql_slow_queries.log

a reštartneme mysql.

[root@db ~]#service mysqld restart

mysqldump utilita sa nachádza v inštalačnom balíku a slúži na analýzu a sumarizáciu ‘slow query logu’

-v verbose
-d debug
-s=WORD
what to sort by (t, at, l, al, r, ar etc)
-r reverse the sort order (largest last instead of first)
-t=NUMBER
just show the top n queries
-a don’t abstract all numbers to N and strings to ‘S’
-n=NUMBER
abstract numbers with at least n digits within names
-g=WORD
grep: only consider stmts that include this string
-h=WORD
hostname of db server for *-slow.log filename (can be wildcard)
-i=WORD
name of server instance (if using mysql.server startup script)
-l don’t subtract lock time from total time
eg.

Top desať najdlhších slow query.

[root@db ~]#mysqldumpslow -t 10 /var/log/mysql_slow_queries.log > /tmp/slow_query.txt

Top desať najčastejšie sa opakovaných slow query.

[root@db ~]#mysqldumpslow -a -s c -t 10 /var/log/mysql_slow_queries.log > /tmp/top_ten_slow_querys.txt

BIND – dns server

DNS je systém na správu doménových mien počítačov a ich IP adries. Umožňuje preklad
doménového mena na IP adresu (priamy preklad) a opačne (reverzný preklad). Pre fungovanie
Internetu je DNS kľúčovou záležitosťou, ktorú zabezpečujú programy na obsluhu DNS – DNS servery.

DNS servery rozdeľujeme na dva základné druhy:

Primárny DNS server je server, ktorý obsahuje a obsluhuje údaje o doméne a je pre
danú doménu autoritatívny. Odpovede primárneho DNS servera sú považované za
vždy aktuálne a platné. Odkazy na DNS servery domény sú uložené v nadradenom DNS serveri.

Sekundárny DNS server je server, ktorý pomocou pravidelného kopírovania údajov o doménach
z primárneho DNS servera vytvára záložný DNS server pre danú doménu. Úlohou primárneho
DNS servera je tiež upozorniť svoje sekundárne DNS servery pri zmene záznamov v DNS.

Instalacia

Ako prvý si nainštalujeme a nakonfigurujeme primárny server .Veľmi dobrým mechanizmom
zabezpečovania služieb, ktoré počúvajú na sieťových portoch, je vytváranie vyhradených
adresárov a spúšťanie procesov v týchto adresároch. Pre daného démona to znamená,
že po jeho spustení sa uzavrie vo vybranom adresári pomocou systémového volania "chroot()" a
tento adresár nijakým spôsobom nemôže opustiť.

10.0.2.253 ns1 (master)
10.0.2.252 ns2 (slave)

Nainštalujeme si potrebné rpm balíčky.

#yum install bind bind-chroot bind-libs bind-utils caching-nameserver
#chkconfig named on
#service named start



Vytvorime subor rndc.key, ktory umožňuje ovládanie procesu “named” z určených
počítačov s nainštalovaným programom “rndc”. Na ovládanie je potrebný autentifikačný kľúč,
ktorý sa predefinuje práve v tomto konfiguračnom súbore, z ktorého ho bude čítať program “rndc”.

#cd /var/named/chroot/etc
#rndc-confgen > rndc.key
#chown root:named rndc.key



Súbor rndc.key si upravíme tak, aby obsahoval iba tieto riadky.

key "rndckey" {
algorithm hmac-md5;
secret "SGsvd1dF+mv+yU4ywCCkkg==";
};




Konfugrácia named.conf
Tento súbor je najdôležitejší, určuje umiestnenie zónových súborov (s údajmi o vašej doméne a adresách na tejto doméne) a mnoho parametrov pre beh démona.

#less /var/named/chroot/etc/named.conf
// rndckey (copy-paste z rndc.key) 
          key "rndckey" {
       	  algorithm hmac-md5;
      	  secret "SGsvd1dF+mv+yU4ywCCkkg==";
          };

// nas server ma ip adresu 10.0.2.254 a obsluhujeme siet 10.0.2.0/24
           inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndckey"; };
           inet 10.0.2.254 allow { 10.0.2.0/24; } keys { "rndckey"; };
           };

// adresar v ktorom sa nachadzaju konfiguracne subory
// vsetky relativne cesty maju zaklad v tomto adresary
//pid-file je subor s cislom prcesu (sluzi pre ovladanie procesu)
            options {
            directory "/var/named";
             pid-file "/var/run/named/named.pid";

//allow-recursion definuje list ip adries ktore maju povolene dotazovat na
//rekurzivne zaznamy.Ak odpoved na dotaz uz existuje v cache bude vratena
//bez ohladu na nastavenie Ak nie je specifikovana vsetci hostovia maju 
//povolene dotazovat na  rekurzivna zaznamy 
	     recursion yes;
	     allow-recursion {
             127.0.0.1;
             10.0.2.0/24;
              };

//ak provider umoznuje pouzit svoje dns servery na obsluhu poziadaviek
//ktore, nevieme obsluzit, samozrejme mozeme pouzit opendnska
            forwarders {
             8.8.8.8;
             8.8.4.4;
             };

//ip adresy na ktorych pocuva nas dns server       
	      listen-on {
              127.0.0.1;
              10.0.2.253;
                }

//zabranime hostom vidiet aku verziu bindu pozuivame
               version "REFUSED";

//nastavime kto sa moze dopytovat na nas dns server       
	        allow-query {
                127.0.0.1;
                10.0.2.0.0/24;
                };
                };

               server 10.0.2.253 {
               keys { rndckey; };
               };

//adresa korenoveho suboru 
              zone "." IN {
              type hint;
              file "named.ca";
               };

//nastavime nasu prvu zonu, allow-update zabezpecuje autamaticky refresh
//udajov na sekundarny dns server, allow-trasnfer umoznuje transfer udajov.
              zone "virtual.net" IN {
              type master;
              file "namedb/virtual.test";
              allow-update { 10.0.2.252; };
              allow-transfer { 10.0.2.252; };
              };

//reverzny zaznam pre nasu zonu
              zone "2.0.10.in-addr.arpa" IN {
	       type master;
	       file "namedb/2.0.10.zone";
	       allow-update { 10.0.2.252; };
        allow-transfer { 10.0.2.252; };
	      };



Konfigurácia zónoveho súboru

#less /var/named/chroot/var/named/namedb/db.virtual.net
$TTL    3600
@       IN      SOA     ns1.virtual.test. root.ns1.test.  (
                                1999012101      ; Serial
                                360             ; Refresh
                                300             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
@       IN      NS     ns1.virtual.test.

; Machine Names
www                 IN      CNAME  virtual.test.
virtual.test.      IN      A      10.0.2.100
lba1.virtual.test  IN      A      10.0.2.11
lba2.virtual.test  IN      A      10.0.2.12

$ORIGIN určuje doménu, pre ktorú platia záznamy nasledujúce po tejto direktíve.
Je to vždy doménová adresa ukončená znakom “.”.
$TTL určuje platnosť záznamu v sekundách. Určuje sa rovnaká hodnota,
ako hodnota pre parameter “refresh” v definícii domény “IN SOA”.

Pre záznamy nasledujúce po definícii domény platí: ak nie je meno ukončené znakom “.”,
dopĺňa sa zaň automaticky doména, v ktorej sa nachádza. (Táto doména je určená v SOA
zázname alebo direktívou “$ORIGIN”.) To umožňuje lepší prehľad v konfiguračnom súbore,
pretože neopakujete stále meno domény.
doména: meno domény, ktorú definujete
ttl: TTL pre doménu (nepovinný parameter)
trieda: pre Internet vždy “IN”
nameserver: DNS server, na ktorom je uložený zónový súbor pre túto doménu
admin: adresa správcu DNS. Znak “@” sa nahrádza znakom “.”!!!
serial: sériové číslo. Pri každej zmene zónového súboru musíte zvýšiť toto číslo,
inak sa zmeny neprejavia v sekundárnych DNS serveroch!!! Podľa konvencie sa toto
číslo udáva v tvare “YYYYMMDDxx”, kde YYYY predstavuje rok, MM mesiac, DD
deň poslednej zmeny a xx je číslo zmeny, ak treba uskutočniť viacero zmien počas jedného dňa. Všimnite si, že takto je vždy každé ďalšie číslo automaticky väčšie ako predchádzajúce.
refresh: určuje interval, v akom si má sekundárny DNSserver obnovovať údaje
z primárneho DNS servera (odporúča sa: 3600).
retry: určuje interval, v ktorom sa má sekundárny nameserver pokúšať opätovne
spojiť s primárnym DNS serverom po tom, ako pri spojení nastala chyba (odporúča sa: 600)
expire: určuje platnosť údajov na sekundárnom DNS serveri v prípade, že sa mu nepodarí
aktualizovať údaje z primárneho DNS servera (odporuca sa :3600000)
minimum: minimálna hodnota TTL (odporúča sa: 86400)

Konfiguracia reverzneho zonozveho suboru

#less /var/named/chroot/var/named/namedb/db.2.0.10 
$TTL    3600
@                             IN      SOA     ns1.virtual.test. root.ns1.test.  (
                                1999012100      ; Serial
                                3600            ; Refresh
                                300             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
@                          IN      NS      ns1.virtual.test.

; Machine names
11      IN      PTR     lba1.virtual.test.
12      IN      PTR     lba2.virtual.test.
100     IN      PTR     www.virtual.test.



Konfigurácia sekunádrneho servera
Bind si nainštalujeme do chrootnutého prostredia rovnako ako primárny a upravime
hlavný config bindu.

#less /var/named/chroot/etc/named.conf
options {
        directory "/var/named";
        pid-file "/var/run/named/named.pid";
        
       recursion yes;
                allow-recursion {
                127.0.0.1;
                10.0.2.0/24;
                };

        forwarders {
                8.8.8.8;
                8.8.4.4;
        };

        listen-on {
                127.0.0.1;
                10.0.2.252;
        };

        version "REFUSED";
 
        allow-query {
                127.0.0.1;
                10.0.2.0/24;
                0.0.0.0/0;
                };
        };

         server 10.0.2.252 {
            keys { rndckey; };

         zone "." IN {
          type hint;
          file "named.ca";
        };

         zone "virtual.test" IN {
         type slave;
         file "namedb/db.virtual.test";
         masters {10.0.2.253;};
         };


        zone "2.0.10.in-addr.arpa" IN {
         type slave;
         file "namedb/db.2.0.10";
         masters {10.0.2.253;};
        };



Tak a teraz máme nakonfigurovaný sekundárny dns server, ktorý su bude utomaticky aktualizovať
zónove zaznamy z primarneho servera.Ak pridáme záznam na primárny server nesmieme
zabudnúť zvýšiť serial number a reštartnúť bind, aby sa nahrali nové zónove záznamy.
Na sekundárny server sa budú kopírovať automaticky z primarneho.
Kontrola zónovych súborov

#named-checkzone  named-checkzone virtual.test /var/named/chroot/var/named/namedb/db.virtual.test 
zone virtual.test/IN: loaded serial 2010041502
OK


#named-checkzone  2.0.10.in-addr.arpa /var/named/chroot/var/named/namedb/db.2.0.10 
zone 2.0.10.in-addr.arpa/IN: loaded serial 2010041503
OK

Lighttpd

www.lighttpd.net
Bezpečnosť, rýchlosť, spolahlivosť, flexibilita — toto všetko splňa lighttpd (lighty), ktorý rapidne
zmenil efektívnosť webservera.Je postavený a optimalizovaný pre vysoko výkonne prostredie.
S nízkymi pamäťovými nárokmi v porovnaní s ostatnými web serverami, efektívnym využivanim cpu a so zlepšenými funkciami (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting a
mnoho ďalších) lighttpd je perfektné riešenie pre každý server trpiaci vysokou záťažou.

Inštalácia a konfigurácia lighttpd
Ako prvé si nainštalujeme lightyho.Keďže sa nenachádza v oficiálnych repozitároch buď si priamo
stiahaneme rpm balíček, alebo si skompilujeme vlastný.Ja dávam prednosť kompilácii a ak aj vy
tu je návod na kompilaciu rpm balíčka.Ak už máme rpm balíček lightyho jednoducho nainštalujeme.

#rpm -ivh lighttpd-1.4.26



Vytvoríme potrebné adresáre pre lightyho.

#mkdir /etc/lighttpd
#mkdir /var/log/lighttpd
#mkdir /var/run/lighttpd
#mkdir /var/www/html

Skopírujeme konfiguračný súbor lightyho do /etc/lighttpd

#cp /home/dubnik/src/rpm/BUILD/lighttpd-1.4.26/doc/lighttpd.conf /etc/lighttpd/



Lighttpd sa defaultne spúšťa pod rootom čo je nežiadúce preto si vytvoríme
užívatela lighty patriaceho do skupiny lighty pod ktorým budeme lighttpd spúšťať.

#groupadd lighty
# useradd -g lighty -d /home/lighty -s /bin/false lighty



Zmeníme práva adresárov aby mal užívatel lighty právo s nimi pracovať.

# chown -R lighty:lighty /var/run/lighttpd/
# chown -R lighty:lighty /var/log/lighttpd/
# chown -R lighty:lighty /etc/lighttpd/



Upravíme hlavný konfig aby sa lighttpd spúšťal pod užívatelom lighty

#vi /etc/lighttpd/lighttpd.conf
...
## change uid to  (default: don't care)
server.username            = "lighty"

## change uid to  (default: don't care)
server.groupname           = "lighty"
...



Na koniec si vytvorime súbor /etc/init.d/lighttpd aby sme mohli lighttpd spúšťať ako service.

#vi /etc/init.d/lighttpd
#!/bin/sh
#
# lighttpd     Startup script for the lighttpd server
#
# chkconfig: - 85 15
# description: Lighttpd web server
#
# processname: lighttpd
# config: /etc/lighttpd/lighttpd.conf
# config: /etc/sysconfig/lighttpd
# pidfile: /var/run/lighttpd.pid
#
# Source function library
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/lighttpd ]; then
        . /etc/sysconfig/lighttpd
fi
if [ -z "$LIGHTTPD_CONF_PATH" ]; then
        LIGHTTPD_CONF_PATH="/etc/lighttpd/lighttpd.conf"
fi
prog="lighttpd"
lighttpd="/usr/sbin/lighttpd"
RETVAL=0
start() {
        echo -n $"Starting $prog: "
        daemon $lighttpd -f $LIGHTTPD_CONF_PATH
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
        return $RETVAL
}
stop() {
        echo -n $"Stopping $prog: "
        killproc $lighttpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        return $RETVAL
}
reload() {
        echo -n $"Reloading $prog: "
        killproc $lighttpd -HUP
        RETVAL=$?
        echo
        return $RETVAL
}
case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart)
                stop
                start
                ;;
        condrestart)
                if [ -f /var/lock/subsys/$prog ]; then
                        stop
                        start
                fi
                ;;
        reload)
                reload;;
        status)
                status $lighttpd
                RETVAL=$?
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
                RETVAL=1
esac
exit $RETVAL



Spustíme lighyho, pridáme do patričných runlevelov a skontrolujeme či beží pod užívatelom lighty.

#service lighttpd start


#chkconfig lighttpd on


#ps -fe | grep lighttpd
lighty   31284     1  0 16:29 ?        00:00:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf


Lighttpd Streaming

Pre streaming flashových súborov lighty používa modul mod_flv.
Ak chcem aby lighty tento mod využíval upravíme hlavný konfig.

#vi /etc/lighttpd/lighttpd.conf
server.modules = ( 
  ...,
  "mod_secdownload", ## optional
  "mod_flv_streaming",
  ...
)
flv-streaming.extensions = ( ".flv" )


Lighttpd s php fastcgi

Ak chcem lighttpd používať s php potrebujeme fast-cgi. Musíme si nainštalovat balíček fcgi,
ktorý sa tiež nenachádza v oficiálných repozitároch takže su budeme musieť skompilovať php
s podporou fcgi.Podporu otestujeme prikazom

#php-cgi -v
PHP 5.0.4 (cgi-fcgi) (built: Nov  8 2005 08:25:54)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies

Ak máme rovnaký výpis povolime fcgi v hlavnom konfigu odkomentovaním príslušných riadkov.

#vi /etc/lighttpd/lighttpd.conf
...
server.modules              = (

                                         "mod_fastcgi")
...
#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/var/run/lighttpd/php-fastcgi.socket",
                                   "bin-path" => "/usr/local/bin/php-cgi"
                                 )
                               )
                            )



Reštartneme lightyho a otestujeme či nám ide php pomocou funkcie phpinfo().

pure-ftpd


www.pure-ftpd.org

Najprv nastavíme aby sa nám pure-ftp spúšťalo s konfiguračným súborom.

#cp /etc/pure-ftpd/pure-ftpd.conf /etc/
#/usr/sbin/pure-config.pl /usr/local/sbin/
#chmod 755
#usr/local/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf cp



Povolíme a vytvoríme virtuálnych používatelov.
Vytvoríme ftp skupinu:

#groupadd ftpgroup
#useradd -g ftpgroup -d /dev/null -s /etc ftpuser



Pridáme usera:

#pure-pw useradd dubnik -u ftpuser -d /home/ftpuser/dubnik



Ak by sme chceli spoločný adresár pre viac uživatelov vytvoríme spoločný adresár napr. /data
Základne príkazy pre správu užívatelov:


#pure-pw userdel dubnik
#pure-pw passwd dubnik
#pure-pw show dubnik



Vytvoríme subor s heslami:

#pure-pw mkdb



Povolíme spúšťanie pure-ftpd s konfiguračným súborom:
V subore /etc/pure-ftpd.conf odkomentujeme


PureDB /etc/pureftpd.pdb



Ak chceme povoliť prístup lokálnych userov na ftp:


UnixAuthentication yes



Ak chceme používať banner a message vztvoríme subory:

$vi /home/ftpusers/duben/.banner
$vi /home/ftpusers/duben/data/.message