- Web Server: Apache 1.3.x
- Php4
- Mail Server: Postfix
- DNS Server: BIND9 o altro
- FTP Server: proftpd (you could also use vsftpd)
- POP3/IMAP: Maildir format (in this case we will use Courier-POP3/Courier-IMAP).
- MySQL per Account di posta e server SQL
- Fax Server Hylafax
- CVS cvsd
- WebMin
- Groupware eGroupware
- LDAP openldap (per rubrica condivisa)
- Time Server Locale (ntpd)
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
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.
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/
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;
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.
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
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.
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
SSH
#apt-get install ssh
Le chiavi vengono generate automaticamente, da windows usare PuTTY con SSH porta 22 per la connessione protetta.
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
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
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.
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)
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
}
Risoluzione dei nomi:
=== file: /etc/resolv.conf ===
# cambiate dominio e DNS (se avete impostato un DNS locale, sostituite |
Inizio
Server FTP
Installare proftpd, e poi si accede alla cartella home di ogni utente.
apt-get install proftpd
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.200.0/255.255.254.0 |
|
# 255.255.254.0 rappresenta la netmask |
ALL EXCEPT 131.114.216. |
|
# tutte le macchine eccetto quelle di |
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
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
Time Server ntpd
