Fedora 8 Server Setup: LAMP, Email, DNS, FTP, ISPConfig (auch bekannt als Der Perfekte Server) - Seite 4


7 SELinux deaktivieren

SELinux ist eine Sicherheitserweiterung von Fedora, die eine erweiterte Sicherheit bereitstellen sollte. Meiner Meinung nach brauchst Du ein sicheres System nicht konfigurieren. Es verursacht meistens mehr Probleme als Vorteile. Daher deaktiviere ich es (dies ist ein MUSS wenn Du ISPConfig später installieren möchtest).

Bearbeite /etc/selinux/config und setze SELINUX=disabled:

vi /etc/selinux/config


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0
Danach müssen wir das System neu starten:

shutdown -r now


8 Installiere die Software

Zuerst importieren wir die GPG Keys für die Software-Pakete:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Dann aktualisieren wir unsere bereits existierenden Pakete:

yum update

Nun installieren wir ein paar Software-Pakete, die wir später brauchen werden:

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp gcc gcc-c++


9 Quota

(Wenn Du ein anderes Partitionsschema verwendet hast als ich es habe, musst Du dieses Kapitel abstimmen, sodass Quota auf die Partitionen an entsprechender Stelle abgestimmt wird)

Um Quota zu installieren, starten wir folgenden Befehl:

yum install quota

Bearbeite /etc/fstab und füge ,usrquota,grpquota der / partition (/dev/VolGroup00/LogVol00) hinzu:

vi /etc/fstab


/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0
Führe Folgendes aus

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

um Quota zu aktivieren.

10 Installiere einen Chrooted DNS Server (BIND9)

Um einen chrooted BIND9 zu installieren, führen wir Folgendes aus:

yum install bind-chroot

Als Nächstes ändern wir ein paar wenige Zulassungen und starten BIND:

chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/var/named/
ln -s ../../ chroot
chkconfig --levels 235 named on
/etc/init.d/named start

BIND läuft unter einem Chroot Gefängnis unter /var/named/chroot/var/named/. Ich werde ISPConfig dazu verwenden um BIND (zones, etc.) zu konfigurieren.

11 MySQL (5.0)

Um MySQL zu installieren, führen wir Folgendes aus:

yum install mysql mysql-devel mysql-server

Dann erstellen wir die System Startup Links für MySQL (sodass MySQL automatisch startet, immer wenn das System hochfährt) und starten den MySQL Server:

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

Nun überprüfe ob der Netzwerkbetrieb aktiviert ist. Lass Folgendes laufen

netstat -tap | grep mysql

Es sollte soetwas in der Art anzeigen:

[root@server1 named]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2059/mysqld
[root@server1 named]#

Wenn nicht, bearbeite /etc/my.cnf und kommentiere die Option "skip-networking" aus:

vi /etc/my.cnf


[...]
#skip-networking [...]
und starte Deinen MySQL Server neu:

/etc/init.d/mysqld restart

Lass Folgendes laufen

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

um ein Passwort für den Root Benutzer einzurichten (sonst kann jeder auf Deine MySQL Datenbank zugreifen!).

12 Postfix mit SMTP-AUTH und TLS

Nun installieren wir Postfix und Dovecot (Dovecot wird unser POP3/IMAP Server sein):

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

Nun konfigurieren wir SMTP-AUTH und TLS:

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'
postconf -e 'mynetworks = 127.0.0.0/8'

Wir müssen die Datei /usr/lib/sasl2/smtpd.conf so bearbeiten, dass Postfix PLAIN und LOGIN Anmeldungen zulässt. So sollte es aussehen:

vi /usr/lib/sasl2/smtpd.conf


pwcheck_method: saslauthd
mech_list: plain login
Danach erstellen wir die Zertifikate für TLS:

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 -days 3650

Als Nächstes konfigurieren wir Postfix für TLS:

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'
postconf -e 'smtpd_sasl_authenticated_header = yes'

Dann richten wir den Hostnamen in unserer Postfix Installation ein (vergewissere Dich, dass Du server1.example.com mit Deinem eigenen Hostnamen ersetzt):

postconf -e 'myhostname = server1.example.com'

Nach diesen Konfigurationsschritten solltest Du eine /etc/postfix/main.cf Datei haben, die so aussieht (ich habe alle Kommentierungen entfernt):

cat /etc/postfix/main.cf


queue_directory = /var/spool/postfix
command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.4.5/samples readme_directory = /usr/share/doc/postfix-2.4.5/README_FILES 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 mynetworks = 127.0.0.0/8 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 smtpd_sasl_authenticated_header = yes myhostname = server1.example.com
Starte nun Postfix, saslauthd, und Dovecot:

chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
chkconfig --levels 235 saslauthd on
chkconfig --levels 235 dovecot on
/etc/init.d/sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start

Um festzustellen, ob SMTP-AUTH und TLS richtig funktionieren, lassen wir folgenden Befehl laufen:

telnet localhost 25

Nachdem Du die Verbindung zu Deinem Postfix Mail Server eingerichtet hast, tippe

ehlo localhost

Wenn Du die Zeile

250-STARTTLS

und diese Zeile siehst,

250-AUTH LOGIN PLAIN

dann ist alles Bestens.

[root@server1 ssl]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 ssl]#

Gib Folgendes ein

quit

um zur Kommandozeile des Systems zurück zu kehren.

12.1 Maildir

Dovecot verwended ein Maildir Format (nicht mbox), wenn Du also ISPConfig auf Deinen Server installierst, bitte pass auf, dass Maildir unter Management -> Server -> Settings -> Email aktivierst. ISPConfig übernimmt dann die notwendige Konfiguration.

Wenn Du ISPConfig nicht installieren möchtest, musst Du Postfix konfigurieren, damit es E-Mails an eine Maildir eines Benutzers schickt (das kannst Du auch machen, wenn Du ISPConfig verwendest - es tut nich weh ;-)):

postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

0 Kommentar(e)

Zum Posten von Kommentaren bitte