Questo è un "copia e incolla" Come fare! Il modo più semplice per seguire questo tutorial è utilizzare un client a riga di comando/client SSH (come PuTTY per Windows) e copiare e incollare semplicemente i comandi (tranne dove devi fornire informazioni personali come indirizzi IP, nomi host, password,... ). Questo aiuta a evitare errori di battitura.
The PerfectSetup - Debian Sarge (3.1)
Versione 1.9
Autore:Falko Timme
Questa è una descrizione dettagliata dei passaggi da eseguire per configurare una Debian server basato (Debian Sarge alias Debian 3.1) che offre tutti i servizi necessari a ISP e hoster (server web (con capacità SSL), server di posta (con SMTP-AUTH e TLS!), server DNS, server FTP, server MySQL, POP3/POP3/ IMAP/IMAP, quota, firewall, ecc.).
Utilizzerò il seguente software:
- Server Web:Apache 2.0.x
- Server di posta:Postfix (più facile da configurare di sendmail; ha una cronologia di falle di sicurezza più breve rispetto a sendmail)
- Server DNS:BIND9
- Server FTP:proftpd
- POP3/POP3s/IMAP/IMAPs:in questo esempio puoi scegliere tra il tradizionale formato della casella di posta UNIX (usiamo quindi ipopd/ uw-imapd) o il formato Maildir (in questo caso useremo Courier-POP3/Courier-IMAP).
- Webalizer per le statistiche dei siti web
Alla fine dovresti avere un sistema che funzioni in modo affidabile ed è pronto per il pannello di controllo di webhosting gratuito ISPConfig (ovvero, ISPConfig viene eseguito su di esso dal casella).
Voglio dire innanzitutto che questo non è l'unico modo per configurare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo in cui prendo. Non garantisco che questo funzionerà per te!
Requisiti
Per installare un tale sistema avrai bisogno di quanto segue:
- Un CD di installazione Debian SargeNet (disponibile qui:http://ftp.de.debian.org/debian-cd/3.1_r0a /i386/iso-cd/debian-31r0a-i386-netinst.iso)
- una connessione Internet poiché descriverò un'installazione di rete in questo documento
1 TheBase System
Inserisci il CD SargeNetinstall nel sistema e avvialo (inserisci linux26 al prompt di avvio per installare un kernel 2.6). L'installazione si avvia e per prima cosa devi scegliere la tua lingua:
Seleziona il tuo paese:
Scegli una disposizione della tastiera:
Inizia il rilevamento dell'hardware:
Inserisci il nome host.In questo esempio, il mio sistema si chiama server1 .example.com , quindi inserisco server1 :
Inserisci il tuo nome di dominio. In questo esempio, questo è example.com :
Ora devi partizionare il tuo disco rigido. Creerò una grande partizione (con il punto di montaggio / ) e una piccola partizione di scambio:
Ora il sistema di base è in fase di installazione:
Installo il GRUBboot loader al record di avvio principale:
In seguito, rimuovere il CD di Sarge Netinstall dal sistema e riavviarlo:
Configura il tuo fuso orario:
Inserisci una password per root :
Crea un secondo utente admin :
Scegli il metodo di installazione. Dal momento che voglio fare un'installazione in rete, seleziono http o ftp .
Seleziona uno specchio per la tua installazione:
Inserisci un proxy per l'installazione (se necessario) .Normalmente puoi lasciare vuoto questo campo.
Sotto Selezione del software Debian Scelgo solo Mailserver . Installerò tutti gli altri servizi manualmente in seguito.
Inizia l'installazione di rete:
Continua l'installazione di libc-client senza il supporto di Maildir. Se vuoi usare Maildir puoi installare Courier-POP3 /Corriere-IMAP (spiegato più avanti):
Non configurare Exim poiché lo sostituiremo con Postfix dopo:
Congratulazioni! Il tuo sistema di base è finito ora:
Al passaggio successivo...
2 Installazione e configurazione del resto del sistema
Configura TheNetwork
Poiché il programma di installazione DebianSarge ha configurato il nostro sistema per ottenere le sue impostazioni di rete tramite DHCP, dobbiamo cambiarlo ora perché un server dovrebbe avere un Indirizzo IP.Modifica /etc/network/interfaces e adattarlo alle tue esigenze (in questa configurazione di esempio userò l'indirizzo IP 192.168.0.100 ):
# /etc/network/interfaces -- file di configurazione per ifup(8), ifdown(8) |
Se vuoi aggiungere l'indirizzo IP 192.168.0.101 all'interfaccia eth0 dovresti cambiare il file in modo che assomigli a questo:
# /etc/network/interfaces -- file di configurazione per ifup(8), ifdown(8) |
Quindi riavvia la tua rete:
/etc/init.d/networkingrestart
Modifica /etc/resolv.conf e aggiungi alcuni nameserver:
server di ricerca |
Modifica /etc/hosts e aggiungi i tuoi nuovi indirizzi IP:
127.0.0.1 localhost.localdomain localhost server1 |
Impostazione del nome host
echo server1.example.com> /etc/hostname
/bin/hostname -F /etc/hostname
Installa/Rimuovi alcuni software
Ora installiamo del software di cui abbiamo bisogno in seguito e rimuoviamo alcuni pacchetti che non ci servono:
apt-get install wget bzip2rdate fetchmail libdb3++-dev unzip zip ncftp xlispstat libarchive-zip-perl zlib1g-devlibpopt-dev nmap openssl lynx fileutils g++
apt-get remove lpr nfs-commonportmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig
update-rc.d -f exim remove
update-inetd --removedaytime
update-inetd --remove telnet
update-inetd - -remove time
update-inetd --remove finger
update-inetd --remove talk
update-inetd --remove ntalk
update-inetd --remove ftp
update-inetd --remove scartare
<- Sì
/etc/init.d/openbsd-inetd reload
Quota
apt-get install quotatool
<- No
Modifica /etc/fstab per assomigliare a questo (ho aggiunto ,usrquota,grpquota alla partizione con il punto di montaggio / ):
# /etc/fstab:informazioni statiche sul file system. |
Quindi esegui:
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
Server DNS
apt-getinstall bind9
Per motivi di sicurezza, vogliamo eseguire BIND in chroot, quindi dobbiamo eseguire i seguenti passaggi:
/etc/init.d/bind9 stop
Modifica il file /etc/default/bind9 in modo che il demone venga eseguito come utente non privilegiato 'bind ', chrooted su /var/lib/named .Modifica la riga:OPTS=" -ubind " in modo che si legga OPTS="-u bind-t /var/lib/named" :
OPTIONS="-u bind -t /var/lib/named" |
Crea le directory necessarie sotto /var/lib :
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
Quindi sposta la directory di configurazione da /etc a /var/lib/named/etc :
mv /etc/bind /var/lib/named/etc
Crea un collegamento simbolico alla nuova directory di configurazione dalla vecchia posizione (per evitare problemi quando bind viene aggiornato in futuro):
ln -s /var/lib/named/etc/bind/etc/bind
Crea dispositivi nulli e casuali e correggi i permessi delle directory:
mknod /var/lib/named/dev/nullc 1 3
mknod /var/lib/named/dev /random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/ *
chown -R bind:bind /var/lib/named/etc/bind
Dobbiamo modificare lo script di avvio /etc/init.d/ log di sistema di sysklogd in modo che possiamo ancora ottenere messaggi importanti registrati nei registri di sistema. Modifica la riga: SYSLOGD="" in modo che si legga:SYSLOGD="-a/var/lib/named/dev/log" :
#! /bin/sh |
Riavvia il loggingdaemon:
/etc/init.d/sysklogd restart
Avvia BIND e controlla /var/log/syslog per eventuali errori:
/etc/init.d/bind9 start
MySQL
apt-getinstall mysql-server mysql-client libmysqlclient12-dev
mysqladmin -u root passwordyourrootsqlpassword
Quando esegui netstat-tap ora dovresti vedere una linea come questa:
tcp 0 0 localhost.localdo:mysql *:* ASCOLTA 2449/mysqld |
il che significa che MySQL è accessibile su 127.0.0.1 sulla porta 3306. Puoi andare alla sezione successiva (Postfix). Se non vedi questa riga, modifica /etc/mysql/my.cnf e commenta skip-networking :
# skip-networking |
Se vuoi che MySQL sia in ascolto su tutti gli indirizzi IP disponibili, modifica /etc/mysql/mio.cnf e commenta bind-address =127.0.0.1 :
#bind-address =127.0.0.1 |
Se dovessi modificare /etc/mysql/my.cnf devi riavviare MySQL:
/etc/init.d/mysql restart
Se MySQL è in ascolto su tutte le interfacce, ora devi anche impostare una password MySQL per server1.example.com perché altrimenti chiunque potrebbe accedere al tuo database:
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
Postfix/POP3/IMAP
Per installare Postfix con SMTP-AUTH e TLS oltre a un server POP3 che esegue anche POP3 (porta 995) e un server IMAP che è anche in grado di supportare IMAP (porta 993) attenersi alla seguente procedura:
apt-get install postfixpostfix-tls libsasl2 sasl2-bin libsasl2-modules ipopd-ssl uw-imapd-ssl (1 riga!)
<- pop3 e pop3s
<- No
<- Sito Internet
<- NESSUNO
<- server1.example.com
<- server1.example.com, localhost.example.com, localhost
<- No
postconf -e 'smtpd_sasl_local_domain='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl_security_options =noanonymous'
postconf -e 'broken_sasl_auth_clients =yes'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces =all'
echo 'pwcheck_method:saslauthd'>> /etc/postfix/sasl/smtpd.conf
echo 'mech_list:login semplice'>> /etc/postfix/sasl/smtpd.conf
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa - des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days3650
postconf -e 'smtpd_tls_auth_only=no'
postconf -e 'smtp_use_tls =yes'
postconf - e 'smtpd_use_tls =yes'
postconf -e 'smtp_tls_note_starttls_offer =yes'
postconf -e 'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file =/ etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile =/etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e 'smtpd_tls_session_cache_timeout =3600s'
postconf -e 'tls_random_source =dev:/dev/urandom'
Il file /etc/postfix/main.cf ora dovrebbe apparire così:
# Vedi /usr/share/postfix/main.cf.dist per una versione commentata e più completamtpd_banner =$myhostname ESMTP $mail_name (Debian/GNU )biff =no# appendendo .domain è il lavoro del MUA.append_dot_mydomain =no# Decommenta la riga successiva per generare "posta ritardata" warnings#delay_warning_time =4hmyhostname =server1.example.comalias_maps =hash:/etc/aliasesalias_database =hash:/etc /aliasesmyorigin =/etc/mailnamemydestination =server1.example.com, localhost.example.com, localhostrelayhost =mynetworks =127.0.0.0/8mailbox_command =procmail -a "$EXTENSION"mailbox_size_limit =0recipient_delimiter =+inet_interfaces =allsmtpd_sasl_local_domain =smtpdsd_sasl_opportuna_sicurezza noanonymousbroken_sasl_auth_clients =yessmtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destinationsmtpd_tls_auth_only =nosmtp_use_tls =yessmtpd_use_tls =yessmtp_tls_note_starttls_offer =yessmtpd_tls_key_file =/etc/ postfix/ssl/smtpd.keysmtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crtsmtpd_tls_CAfile =/etc/postfix/ssl/cacert.pemsmtpd_tls_loglevel =1smtpd_tls_received_header =yessmtpd_tls_session_cache_timeout =3600stls_ndovura_source => devura/sorgente casuale => |
/etc/init.d/postfixrestart
L'autenticazione sarà eseguita da saslauthd .Dobbiamo cambiare alcune cose per farlo funzionare correttamente. Perché Postfix è radicato in /var/spool/postfix dobbiamo fare quanto segue:
mkdir -p /var/spool/postfix/var/run/saslauthd
Now we have toedit /etc/default/saslauthd in order to activate saslauthd .Remove # in front of START=yes and add the line PARAMS="-m /var/spool/postfix/var/run/saslauthd -r" :
# This needs to be uncommented before saslauthd will be run automaticallySTART=yesPARAMS="-m /var/spool/postfix/var/run/saslauthd -r"# You must specify the authentication mechanisms you wish to use.# This defaults to "pam" for PAM support, but may also include# "shadow" or "sasldb", like this:# MECHANISMS="pam shadow"MECHANISMS="pam" |
We must also edit /etc/init.d/saslauthd and change the location of saslauthd's PID file. Change the value of PIDFILE to /var/spool/postfix/var/run/${NAME}/saslauthd.pid :
PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid" |
Now start saslauthd :
/etc/init.d/saslauthd start
Next we create the file /etc/c-client.cf with the following contents:
I accept the riskset disable-plaintext 0 |
and restart inetd :
/etc/init.d/openbsd-inetd restart
If we don't do this, then our POP3/IMAP logins will fail.
To see if SMTP-AUTHand TLS work properly now run the following command:
telnetlocalhost 25
After you haveestablished the connection to your postfix mail server type
ehlolocalhost
If you see thelines
250-STARTTLS
and
250-AUTH
everything is fine.
Type
quit
to return to thesystem's shell.
Courier-IMAP/Courier-POP3
If you want touse a POP3/IMAP daemon that has Maildir support (if you do not want to use thetraditional Unix mailbox format) you can install Courier-IMAP/Courier-IMAP-SSL(for IMAPs on port 993) and Courier-POP3/Courier-POP3-SSL (for POP3s on port995). Otherwise you can proceed with the Apache configuration.
apt-get install courier-imapcourier-imap-ssl courier-pop courier-pop-ssl
<- No
ipopd and UW-IMAPwill then be replaced.
Then configurePostfix to deliver emails to a user's Maildir*:
postconf -e 'home_mailbox=Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart
*Please note:Youdo not have to do this if you intend to use ISPConfigon your system as ISPConfig does the necessary configuration using procmailrecipes. But please go sure to enable Maildir under Management -> Settings ->EMail in the ISPConfig web interface.