SysCP unter Gentoo

Aus Cryptronic
Wechseln zu: Navigation, Suche
http://img118.imageshack.us/img118/1433/gtopwwwfj6.jpg + http://img107.imageshack.us/img107/1443/syscplogoyh9.png


Inhaltsverzeichnis

Einführung

Dies soll sein kurzes HowTo sein, wie man SysCP 1.2.13 ohne Bind9 auf einer Gentoo-Installation zum laufen bekommt. Es werden keine Erläuterungen zu den Schritten dabei sein und falls ja, ist es eine Ausnahme ;) Desweiteren garantiere ich nicht für die Vollständigkeit oder hafte für irgendwelche Schäden.
OK? Dann nichts wie los! ;)

Installation + Einrichtung

USE-Variable anpassen

Als erstes muss man die Use-Flags in der /etc/make.conf anpassen. Hier ist meine USE-Variable:

File: /etc/make.conf
USE="apache2 php mysql bzip2 gd imagemagick imap jpeg perl sasl ssl unicode vhosts zlib gif ftp ffmpeg -X berkdb cli crypt curl gmp ipv6 ncurses nls pcre pdo-external pic readline reflection session spl theards xml xmlreader xmlrpc xmlwriter png cgi iconv bcmath calendar exif spell posix sqlite utf8 nptl nptlonly ctype"



Apache 2 + PHP5

Installation

Folgendes in der Shell als root ausführen:
emerge -av apache php

Konfiguration

Jetzt nachdem Apache und PHP installiert wurden, muss die /etc/apache2/httpd.conf noch ein bisschen angepasst werden.
Wenn dein Server über mehrere IP Adressen verfügt und Apache nur unter bestimmten IP Adresse erreichbar sein soll muss dies mit der Listen deklariert werden. Das Beispiel ist der httpd.conf ist ausreichend.
Dann muss noch die Email-Adresse des Serveradmins bei ServerAdmin und der Name des Server bei Servername eingetragen werden.
Nun müssen wir Apache klar machen, die vhosts von SysCP auch zu nutzen. also fügen wir am Ende der Datei

Code: /etc/apache2/httpd.conf
Include /etc/apache2/vhosts.conf

ein.
Jetzt Speichern und die vhosts.conf anlegen

Folgendes in der Shell als root ausführen:
touch /etc/apache2/vhosts.conf

Damit PhpMyAdmin oder SysCP auch erreichbar ist, bevor der Cronjob von SysCP zum ersten mal läuft muss eine zeile in die vhosts.conf eingetragen werden. Den Stern durch eure IP ersetzen.

Folgendes in der Shell als root ausführen:
echo "NameVirtualHost *:80" >> /etc/apache2/vhosts.conf
rm /etc/apache2/vhosts.d/00_default_vhost.conf



MySQL 5

emerge -av mysql



PhpMyAdmin

Installation

emerge -av phpmyadmin

Konfiguration

cd /usr/share/webapps/phpmyadmin/*/htdocs
cp libraries/config.default.php ./
mv config.default.php config.inc.php

Damit PhpMyAdmin auch funktibiert müssen noch 2 Dateien angepasst werden:

config.inc.php

Die folgenden Variablen müssen angepasst werden.

$cfg['PmaAbsolutUri'] = 'http://phpmyadmin.meinedomain.de'
$cfg['Servers'][$i]['controluser']   = '';       
$cfg['Servers'][$i]['controlpass']   = '';

Und jenachdem welche Anmeldemethode man bevorzugt sollte man noch $cfg['Servers'][$i]['auth_type'] anpassen.

httpd.conf

Damit PhpMyAdmin auch im Netz erreichbar ist, muss die /etc/apache2/httpd.conf nochmal angepasst werden. Über Include /etc/apache2/vhosts.conf folgenden einfügen und anpassen:

<VirtualHost *:80>
  ServerAlias phpmyadmin.meinedomain.de
  DocumentRoot "/usr/share/webapps/phpmyadmin/2.8.2/htdocs/"
</VirtualHost>

Nun ist PhpMyAdmin unter http://phpmyadmin.meinedomain.de erreichbar.

Absicherung

Da bei der Installation von MySQL direkt Benutzer ohne Passwort erstellt werden stellt das einen großes Sicherheitsrisiko dar!
Wir rufen PhpMyAdmin auf und loggen uns als root ein. Passwort gibts es noch keins.
Dann rufen wir die Seite Rechte auf, wählen die 3 Benutzer mit dem Namen Jeder aus und klicken bei Die ausgewählten Benutzer löschen auf OK.
Jetzt müssen wir root noch ein Passwort zuweisen. Auf bearbeiten klicken bei Kennwort ändern Kennwort auswählen, das Kennwort eingeben und auf OK klicken. Das gleiche nochmal für den zweiten Benutzer root.




Cron Daemon

emerge vixie-cron
/etc/init.d/vixie-cron start
rc-update add vixie-cron default




SysCP

Anlegen der MySQL Datenbank und Benutzer

Wir loggen uns in PhpMyAdmin ein
http://img148.imageshack.us/img148/9219/phpmyadminhomein9.png

Kopie aus der SysCP Wiki:
Im Feld Neue Datenbank anlegen geben Sie den Namen an, welcher für die SysCP-Datenbank verwendet werden soll. Der Standardname ist syscp. Wenn die Datenbank erfolgreich angelegt wurde, kehren Sie auf diese Seite zurück. Klicken Sie danach auf Rechte um den Benutzer für SysCP ein zu richten.
Klicken Sie dort auf Neuen Benutzer hinzufügen und geben Sie den Benutzernamen ein. Als Host wählen Sie lokal aus. Geben Sie noch ein Kennwort ein und klicken Sie danach auf OK. Geben Sie diesem Benutzer keine globalen Rechte.
Wenn der Benutzer angelegt wurde, finden Sie sich auf der Bearbeitungsmaske des Benutzers.

Wählen Sie hier aus der Drop-Down Liste die Datenbank syscp aus und klicken Sie danach auf OK. Nun können Sie auf der folgenden Einstellungsseite alle Rechte ausser GRANT aktivieren und danach mit wieder mit OK bestätigen. Nun ist die Datenbank für SysCP vorbereitet und SysCP kann endlich konfiguriert werden.
http://img163.imageshack.us/img163/4949/phpmyadmindatabasespecificprivilegeszo0.png

Entpacken der Dateien von SysCP

Folgende Befehle in der Shell ausführen:

cd /var/www
wget http://files.syscp.org/releases/tgz/syscp-1.2.13.tar.gz
tar -xzvf syscp-1.2.13.tar.gz

SysCP erreichbar machen

Die /etc/apache2/httpd.conf öffnen und folgendes über Include /etc/apache2/vhosts.conf einfügen und anpassen:

<VirtualHost *:80>
  ServerAlias syscp.meinedomain.de
  DocumentRoot "/var/www/syscp"
</VirtualHost>

SysCP installieren

Wir rufen http://syscp.meinedomain.de auf und tragen die Daten ein.
http://img69.imageshack.us/img69/2071/syscpinstalliv0.png

SysCP konfigurieren

Wir loggen uns bei SysCP ein und rufen die Seite Einstellungen auf. Fülle die Felder aus und korrigiere evtl. einige Einstellungen. Achte besonders auf diese (können 1:1 übernommen werden):
Documentdirectory: /var/kunden/webs/
Logfilesdirectory: /var/kunden/logs/
Apache-Config-Verzeichnis: /etc/apache2/
Apache-Config-Dateiname: vhosts.conf
Apache-Reload-Command: /etc/init.d/apache2 reload
Bind-Config-Directory: /dev/null/
Bind-Reload-Command: /bin/true
Bind-Default-Zone:
Mails-Homedir: /var/kunden/mail/

Kundenverzeichnisse erstellen

mkdir -p /var/kunden/webs/
mkdir -p /var/kunden/logs/



Webalizer

emerge -av webalizer



ProFTPD

Installation

USE="-postgres" emerge -av proftpd

Konfiguration

Jetzt muss die /etc/proftpd/proftpd.conf editiert werden. Falls sie nicht existiert mit touch anlegen. ACHTUNG: Nicht vergessen day MySQL Passwort zu ersetzen

ServerName                      "meinedomain.de FTP Server"
ServerType                      standalone
DeferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on
AllowOverwrite                  on

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
ListOptions                     "-l"

DenyFilter                      \*.*/

Port                            21
MaxInstances                    30

# Set the user and group that the server normally runs at.
User                            nobody
Group                           nogroup

<Directory /*>
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
  Umask                         022  022
  # Normally, we want files to be overwriteable.
    AllowOverwrite                on
    </Directory>

    DefaultRoot ~
    RequireValidShell off

    SQLAuthTypes Crypt Plaintext
    SQLAuthenticate users* groups*
    SQLConnectInfo syscp@localhost syscp <MYSQL_PASSWORT>
    SQLUserInfo ftp_users username password uid gid homedir shell
    SQLGroupInfo ftp_groups groupname gid members
    SQLUserWhereClause "login_enabled = 'y'"

    SQLLog PASS login
    SQLNamedQuery login UPDATE "last_login=now(), login_count=login_count+1 WHERE username='%u'" ftp_users

    SQLLog RETR download
    SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b WHERE username='%u'" ftp_users

    SQLLog STOR upload
    SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users

TLS Betrieb

Du kannst deinen Kunden auch verschlüsselten FTP-Transfer anbieten indem du

penssl req -new -x509 -days 365 -nodes  -out /etc/ssl/certs/proftpd.cert.pem -keyout /etc/ssl/certs/proftpd.key.pem

ausführst und folgendes der proftpd.conf hinzufügst:

# Uncomment this if you would use TLS module:
TLSEngine			on
TLSLog 			/var/log/ftp_tls.log
TLSProtocol			SSLv23
TLSOptions			NoCertRequest
TLSRSACertificateFile		/etc/ssl/certs/proftpd.cert.pem
TLSRSACertificateKeyFile	/etc/ssl/certs/proftpd.key.pem
TLSVerifyClient			off
# Uncomment the following line to force tls-login
#TLSRequired			on




Postfix

cyrus-sasl

emerge -av cyrus-sasl
Konfiguration

Es muss nun die smtpd.conf editiert werden, allerdings gibt es 2 davon und ich weiß nicht welche endgültig benutzt wird. Also editieren wir beide ;)

/etc/sasl2/smtpd.conf
/etc/postfix/sasl/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: localhost
sql_user: syscp
sql_passwd: <SYSCP_MYSQL_PASSWD>
sql_database: syscp
sql_select: select password from mail_users where username='%u@%r'
mech_list: login plain

Nicht vergessen <SYSCP_MYSQL_PASSWD> zu sersetzen!

Postfix

emerge postfix -va
mkdir -p /etc/postfix/sasl
mkdir -p /var/spool/postfix/etc/pam.d
mkdir -p /var/spool/postfix/var/run/mysqld
groupadd -g 2000 vmail
useradd -u 2000 -g vmail vmail
mkdir -p /var/kunden/mail/
chown -R vmail:vmail /var/kunden/mail/
Konfiguration

ACHTUNG: Evtl. das <MYSQL_PASSWORT> ersetzen!

/etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Gentoo/GNU)
biff = no
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_spool_directory = /var/spool/mail

append_dot_mydomain = no
myhostname = <MEINHOSTNAME>
mydomain = <MEINEDOMAIN.DE>
mydestination = $myhostname $mydomain localhost localhost.$mydomain
mynetworks = 127.0.0.0/8
alias_maps = $alias_database
inet_interfaces = all
mail_owner = postfix

readme_directory = /usr/share/doc/postfix-2.1.5-r1/readme
alias_database = hash:/etc/mail/aliases
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
alias_maps = hash:/etc/mail/aliases
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /etc/postfix

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_use_tls = yes

smtpd_tls_key_file = /etc/postfix/newreq.pem
smtpd_tls_cert_file = /etc/postfix/newcert.pem
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

virtual_mailbox_base = /var/kunden/mail/
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
virtual_transport = virtual
/etc/postfix/mysql-virtual_alias_maps.cf
user = syscp
password = <MYSQL_PASSWORT>
dbname = syscp
table = mail_virtual
select_field = destination
where_field = email
additional_conditions = and destination <> '' and destination <> ' '
hosts = localhost
/etc/postfix/mysql-virtual_mailbox_domains.cf
user = syscp
password = <MYSQL_PASSWORT>
dbname = syscp
table = panel_domains
select_field = domain
where_field = domain
additional_conditions = and isemaildomain = '1'
hosts = localhost
/etc/postfix/mysql-virtual_mailbox_maps.cf
user = syscp
password = <MYSQL_PASSWORT>
dbname = syscp
table = mail_users
select_field = maildir
where_field = email
hosts = localhost
Fehlerbehebung

Falls in /var/log/messages eine fehlermeldung wie diese stehen sollte:

warning: /usr/lib/postfix/local: bad command startup -- throttling
führe
newaliases
aus.



courier-imap

Installation

emerge courier-imap

Konfiguration

/etc/courier-imap/authdaemonrc
authmodulelist="authmysql authpam"
authmodulelistorig="authcustom authcram authuserdb authldap authmysql authpam"
daemons=5
version=""
authdaemonvar=/var/lib/courier-imap/authdaemon
/etc/courier-imap/authdaemond.conf
AUTHDAEMOND="authdaemond.mysql"
/etc/courier-imap/authmysqlrc

<MYSQL_PASSWORT> ersetzten!

MYSQL_SERVER localhost
MYSQL_USERNAME syscp
MYSQL_PASSWORD <MYSQL_PASSWORT>
MYSQL_PORT 3136
MYSQL_DATABASE syscp
MYSQL_USER_TABLE mail_users
MYSQL_CRYPT_PWFIELD password_enc
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD homedir
MYSQL_MAILDIR_FIELD maildir

SSL-Zertifikate für POP3 / IMAP erstellen

mkpop3dcert
mkimapdcert




Abschluss

SysCP Cronjob eintragen

touch /etc/cron.d/syscp

Dann die Datei öffnen und folgendes einfügen:

#
# Set PATH, otherwise restart-scripts won't find start-stop-daemon
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#
# Regular cron jobs for the syscp package
#
*/5 * * * *     root    /usr/bin/php /var/www/syscp/scripts/cronscript.php

Daemon starten und in den runlevel eintragen

/etc/init.d/apache2 restart
/etc/init.d/mysql restart
/etc/init.d/proftpd restart
/etc/init.d/saslauthd restart
/etc/init.d/postfix restart
/etc/init.d/authdaemond restart
/etc/init.d/courier-imapd restart
/etc/init.d/courier-pop3d restart
/etc/init.d/courier-imapd-ssl restart
/etc/init.d/courier-pop3d-ssl restart
rc-update add apache2 default
rc-update add mysql default
rc-update add proftpd default
rc-update add postfix default
rc-update add saslauthd default
rc-update add authdaemond default
rc-update add courier-imapd default
rc-update add courier-pop3d default
rc-update add courier-imapd-ssl default
rc-update add courier-pop3d-ssl default




Persönliche Vermerke

Dieses Tutorial enthält einige Ausschnitte aus dem englischen HowTo der Gentoo Wiki und der SysCP Dokumentation

Weiterführende Links

SysCP.de
SysCP Download
Gentoo Linux
Gentoo Wiki

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Tipps
Werkzeuge