GNU/Linux >> Znalost Linux >  >> Debian

Perfektní nastavení – Debian Sarge (3.1)

Toto je "kopírovat a vložit" Jak na to! Nejjednodušší způsob, jak postupovat podle tohoto návodu, je použít klienta příkazového řádku/SSH klienta (jako je PuTTY pro Windows) a jednoduše zkopírovat a vložit příkazy (kromě případů, kdy musíte poskytnout vlastní informace, jako jsou IP adresy, názvy hostitelů, hesla,... ). To pomáhá vyhnout se překlepům.

The PerfectSetup – Debian Sarge (3.1)

Verze 1.9
Autor:Falko Timme

Toto je podrobný popis kroků, které je třeba podniknout k nastavení Debianu založený server (Debian Sarge alias Debian 3.1), který nabízí všechny služby potřebné pro ISP a hostitele (webový server (s podporou SSL), poštovní server (s SMTP-AUTH a TLS!), DNS server, FTP server, MySQL server, POP3/POP3s/ IMAP/IMAP, kvóta, brána firewall atd.).

Budu používat následující software:

  • Webový server:Apache 2.0.x
  • Poštovní server:Postfix (snáze se konfiguruje než sendmail; má kratší historii bezpečnostních děr než sendmail)
  • Server DNS:BIND9
  • FTP Server:proftpd
  • POP3/POP3s/IMAP/IMAPs:v tomto příkladu si můžete vybrat mezi tradičním formátem poštovní schránky UNIX (my pak používáme ipopd/ uw-imapd) nebo formátu Maildir (v tomto případě použijemeCourier-POP3/Courier-IMAP).
  • Statistiky webových stránek Webalizer

Nakonec byste měli mít systém, který funguje spolehlivě a je připraven na bezplatný webhostingovládací panel ISPConfig (tj. ISPConfig na něm běží mimo box).

Chci nejprve říci, že to není jediný způsob, jak takový systém nastavit. Existuje mnoho způsobů, jak tohoto cíle dosáhnout, ale já volím tento způsob. Nezaručuji, že to pro vás bude fungovat!

Požadavky

K instalaci takového systému budete potřebovat následující:

  • Instalační CD Debian SargeNet (k dispozici zde:http://ftp.de.debian.org/debian-cd/3.1_r0a /i386/iso-cd/debian-31r0a-i386-netinst.iso)
  • připojení k internetu, protože v tomto dokumentu popíšu síťovou instalaci

1 TheBase System

Vložte instalační CD SargeNet do systému a spusťte z něj (zadejte linux26 při zaváděcí výzvě k instalaci jádra 2.6). Spustí se instalace a nejprve si musíte vybrat jazyk:

Vyberte svou zemi:

Vyberte rozložení klávesnice:

Spustí se detekce hardwaru:

Zadejte název hostitele. V tomto příkladu se můj systém nazývá server1 .example.com ,takže zadám server1 :

Zadejte název své domény. V tomto příkladu je to example.com :

Nyní musíte rozdělit pevný disk na oddíly. Vytvořím jeden velký oddíl (s bodem připojení / ) a trochu swappartition:

Nyní se instaluje základní systém:

Instaluji nakladač GRUBboot do hlavního spouštěcího záznamu:

Poté vyjměte instalační CD Sarge Netinstall ze systému a restartujte jej:

Konfigurace časového pásma:

Zadejte heslo pro root :

Vytvořte administrátora druhého uživatele :

Vyberte způsob instalace. Protože chci provést instalaci přes síť, vyberu http nebo ftp .

Vyberte zrcadlo pro instalaci:

Zadejte proxy pro instalaci (je-li to nutné) . Normálně můžete toto pole nechat prázdné.

V části Výběr softwaru Debian Vybírám pouze Mailserver . Všechny ostatní služby nainstaluji později ručně.

Zahájí se síťová instalace:

Pokračujte v instalaci libc-client bez podpory Maildir. Pokud chcete používat Maildir, můžete si nainstalovat Courier-POP3 /Courier-IMAP (vysvětleno později):

Nekonfigurovat Exim protože jej nahradíme Postfix lateron:

Blahopřejeme! Váš základní systém je nyní dokončen:

Přejděte k dalšímu kroku...

2 Instalace a konfigurace zbytku systému

Konfigurovat TheNetwork

Protože instalační program DebianSarge nakonfiguroval náš systém tak, aby získal nastavení sítě přes DHCP, musíme to nyní změnit, protože server by měl mít statický IP adresa.Upravit /etc/network/interfaces a upravte ji podle svých potřeb (v tomto příkladu nastavení použiji IP adresu 192.168.0.100 ):

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Pokud chcete přidat IP adresu 192.168.0.101 do rozhraní eth0 měli byste změnit soubor, aby vypadal takto:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Potom restartujte síť:

/etc/init.d/networkingrestart

Upravit /etc/resolv.conf a přidejte nějaké jmenné servery:

search server
nameserver 145.253.2.75
nameserver 193.174.32.18
nameserver 194.25.0.60

Upravit /etc/hosts a přidejte své nové IP adresy:

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


# The following lines are desirable for IPv6 capable hosts
::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

Nastavení názvu hostitele

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

Instalovat/odebrat software

Nyní si nainstalujme software, který později potřebujeme, a odebereme některé balíčky, které nepotřebujeme:

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 discard
<- Ano

/etc/init.d/openbsd-inetd reload


Kvóta

apt-get instalační kvóta nástroje
<- Ne

Upravit /etc/fstab vypadat takto (přidal jsem ,usrquota,grpquota do oddílu s bodem připojení / ):

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
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

Potom spusťte:

dotkněte se /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug


Server DNS

apt-getinstall bind9

Z bezpečnostních důvodů chceme spouštět BIND chrooted, takže musíme provést následující kroky:

/etc/init.d/bind9 stop

Upravit soubor /etc/default/bind9 takže démon poběží jako neprivilegovaný uživatel 'bind písmo> ',chrooted to /var/lib/named .Upravte řádek:OPTS=" -ubind " tak, aby znělo OPTS="-u bind-t /var/lib/named" :

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

Vytvořte potřebné adresáře pod /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

Potom přesuňte konfigurační adresář z /etc do /var/lib/named/etc :

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

Vytvořte symbolický odkaz na nový konfigurační adresář ze starého umístění (abyste předešli problémům při budoucí aktualizaci bindis):

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

Nastavte null a randomdevices a opravte oprávnění adresářů:

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

Potřebujeme upravit spouštěcí skript /etc/init.d/ sysklogd z sysklogd abychom mohli stále dostávat důležité zprávy zaznamenávané do systémových protokolů. Upravte řádek: SYSLOGD="" tak, že zní:SYSLOGD="-a/var/lib/named/dev/log" :

#! /bin/sh
# /etc/init.d/sysklogd: start the system log daemon.

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

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

test -x $binpath || exit 0

# Options for start/restart the daemons
# For remote UDP logging use 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()
{
# No pidfile, probably no daemon present
#
if [ ! -f $pidfile ]
then
return 1
fi

pid=`cat $pidfile`

# No pid, probably no daemon present
#
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`

# No syslogd?
#
if [ "$cmd" != "$binpath" ]
then
return 1
fi

return 0
}

case "$1" in
start)
echo -n "Starting system log daemon: syslogd"
create_xconsole
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo "."
;;
stop)
echo -n "Stopping system log daemon: 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 "Restarting system log daemon: syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
sleep 1
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo "."
;;
reload-or-restart)
if running
then
echo -n "Reloading system log daemon: syslogd"
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
else
echo -n "Restarting system log 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

exit 0

Restartujte loggingdaemon:

/etc/init.d/sysklogd restart

Spusťte BIND a zkontrolujte /var/log/syslog za případné chyby:

/etc/init.d/bind9 start

MySQL

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

mysqladmin -u root passwordyourrootsqlpassword

Když spustíte netstat-tap nyní byste měli vidět řádek jako tento:

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

což znamená, že MySQL je přístupné na 127.0.0.1 na portu 3306. Můžete přejít k další části (Postfix). Pokud nevidíte tento řádek upravte /etc/mysql/my.cnf a komentovat skip-networking :

# skip-networking

Pokud chcete, aby MySQL naslouchalo na všech dostupných IP adresách, upravte /etc/mysql/my.cnf a zakomentujte bind-address =127.0.0.1 :

#bind-address            = 127.0.0.1

Pokud jste museli upravit /etc/mysql/my.cnf musíte restartovat MySQL:

/etc/init.d/mysql restart

Pokud MySQL naslouchá na všech rozhraních, musíte nyní také nastavit heslo MySQL pro server1.example.com protože jinak by kdokoli mohl získat přístup k vaší databázi:

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


Postfix/POP3/IMAP

Chcete-li nainstalovat Postfix s SMTP-AUTH a TLS a také server POP3, který také provádí protokoly POP3 (port 995) a server IMAP, který je také schopen IMAP (port 993) proveďte následující kroky:

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

<- pop3 a pop3s
<- Ne
<- Internetové stránky
<- ŽÁDNÉ
<- server1.example.com
<- server1.example.com, localhost.example.com, localhost
<- Ne

postconf -e 'smtpd_sasl_local_domain='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl =noanonymous'
postconf -e 'broken_sasl_auth_clients =ano'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf>met_eface 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'_tpd_tm 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'

Soubor /etc/postfix/main.cf by nyní měl vypadat takto:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

/etc/init.d/postfixrestart

Ověření provede saslauthd .Musíme změnit pár věcí, aby to fungovalo správně. Protože Postfix je zakořeněn v /var/spool/postfix musíme udělat následující:

mkdir -p /var/spool/postfix/var/run/saslauthd

Nyní musíme upravit /etc/default/saslauthd za účelem aktivace saslauthd .Odstranit # před START=ano a přidejte řádek PARAMS="-m /var/spool/postfix/var/run/saslauthd -r" :

# This needs to be uncommented before saslauthd will be run automatically
START=yes

PARAMS="-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"

Musíme také upravit /etc/init.d/saslauthd a změňte umístění saslauthdova souboru PID. Změňte hodnotu PIDFILE na /var/spool/postfix/var/run/${NAME}/saslauthd.pid :

PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"

Nyní začněte saslauthd :

/etc/init.d/saslauthd start

Dále vytvoříme soubor /etc/c-client.cf s následujícím obsahem:

I accept the risk
set disable-plaintext 0

a restartujte inetd :

/etc/init.d/openbsd-inetd restart

Pokud to neuděláme, naše přihlášení POP3/IMAP selže.

Chcete-li zjistit, zda SMTP-AUTHand TLS fungují správně, spusťte následující příkaz:

telnetlocalhost 25

Po navázání připojení k poštovnímu serveru typu Postfix

ehlolocalhost

Pokud vidíte čáry

250 STARTTLS

a

250-AUTH

vše je v pořádku.

Typ

ukončit

pro návrat do shellu systému.

Courier-IMAP/Courier-POP3

Pokud chcete používat démona POP3/IMAP s podporou Maildir (pokud nechcete používat tradiční formát poštovní schránky Unix), můžete nainstalovat Courier-IMAP/Courier-IMAP-SSL (pro IMAP na portu 993) a Courier-POP3/Courier-POP3-SSL (pro POP3 na portu 995). Jinak můžete pokračovat v konfiguraci Apache.

apt-get install courier-imapcourier-imap-ssl courier-pop courier-pop-ssl

<- Ne

ipopd a UW-IMAP budou poté nahrazeny.

Potom nakonfigurujte Postfix tak, aby doručoval e-maily do poštovního adresáře uživatele*:

postconf -e 'home_mailbox=Maildir/'
postconf -e 'mailbox_command ='

/etc/init.d/postfix restart

*Poznámka:Pokud máte v úmyslu použít ISPConfigon váš systém, nemusíte to dělat, protože ISPConfig provádí nezbytnou konfiguraci pomocí procmailrecipes. Nezapomeňte však povolit Maildir pod Správa -> Nastavení ->E-mail ve webovém rozhraní ISPConfig.


Debian
  1. Jak nastavit Rsyslog Server na Debianu 11

  2. Aktualizujte ISPConfig Perfect Server z Debian 10 na Debian 11

  3. Jak upgradovat server Ubuntu 7.10 („Dokonalé nastavení“ + ISPConfig) na Ubuntu 8.04 LTS

  1. Jak nastavit Rsyslog Server na Debian 11 (Bullseye)

  2. Perfektní nastavení – Debian Woody (3.0)

  3. The Perfect Desktop - Debian Squeeze

  1. The Perfect Server – Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

  2. The Perfect Server – Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

  3. The Perfect Server – Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)