GNU/Linux >> Linux Esercitazione >  >> Debian

La configurazione perfetta - Debian Sarge (3.1)

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)

# Il interfaccia di loopback
auto lo
iface lo inet loopback

# La prima scheda di rete - questa voce è stata creata durante l'installazione di Debian
# (rete, broadcast e gateway sono opzionale)
auto eth0
iface eth0 inet statico
indirizzo 192.168.0.100
netmask 255.255.255.0
rete 192.168.0.0
broadcast 192.168.0.255
/> gateway 192.168.0.1

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)

# Il interfaccia di loopback
auto lo
iface lo inet loopback

# La prima scheda di rete - questa voce è stata creata durante l'installazione di Debian
# (rete, broadcast e gateway sono opzionale)
auto eth0
iface eth0 inet statico
indirizzo 192.168.0.100
netmask 255.255.255.0
rete 192.168.0.0
broadcast 192.168.0.255
/> gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet statico
indirizzo 192.168.0.101
netmask 255.255.255.0
rete 192.168 .0.0
trasmissione 192.168.0.255
gateway 192.168.0.1

Quindi riavvia la tua rete:

/etc/init.d/networkingrestart

Modifica /etc/resolv.conf e aggiungi alcuni nameserver:

server di ricerca
nameserver 145.253.2.75
nameserver 193.174.32.18
nameserver 194.25.0.60

Modifica /etc/hosts e aggiungi i tuoi nuovi indirizzi IP:

127.0.0.1 localhost.localdomain localhost server1
192.168.0.100 server1.example.com server1
192.168.0.101 virtual-ip1 .example.com virtual-ip1


# Le seguenti righe sono auspicabili per host compatibili con IPv6
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouter
ff02::3 ip6-allhosts

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.
#
#
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1
/dev /sda5 nessuno swap sw 0 0
/dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

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
# /etc/init.d/sysklogd:avvia il demone del registro di sistema.

PATH=/bin:/usr/bin:/sbin:/usr/sbin

pidfile=/var/run/syslogd.pid
binpath=/sbin/syslogd

test -x $binpath || exit 0

# Opzioni per avviare/riavviare i demoni
# Per la registrazione UDP remota usa SYSLOGD="-r"
#
SYSLOGD="-a /var /lib/named/dev/log"

create_xconsole()
{
if [ ! -e /dev/xconsole]; then
mknod -m 640 /dev/xconsole p
else
chmod 0640 /dev/xconsole
fi
chown root:adm /dev/xconsole
}

running()
{
# Nessun file pid, probabilmente nessun demone presente
#
if [ ! -f $pidfile ]
quindi
return 1
fi

pid=`cat $pidfile`

# Nessun pid, probabilmente no demone presente
#
if [ -z "$pid" ]
then
return 1
fi

if [ ! -d /proc/$pid ]
quindi
return 1
fi

cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`

# Nessun syslogd?
#
if [ "$cmd" !="$binpath" ]
quindi
ritorno 1
fi

ritorno 0
}

caso "$1" in
inizio)
echo -n "Avvio del demone del registro di sistema:syslogd"
create_xconsole
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo ". "
;;
stop)
echo -n "Arresto del demone del registro di sistema:syslogd"
start-stop-daemon --stop --quiet --exec $binpath -- pidfile $pidfile
echo "."
;;
reload|force-reload)
echo -n "Reloading system log daemon:syslogd"
start-stop- daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
echo "."
;;
restart)
echo -n "Riavvio demone del registro di sistema:syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
sleep 1
start-stop-daemon --start - -quiet --exec $binp ath -- $SYSLOGD
echo "."
;;
reload-or-restart)
se in esecuzione
then
echo -n "Ricaricamento del sistema log daemon:syslogd"
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
else
echo -n "Riavvio del registro di sistema daemon:syslogd"
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
fi
echo "."
;;
*)
echo "Utilizzo:/etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
exit 1
esac

esci 0

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.


Debian
  1. Come configurare il server Rsyslog su Debian 11 (Bullseye)

  2. Come configurare il server Rsyslog su Debian 11

  3. Aggiorna ISPConfig Perfect Server da Debian 10 a Debian 11

  4. La configurazione perfetta - Debian Woody (3.0)

  5. Come aggiornare un server Ubuntu 7.10 ("The Perfect Setup" + ISPConfig) a Ubuntu 8.04 LTS

La configurazione perfetta - Fedora Core 4

La configurazione perfetta - SUSE 9.2

La configurazione perfetta - SUSE 9.3

Configurazione iniziale del server con Debian 11

Come configurare il server OpenLDAP su Debian 10

Configura Nginx + php-FPM + apc + MariaDB su Debian 7 – Il server LEMP perfetto