GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Das perfekte Setup - Debian Sarge (3.1)

Dies ist ein "Kopieren und Einfügen" Anleitung! Der einfachste Weg, diesem Tutorial zu folgen, besteht darin, einen Befehlszeilen-Client/SSH-Client (wie PuTTY für Windows) zu verwenden und die Befehle einfach zu kopieren und einzufügen (außer wenn Sie eigene Informationen wie IP-Adressen, Hostnamen, Passwörter usw. angeben müssen). ). Dies hilft, Tippfehler zu vermeiden.

Das perfekte Setup – Debian Sarge (3.1)

Version 1.9
Autor:Falko Timme

Dies ist eine detaillierte Beschreibung der Schritte, die unternommen werden müssen, um ein Debian einzurichten basierter Server (Debian Sarge alias Debian 3.1), der alle von ISPs und Hostern benötigten Dienste anbietet (Webserver (SSL-fähig), Mailserver (mit SMTP-AUTH und TLS!), DNSserver, FTP-Server, MySQL-Server, POP3/POP3s/ IMAP/IMAPs, Kontingent, Firewall usw.).

Ich werde die folgende Software verwenden:

  • Webserver:Apache 2.0.x
  • Mail-Server:Postfix (einfacher zu konfigurieren als sendmail; hat eine kürzere Historie von Sicherheitslücken als sendmail)
  • DNS-Server:BIND9
  • FTP-Server:proftpd
  • POP3/POP3s/IMAP/IMAPs:In diesem Beispiel können Sie zwischen dem traditionellen UNIX-Postfachformat wählen (wir verwenden dann ipopd/ uw-imapd) oder das Maildir-Format (in diesem Fall verwenden wir Courier-POP3/Courier-IMAP).
  • Webalizer für Website-Statistiken

Am Ende sollten Sie ein System haben, das zuverlässig funktioniert und bereit ist für das kostenlose Webhosting-Control-Panel ISPConfig (d.h. ISPConfig läuft darauf aus dem Feld).

Ich möchte zuerst sagen, dass dies nicht die einzige Möglichkeit ist, ein solches System einzurichten. Es gibt viele Wege, dieses Ziel zu erreichen, aber ich gehe diesen Weg. Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

Anforderungen

Um ein solches System zu installieren, benötigen Sie Folgendes:

  • Eine Debian SargeNetinstall CD (hier erhältlich:http://ftp.de.debian.org/debian-cd/3.1_r0a /i386/iso-cd/debian-31r0a-i386-netinst.iso)
  • eine Internetverbindung, da ich in diesem Dokument eine Netzwerkinstallation beschreiben werde

1 TheBase-System

Legen Sie Ihre SargeNetinstall-CD in Ihr System ein und booten Sie davon (geben Sie ein linux26 am Boot-Prompt, um einen 2.6er Kernel zu installieren). Die Installation beginnt, und zuerst müssen Sie Ihre Sprache auswählen:

Wählen Sie Ihr Land aus:

Wählen Sie ein Tastaturlayout:

Die Hardwareerkennung startet:

Geben Sie den Hostnamen ein. In diesem Beispiel heißt mein System server1 .beispiel.com , also gebe ich server1 ein :

Geben Sie Ihren Domainnamen ein. In diesem Beispiel ist dies example.com :

Jetzt müssen Sie Ihre Festplatte partitionieren. Ich werde eine große Partition erstellen (mit dem Einhängepunkt / ) und eine kleine Swappartition:

Nun wird das Basissystem installiert:

Ich installiere den GRUBboot-Loader zum Master Boot Record:

Entfernen Sie anschließend die Sarge Netinstall-CD von Ihrem System und starten Sie es neu:

Konfigurieren Sie Ihre Zeitzone:

Geben Sie ein Passwort für root ein :

Erstellen Sie einen zweiten Benutzer admin :

Wählen Sie Ihre Installationsmethode. Da ich eine Installation über das Netzwerk durchführen möchte, wähle ich http oder ftp .

Wählen Sie einen Mirror für Ihre Installation:

Geben Sie einen Proxy für die Installation ein (falls erforderlich) .Normalerweise können Sie dieses Feld leer lassen.

Unter Debiansoftware-Auswahl Ich wähle nur Mailserver . Alle anderen Dienste werde ich später manuell installieren.

Die Netzwerkinstallation beginnt:

Fahren Sie mit der Installation des libc-client ohne Maildir-Unterstützung fort. Wenn Sie Maildir verwenden möchten, können Sie Courier-POP3 installieren /Courier-IMAP (später erklärt):

Konfigurieren Sie Exim nicht da wir es durch Postfix ersetzen werden später:

Herzlichen Glückwunsch! Ihr Basissystem ist jetzt fertig:

Weiter zum nächsten Schritt...

2 Installation und Konfiguration des restlichen Systems

Konfigurieren Sie TheNetwork

Da das DebianSarge-Installationsprogramm unser System so konfiguriert hat, dass es seine Netzwerkeinstellungen über DHCP erhält, müssen wir das jetzt ändern, da ein Server eine statische IP-Adresse. Bearbeiten Sie /etc/network/interfaces und passen Sie es an Ihre Bedürfnisse an (in diesem Beispiel-Setup verwende ich die IP-Adresse 192.168.0.100 ):

# /etc/network/interfaces -- Konfigurationsdatei für ifup(8), ifdown(8)

# Die loopback interface
auto lo
iface lo inet loopback

# Die erste Netzwerkkarte - dieser Eintrag wurde während der Debian-Installation angelegt
# (network, broadcast und gateway sind optional)
auto eth0
iface eth0 inet statisch
Adresse 192.168.0.100
Netzmaske 255.255.255.0
Netzwerk 192.168.0.0
Broadcast 192.168.0.255
/> Gateway 192.168.0.1

Wenn Sie die IP-Adresse hinzufügen möchten 192.168.0.101 an die Schnittstelle eth0 Sie sollten die Datei wie folgt ändern:

# /etc/network/interfaces -- Konfigurationsdatei für ifup(8), ifdown(8)

# Die loopback interface
auto lo
iface lo inet loopback

# Die erste Netzwerkkarte - dieser Eintrag wurde während der Debian-Installation angelegt
# (network, broadcast und gateway sind optional)
auto eth0
iface eth0 inet statisch
Adresse 192.168.0.100
Netzmaske 255.255.255.0
Netzwerk 192.168.0.0
Broadcast 192.168.0.255
/> Gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet statisch
Adresse 192.168.0.101
Netzmaske 255.255.255.0
Netzwerk 192.168 .0.0
Broadcast 192.168.0.255
Gateway 192.168.0.1

Starten Sie dann Ihr Netzwerk neu:

/etc/init.d/networkingrestart

Bearbeiten Sie /etc/resolv.conf und füge einige Nameserver hinzu:

Suchserver
Nameserver 145.253.2.75
Nameserver 193.174.32.18
Nameserver 194.25.0.60

Bearbeiten Sie /etc/hosts und fügen Sie Ihre neuen IP-Adressen hinzu:

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


# Die folgenden Zeilen sind für IPv6-fähige Hosts wünschenswert
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Festlegen des Hostnamens

echo server1.example.com> /etc/hostname
/bin/hostname -F /etc/hostname

Software installieren/entfernen

Lassen Sie uns nun einige Software installieren, die wir später benötigen, und einige Pakete entfernen, die wir nicht benötigen:

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 --telnet entfernen
update-inetd - - Zeit entfernen
update-inetd --finger entfernen
update-inetd --gespräch entfernen
update-inetd --ntalk entfernen
update-inetd --ftp entfernen
update-inetd --remove discard
<- Ja

/etc/init.d/openbsd-inetd reload


Quote

apt-get install quota quotatool
<- Nein

Bearbeiten Sie /etc/fstab so aussehen (ich habe ,usrquota,grpquota hinzugefügt auf die Partition mit dem Einhängepunkt / ):

# /etc/fstab:Informationen zum statischen Dateisystem.
#
#
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1
/dev /sda5 none swap sw 0 0
/dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Führen Sie dann Folgendes aus:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug


DNS-Server

apt-getinstall bind9

Aus Sicherheitsgründen möchten wir BIND chroot ausführen, daher müssen wir die folgenden Schritte ausführen:

/etc/init.d/bind9 stop

Bearbeiten Sie die Datei /etc/default/bind9 so dass der Daemon als nicht privilegierter Benutzer 'bind ',gechrootet nach /var/lib/named .Ändern Sie die Zeile:OPTS=" -ubind " sodass es lautet:OPTS="-u bind-t /var/lib/named" :

OPTIONS="-u bind -t /var/lib/named"

Erstellen Sie die erforderlichen Verzeichnisse unter /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

Verschieben Sie dann das Konfigurationsverzeichnis von /etc bis /var/lib/named/etc :

mv /etc/bind /var/lib/named/etc

Erstellen Sie einen symbolischen Link zum neuen Konfigurationsverzeichnis vom alten Speicherort (um Probleme zu vermeiden, wenn Bindis in Zukunft aktualisiert wird):

ln -s /var/lib/named/etc/bind/etc/bind

Null- und Zufallsgeräte erstellen und Berechtigungen der Verzeichnisse korrigieren:

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

Wir müssen das Startskript ändern /etc/init.d/ sysklogd von sysklogd damit wir weiterhin wichtige Meldungen in den Systemprotokollen protokollieren können. Ändern Sie die Zeile: SYSLOGD="" sodass es lautet:SYSLOGD="-a/var/lib/named/dev/log" :

#! /bin/sh
# /etc/init.d/sysklogd:startet den Systemprotokoll-Daemon.

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

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

test -x $binpath || exit 0

# Optionen zum Starten/Neustarten der Daemons
# Verwenden Sie für Remote-UDP-Protokollierung 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()
{
# Keine PID-Datei, wahrscheinlich kein Daemon vorhanden
#
if [ ! -f $pidfile ]
then
return 1
fi

pid=`cat $pidfile`

# Keine PID, wahrscheinlich keine daemon vorhanden
#
if [ -z "$pid" ]
then
return 1
fi

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

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

# Kein Syslogd?
#
if [ "$cmd" !="$binpath" ]
then
return 1
fi

return 0
}

case "$1" in
start)
echo -n "Systemprotokoll-Daemon wird gestartet:syslogd"
create_xconsole
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo ". "
;;
stop)
echo -n "Systemprotokoll-Daemon stoppen: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 "Neustart Systemprotokoll-Daemon:syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
sleep 1
start-stop-daemon --start - -quiet --exec $binp ath -- $SYSLOGD
echo "."
;;
neu laden oder neu starten)
falls ausgeführt
dann
echo -n "System wird neu geladen Log-Daemon:syslogd"
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
else
echo -n "Neustart des Systemprotokolls Daemon:syslogd"
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
fi
echo "."
;;
*)
echo "Usage:/etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
exit 1
esac

Ausgang 0

Starten Sie den Logging-Daemon neu:

/etc/init.d/sysklogd restart

Starten Sie BIND und überprüfen Sie /var/log/syslog für Fehler:

/etc/init.d/bind9 start

MySQL

apt-getinstall mysql-server mysql-client libmysqlclient12-dev

mysqladmin -u root passwordyourrootsqlpassword

Wenn Sie netstat-tap ausführen Sie sollten jetzt eine Zeile wie diese sehen:

tcp 0 0 localhost.localdo:mysql *:* LISTEN 2449/mysqld

was bedeutet, dass auf 127.0.0.1 auf Port 3306 auf MySQL zugegriffen werden kann. Sie können zum nächsten Abschnitt (Postfix) gehen. Wenn Sie es nicht sehen Bearbeiten Sie in dieser Zeile /etc/mysql/my.cnf und kommentieren Sie skip-networking aus :

# skip-networking

Wenn Sie möchten, dass MySQL alle verfügbaren IP-Adressen überwacht, bearbeiten Sie /etc/mysql/my.cnf und kommentieren Sie bind-address =127.0.0.1 aus :

#bind-address =127.0.0.1

Wenn Sie /etc/mysql/my.cnf bearbeiten müssten Sie müssen MySQL neu starten:

/etc/init.d/mysql restart

Wenn MySQL auf allen Schnittstellen lauscht, müssen Sie jetzt auch ein MySQL-Passwort für server1.beispiel.com weil sonst jeder auf Ihre Datenbank zugreifen könnte:

mysqladmin -h server1.example.com -u root password yourrootsqlpassword


Postfix/POP3/IMAP

Um Postfix mit SMTP-AUTH und TLS sowie einen POP3-Server zu installieren, der auch POP3s (Port 995) und einen IMAP-Server unterstützt ist auch IMAP-fähig (Port 993) führen Sie die folgenden Schritte aus:

apt-get install postfixpostfix-tls libsasl2 sasl2-bin libsasl2-modules ipopd-ssl uw-imapd-ssl (1 Zeile!)

<- pop3 und pop3s
<- Nein
<- Internet-Site
<- NONE
<- server1.example.com
<- server1.example.com, localhost.example.com, localhost
<- Nein

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 =permission_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces =all'
echo 'pwcheck_method:saslauthd'>> /etc/postfix/sasl/smtpd.conf
echo 'mech_list:plain login'>> /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'

Die Datei /etc/postfix/main.cf sollte nun so aussehen:

# Siehe /usr/share/postfix/main.cf.dist für eine kommentierte, vollständigere Versionmtpd_banner =$myhostname ESMTP $mail_name (Debian/GNU )biff =no# Anhängen von .domain ist der Job des MUA.append_dot_mydomain =no# Entkommentieren Sie die nächste Zeile, um „verzögerte Mail“ zu generieren 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 =smtpd_sasl_local_domain =smtpd_optiond_sasl_sasl_able noanonymousbroken_sasl_auth_clients =yessmtpd_recipient_restrictions =permission_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_urache_timeout =3600stls_random/dedom.source =3600stls_random/dedom.source =

/etc/init.d/postfixrestart

Die Authentifizierung erfolgt durch saslauthd .Wir müssen ein paar Dinge ändern, damit es richtig funktioniert. Weil Postfix in /var/spool/postfix läuft wir müssen folgendes tun:

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. So richten Sie den Rsyslog-Server unter Debian 11 (Bullseye) ein

  2. So richten Sie den Rsyslog-Server unter Debian 11 ein

  3. Aktualisieren Sie den ISPConfig Perfect Server von Debian 10 auf Debian 11

  4. Das perfekte Setup - Debian Woody (3.0)

  5. So aktualisieren Sie einen Ubuntu 7.10-Server ("Das perfekte Setup" + ISPConfig) auf Ubuntu 8.04 LTS

Das perfekte Setup – Fedora Core 4

Das perfekte Setup – SUSE 9.2

Das perfekte Setup – SUSE 9.3

Ersteinrichtung des Servers mit Debian 11

So richten Sie den OpenLDAP-Server unter Debian 10 ein

Nginx + php-FPM + apc + MariaDB auf Debian 7 einrichten – Der perfekte LEMP-Server