Das Perfekte Setup - OpenSuSE 10.2 (32-bit) - Seite 9

10 Proftpd

Ich möchte Proftpd anstelle von vsftpd verwenden, was SuSEs Standard FTP Server ist, da die Control Panel Software, die ich auf diesem Server installieren werde (ISPConfig), Proftpd auf OpenSuSE 10.2 (auf anderen Distributionen ist das anders) verlangt. Da es für Proftpd keine OpenSuSE Pakete gibt, muss ich es manuell kompilieren:

cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.gz
tar xvfz proftpd-1.3.0a.tar.gz
cd proftpd-1.3.0a/
./configure --sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.0a*

Erstelle nun die Datei /etc/init.d/proftpd:

vi /etc/init.d/proftpd


#! /bin/sh
# Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germany. # All rights reserved. # # Original author: Marius Tomaschewski <mt@suse.de> # # Slightly modified in 2003 for use with SuSE Linux 8.1, # by http://www.learnlinux.co.uk/ # # Slightly modified in 2005 for use with SuSE Linux 9.2, # by Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $network $remote_fs $syslog $named # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Starts ProFTPD server ### END INIT INFO # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Force execution if not called by a runlevel directory. test $link = $base && START_PROFTPD=yes # Modified by learnlinux.co.uk test "$START_PROFTPD" = yes || exit 0 # Modified by learnlinux.co.uk # Return values acc. to LSB for all commands but # status (see below): # # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running proftpd_cfg="/etc/proftpd.conf" proftpd_bin="/usr/local/sbin/proftpd" proftpd_pid="/usr/local/var/proftpd.pid" [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Source status functions . /etc/rc.status # First reset status of this service rc_reset case "$1" in start) echo -n "Starting ProFTPD Server: " test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n "Shutting down ProFTPD Server: " test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## If first returns OK call the second, if first or ## second command fails, set echo return value. $0 stop $0 start rc_status ;; try-restart) ## Stop the service and if this succeeds (i.e. the ## service was running before), start it again. ## Note: not (yet) part of LSB (as of 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Exclusive possibility: Some services must be stopped ## and started to force a new load of the configuration. echo -n "Reload ProFTPD Server: " /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running echo -n "Checking for ProFTPD Server: " checkproc $proftpd_bin rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, ## give out the argument which is required for a reload. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo "Usage: $0 {start|stop|status|restart|reload|try-restart|probe}" exit 1 ;; esac # Set an exit status. rc_exit
Führe dann dies aus

chmod 755 /etc/init.d/proftpd
chkconfig --add proftpd

Starte Proftpd:

/etc/init.d/proftpd start

Aus Sicherheitsgründen kannst Du folgende Zeilen /etc/proftpd.conf hinzufügen:

vi /etc/proftpd.conf


[...]
DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...]
Pass auf, dass Du folgende Zeile auskommentierst, um ftp Benutzern CHMOD zu erlauben:
[...]
# Bar use of SITE CHMOD by default #<Limit SITE_CHMOD> # DenyAll #</Limit> [...]
und starte Proftpd neu:

/etc/init.d/proftpd restart


11 Webalizer

Um Webalizer zu installieren, führe einfach Folgendes aus

yast2 -i webalizer


12 Die System Uhr synchronisieren

Wenn Du möchtest, dass die System Uhr mit einem NTP Server synchronisiert werden soll, führe Folgendes aus:

yast2 -i xntp

Füge einen NTP Server mit YaST hinzu:

yast2

Wähle Network Services -> NTP Configuration:


Wähle dann Automatically Start NTP Daemon During Boot. Aktiviere unter NTP Server Configuration Use Random Servers from pool.ntp.org. Wähle dann Finish, Quit.

13 Installiere einige Perl Module, die von SpamAssassin (in ISPConfig) benötigt werden

Führe dies aus

yast2 -i perl-HTML-Parser perl-Net-DNS perl-Digest-SHA1


14 AppArmor deaktivieren

AppArmor ist eine Sicherheitserweiterung von SuSE (ähnlich wie Fedoras SELinux). Meiner Meinung nach brauchst Du ein sicheres System nicht zu konfigurieren. Für gewöhnlich verursacht das mehr Probleme als dass es Vorteile schafft. Daher deaktiviere ich es (das ist ein Muss wenn Du später ISPConfig installieren möchtest).

Wir können es wie folgt deaktivieren:

/etc/init.d/boot.apparmor stop
chkconfig -d boot.apparmor

15 ISPConfig

Die Konfiguration des Servers ist nun abgeschlossen. Wenn Du magst, kanns Du nun ISPConfig installieren. Bitte sieh Dir die ISPConfig Installation an: http://www.ispconfig.org/manual_installation.htm

15.1 Eine Notiz über SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /srv/www als das Home Verzeichnis für Web Sites festlegen, die von ISPConfig erstellt werden, da OpenSuSE 10.2s suExec mit /srv/www as Doc_Root erstellt wird. Führe /usr/sbin/suexec2-V aus und die Ausgabe sollte wie folgt aussehen:

/usr/sbin/suexec2 -V


server1:~ # /usr/sbin/suexec2 -V
-D AP_DOC_ROOT="/srv/www"
-D AP_GID_MIN=96
-D AP_HTTPD_USER="wwwrun"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=96
-D AP_USERDIR_SUFFIX="public_html"
server1:~ #

Wenn Du ISPConfig nicht im Expertenmodus installierst und den Standard Web Root (/srv/www) änderst, kannst Du CGI Skripte unter suExec mit ISPConfig ausführen. Der folgende Screenshot stammt von einer ISPConfig Installation im Expertenmodus. Wenn Du ISPConfig verwenden möchtest, dann ändere nicht den Standard Web Root:

16 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte