Immagine CBIT

Linux - Configurazione di un server

Valid XHTML 1.0 Transitional Valid CSS!

Lo scopo di questa sezione è quello di configurare un server linux con la distribuzione DEBIAN 3.1.I servizi che vogliami installare sono:

Elenco di comandi.

In grassetto quelli già testati e descritti in questa guida.


APACHE - httpd

Dobbiamo installare il demone httpd

# apt-get install apache

Installazione di PHP4 con Debian - Apache 1.3

# apt-get install libapache-mod-php4


APT installerà automaticamente i moduli PHP 4 per Apache 1.3, e risolverà le dipendenze.

Riavviare Apache

# /etc/init.d/apache stop
# /etc/init.d/apache start

 

Riga che deve essere presente su modules.conf

LoadModule php4_module /usr/lib/apache/1.3/libphp4.so

 

Se non c’è provare ad inserirla con:


/usr/sbin/apache-modconf apache enable php4_module


se non va farlo a mano.

Riavvia apache:


# apachectl restart

Inizio


Installare PHP con MySQL


# apt-get install php4-mysql


Saranno autometicamente aggiunte le righe appropriate in php.ini (/etc/php4/apache/php.ini)

Queste linee attivano MySQL in PHP


extension=mysql.so


stop/start Apache per attivare i moduli.

Inizio


Problemi comuni.

Se si vede il codice PHP invece del risultato vuol dire che probabilmente APT non ha aggiunto le righe /etc/apache/conf.d/php4 nella configurazione di Apache 1.3 . Verificatre che le righe sono presenti nel file /etc/apache/httpd.conf poi riavviate Apache.

Questa linea ttiva PHP 4 in Apache
# Include /etc/apache/conf.d/

Inizio


MYSQL

Installazione:
Apt-get install mysql-server mysql-client

 mysql> GRANT ALL PRIVILEGES ON *.* TO 'lucia'@'192.168.0.1' IDENTIFIED BY 'lucia' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'claudio'@'%' IDENTIFIED BY 'claudio' WITH GRANT OPTION;

Inizio


Installare PHP con MySQL


# apt-get install php4-mysql


Saranno autometicamente aggiunte le righe appropriate in php.ini (/etc/php4/apache/php.ini)

Queste linee attivano MySQL in PHP


extension=mysql.so


stop/start Apache per attivare i moduli.

Inizio


Installare PHP con MySQL e GD (librerie grafiche)

 
# apt-get install php4-mysql php4-gd

will automatically add the appropriate lines to your different php.ini (/etc/php4/apache/php.ini)

These lines activate MySQL in PHP
extension=mysql.so
extension=gd.so
stop/start Apache per attivare i moduli.

Per la connessione da remoto a mysql nel file /etc/mysql/my.conf va commentata la riga bind-address = 127.0.0.1

Inizio


EGroupWare

Ho trovato utile installarlo senza APT.
Scompattare il file


# tar - eGroupWare-1.0.0.009.tar.gz


Poi spostare la cartella nella directory di apache (/var/www/)
mv /home/claudio/egroupware/ /var/www/egroupware/
Cambiare il proprietario della cartella in www-data


#chown –R www-data /var/www/egroupware/

Servono I moduli gd e mysql per PHP4 (vedi sopra)

Poi connettersi via browser e dovremmo vedere la pagina di EGroupWare, scegliere la lingua e “controlla installazione”. Il resto è semplice.
 

Inizio


Webmin

Permette di gestire e configurare il server Linux via Web su connessione protetta.
Installazione:
apt-get install webmin webmin-core (dovrebbe bastare solo webmin-core)
Webmin è il programma, Webmin-core sono i moduli base. Si possono aggiungere anche moduli di terze parti, vedi il sito: http://webadminmodules.sourceforge.net/?page=Servers
Dopo l’installazione aprire il file miniserv.conf cercare la linea allow= 127.0.0.1 e commentarla (#), in questo modo ci si può connettere da qualsiasi host con  root/password del sistema.
Per cambiare la password di accesso a webmin:
# ./changepass.pl /etc/webmin root newpassword

Inizio


SSH

#apt-get install ssh
Le chiavi vengono generate automaticamente, da windows usare PuTTY con SSH porta 22 per la connessione protetta.

Inizio


Installare samba

Apt-get install samba.
Poi chiede la configurazione.
Smbpasswd –a nomeutente per fare di un utente del sistema un utente di samba.

PDC (Primary Domain Control) – In questo modo i Client Windows vengono autenticati dal server e quindi è spostabile PROFILO DOCUMENTI POSTA possono essere posti sulla home directory.
File smb.conf  

etc/samba/smb.conf

[global]
    workgroup = TECH-NET
    netbios name = serverone
    server string = Samba PDC - Versione %v
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192

    os level = 64
    preferred master = yes
    local master = yes
    domain master = yes

    security = user
    encrypt passwords = yes
    domain logons = yes
    hosts allow = 127.0.0.1 192.168.0.0/255.255.255.0
    add machine script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u

    log file = /var/log/samba/log.%m
    log level = 2
    max log size = 50

    logon home = \\%L\%U\.profile
    logon path = \\%L\profiles\%U
    logon drive = W:
    logon script = netlogon.bat
   
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *Enter* new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all* authentication*tokens*updated*successfully*
[homes]
    comment = Home Directory per ogni User
    browseable = no
    writeable = yes
[profiles]
    path = /home/profiles
    writeable = yes
    browseable = no
    create mask = 0600
    directory mask = 0700
[netlogon]
    path = /home/netlogon
    read only = yes
    write list = @admin
    browseable = no

Per creare una directory in cui tutti possono operare:

chmod 777 /home/scambi

Inizio


Varie

Find, per trovare un file

Installare ee (editor avanzato):

Dmesg

Caricare Moduli x Hardware

Assegnare indirizzo ip: /etc/network/interface

Apt-cdrom

Spostare Home

 

 

Find, per trovare un file

# find / -name hosts.allow – print    # cerca da root  hosts.allow e ne stampa il percorso

Installare ee (editor avanzato):

apt-get install ee
Rimuovere ee
apt-get remove ee

dmesg | more Visualizza i messaggi del Kernel

Caricare Moduli x Hardware

Dopo installazione, per caricare manualmente un modulo non rilevato.
Es. la scheda ethernet 3c509b
# modprobe 3c509
Assegnare un indirizzo alla schede:
# ifconfig eth0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255

Rendere attivi ad ogni boot le configurazioni per i moduli

Dentro il file /etc/modules inserire la riga con il nome del modulo [3c509]
# /etc/modules: kernel modules to load at boot time.
3c59x # la nostra 3com

Inizio


Assegnare indirizzo ip: /etc/network/interface

Editiamo il file "/etc/network/interface" ed inseriamo questi valori:
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
brodcast 192.168.1.255
gateway 192.168.1.1

Per avviare e arrestare l'interfaccia di rete utilizzare questi comandi:
ifdown -a (ferma le interfacce di rete)
ifup - a (avvia le interfacce di rete)
Possiamo anche utilizzare il nome dell'interfaccia. Supponendo che i client abbiano una sola scheda di rete in comando sarà: ifdown eth0
Per verificare la correttezza dei parametri utilizziamo con il comando: "ifconfig".

Su etc/hosts.allow specificare l’host che si possono connettere.

Inizio


Apt-cdrom aggiorna i repository presenti su Cd-Rom.

L'utilizzo del comando è semplicissima: permette due sole azioni:

add

per l'aggiunta di un cd/dvd alla lista di quelli disponibili

ident

per identificare il cd/dvd inserito

apt-cdrom add (seguire le istruzioni a video)

Inizio


Spostare la directory /HOME su una partizione .

 

Ecco i passi da fare per spostare la directory /home:

eseguire logout di tutti gli utenti tranne root

# mv /home /home.old

# mkdir /home - creazione nuova partizione che conterra` /home: /dev/<new>

# mount -t ext3 /dev/<new> /home

(nota: /dev/<new> va formattata

mkfs.ext3 /dev/<new>

# cp -a /home.old/* /home

- modifica di /etc/fstab per eseguire il mount di /dev/<new> su /home

- quando si desidera...

# rm -rf /home.old

#df (per verificare lo spazio occupato)

 


telnetd ( sul server a cui mi devo connettere )

Se manca telnetd
apt-get install telnetd
Installazione del demone telnet in.telnetd
Va installato il server “telnetd” contenuto in telnet-ssl
in.telnetd [<opzioni>]
È il demone del servizio necessario per ricevere connessioni Telnet.
È gestito dal supervisore inetd e filtrato da tcpd. (oppure xinetd vedi sotto)
Nell'esempio seguente, viene mostrata la riga di /etc/inetd.conf in cui si dichiara il suo possibile utilizzo.
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
Se è presente il file /etc/issue.net, viene utilizzato da telnetd per visualizzare un messaggio introduttivo, non appena si instaura un collegamento.

Riavviare inetd digitando:

# /etc/init.d/inetd restart

Login Telnet come ROOT
Il file /etc/securetty elenca il nome delle tty dove root ha il permesso di loggarsi. Un nome del device tty senza il prefisso /dev/ deve essere specificato su ciascuna riga. Se il file non esiste, root può loggarsi su qualsiasi tty.

Nel nostro caso per loggarsi come ROOT via Telnet inserire pts/0, pts/1...

Questa operazione introduce problemi di sicurezza, sarebbe meglio limitare il numero di console da cui root può accedere.

Configurazione

E’ possibile configurare il pacchetto software spostando le procedure server in un’altra directory e copiare al loro posto i programmi wrapper. Si consiglia però di configurare modificando il file /etc/inetd.conf: volendo controllare il servizio telnet, supponendo di aver installato il TCP Wrapper in /usr/local/sbin, modificare la seguente linea

 

telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd

come segue

 

telnet stream tcp nowait root /usr/local/sbin/tcpd in.telnetd

Effettuare la stessa modifica per tutti i servizi che si intendono controllare.
Far ripartire il processo inetd con il comando "kill -HUP pid_syslogd".

 

Dentro il file /etc/modules inserire la riga con il nome del modulo [3c509]
# /etc/modules: kernel modules to load at boot time.
3c59x # la nostra 3com

Inizio


Xinetd

Apt-get install xinetd
File di configurazione generale xinetd.conf
Directory con I file dei servizi xinetd.d
xinetd fornisce uno script per fare la conversione in automatico dalla vecchia configurazione di inetd alla nuova versione di file: questo script è xconv.pl, presente nella stessa directory di xinetd (altre distribuzioni, come Mandrake, forniscono un altro script, con risultati medesimi, chiamato inetdconvert). Si usano come segue:


/usr/sbin/xconv.pl < /etc/inetd.conf > /tmp/xinetd.conf
/usr/sbin/inetdconvert -c

Xinetd.conf

# This file generated by xconv.pl, included with the xinetd
# package.  xconv.pl was written by Rob Braun (bbraun@synack.net)
#
# The file is merely a translation of your inetd.conf file into
# the equivalent in xinetd.conf syntax.  xinetd has many
# features that may not be taken advantage of with this translation.
# Please refer to the xinetd.conf man page for more information
# on how to properly configure xinetd.

 

# The defaults section sets some information for all services
defaults
{
       #The maximum number of requests a particular service may handle
       # at once.
       instances   = 25

       # The type of logging.  This logs to a file that is specified.
       # Another option is: SYSLOG syslog_facility [syslog_level]
       log_type    = FILE /var/log/servicelog

       # What to log when the connection succeeds.
       # PID logs the pid of the server processing the request.
       # HOST logs the remote host's ip address.
       # USERID logs the remote user (using RFC 1413)
       # EXIT logs the exit status of the server.
       # DURATION logs the duration of the session.
       log_on_success = HOST PID

       # What to log when the connection fails.  Same options as above
       log_on_failure = HOST

       # The maximum number of connections a specific IP address can
       # have to a specific service. 
       per_source  = 5
}

service ident
{
       socket_type = stream
       protocol    = tcp
       wait        = yes
       user        = identd
       server      = /usr/sbin/identd
       server_args = identd
}
includedir /etc/xinetd.d

/etc/xinetd.d

Directory di /etc/xinetd.d  à Daytime, echo, time, cvspserver, telnet, ftp, chargen, ftpa, cvs

Esempio: telnet
service telnet
{
       socket_type = stream
       protocol    = tcp
       wait        = no
       user        = telnetd
       group       = telnetd
       server      = /usr/sbin/in.telnetd
}

Esempio: ftp
service ftp
{
  socket_type = stream
  wait = no
  nice = 10
  user = root
  server = /usr/etc/in.ftpd
  server_args = -l
  instances = 4
  log_on_success += DURATION HOST USERID
}


Esempio: cvs
service cvspserver
{
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        id                      = cvspserver
        passenv                 = PATH
        log_type                = FILE /var/log/cvspserver
        port                    = 2401
        log_on_failure          += USERID
        server                  = /usr/bin/cvs
        server_args             = -f --allow-root=/usr/local/cvsroot pserver
        log_on_success          += USERID DURATION
        log_on_failure          += HOST USERID
        disable                 = no
}

 

Inizio


Risoluzione dei nomi:

=== file: /etc/resolv.conf ===

# cambiate dominio e DNS (se avete impostato un DNS locale, sostituite
# a libero.it il vostro dominio, e a nameserver il valore 127.0.0.1)
domain libero.it
nameserver 195.210.91.1
nameserver 195.210.91.2

Inizio


Server FTP

Installare proftpd, e poi si accede alla cartella home di ogni utente.

apt-get install proftpd

Inizio


Filtraggio degli accessi

TCP Wrapper, di default, è configurato per consultare due file: /etc/hosts.allow e /etc/hosts.deny, il primo contenente regole per consentire l’accesso ai servizi il secondo per negarlo.
I due file possono essere costituiti da zero, una o più righe con il seguente formato:
                daemon_list : client_list [ : shell_command ] dove  
daemon_list è una lista di uno o più nomi di processi, separati da uno spazio o una virgola;
client_list è una lista di uno o più nomi o indirizzi di host, separati da uno spazio o una virgola;
shell_commanddai due è un comando di shell (è opzionale, viene eseguito se la condizione impostata parametri precedenti è valida).
Se, ad esempio, il file /etc/hosts.allow è composto dalle seguenti righe
in.ftpd in.telnetd : 131.114.200.
in.fingerd : 131.114.200.2
e il file /etc/hosts.deny dalla seguente riga
ALL : ALL
l’accesso ai servizi ftp e telnet è consentito solo dagli host con indirizzo 131.114.200.x, che corrispondono a tutte le macchine del dominio iei.pi.cnr.it, l’accesso al servizio finger è possibile solo dall’host con indirizzo 131.114.200.2. Ogni altro accesso è negato.
In figura 2 sono elencati alcuni esempi di client_list.


Figura 2: alcuni esempi di client_list:

131.114.200.7 galileo.iei.pi.cnr.it

 

# due macchine

.iei.pi.cnr.it

 

# le macchine del dominio iei.pi.cnr.it

131.114.

 

# le macchine con indirizzo compreso tra
# 131.114.0.0 e 131.114.255.255

131.114.200.0/255.255.254.0

 

# 255.255.254.0 rappresenta la netmask
# quindi tutte le macchine
# con indirizzocompreso
# tra 131.114.200.0 e 131.114.201.255

ALL EXCEPT 131.114.216.

 

# tutte le macchine eccetto quelle di
# indirizzo compreso
# tra 131.114.216.0 e 131.114.216.255

In assenza di regole o dei file /etc/hosts.allow e /etc/hosts.deny l’accesso è sempre consentito. TCP Wrapper consulta prima il file /etc/hosts.allow poi /etc/hosts.deny,
non appena verifica una regola valida la consultazione termina.
E’ possibile regolare l’accesso ai servizi con il solo file /etc/hosts.allow, utilizzando le parole chiave ALLOW e DENY. Se impostiamo le seguenti regole
ALL : 131.114.200. : ALLOW
ALL : ALL : DENY

l’accesso ai servizi è possibile solo dalle macchine con indirizzo 131.114.200.x
Nell’esempio successivo viene negato l’accesso dalle macchine appartenenti al dominio bad.domain e accettato l’accesso da tutte le altre macchine:
ALL : bad.domain : DENY
ALL : ALL : ALLOW

Inizio


Fetchmail

Configurare FETCH MAIL scarica la posta dal POP3
Installarlo con
Apt-get install fetcmail
Creare il file /root/.fetchmailrc

# questo e' un commento # file: /home/local_user/.fetchmailrc
set postmaster "root"
set bouncemail
set no spambounce
set properties ""
poll mail.server.tld with proto POP3 user 'mp' there with password 'prova' is 'local_user' here keep
poll mail2.server.tld with proto AUTO user 'mp2' there with password 'prova2' is 'local_user' here

La prima riga che inizia per "poll" permette di scaricare la posta da un server chiamato mail.server.tld, con userid "mp" e password "prova" usando il protocollo POP3.
La parola chiave "keep" permette di mantenere la posta sul server, ovvero la posta viene scaricata ma non viene cancellata dal server.
La seconda riga che inizia per "poll" permette di scaricare la posta da un server chiamato mail2.server.tld, con userid "mp2" e password "prova2" selezionando in automatico il protocollo.
I messaggi scaricati da entrambi i server saranno consegnati all'utente locate 'local_user'.

chmod 710 /root/.fetchmailrc

avviando fetchmail da prompt scarica la posta

Procediamo ora con un test di scaricamento della posta aprendo una shell e dando il comando "fetchmail -v" o più semplicemente "fetchmail" (naturalmente senza virgolette). La posta scaricata va in /var/spool/mail/nomeutente

Un esempio di .fetchmailrc potrebbe essere questo:

poll popmail.libero.it with proto POP3 timeout 60
user miousername password vostrapassword
chmod 0710 .fetchmailrc

Inizio


POSTFIX PRENDE EMAIL SOLO IN LOCALE SE:

(default: all)
The network interface addresses that this mail system receives mail on. Specify "all" to receive mail on all network interfaces (default), and "loopback-only" to receive mail on loopback network interfaces only (Postfix 2.2 and later). The parameter also controls delivery of mail to user@[ip.address].

Come installare il modem:

Entrare come ROOT e digitare:
chmod o+rw /dev/ttyS*
questo comando da agli utenti accesso al dispositivo di dial-out.
Poi per stabilire il link.
ln -s /dev/ttyS0 /dev/modem
Per effettuare la connessione  Pppconfig

Inizio


Time Server ntpd

 


cbitHomepage | Mappa del Sito| Contatti | ©2005 Cbit.it information tecnologyCounters