Installation der Server
#######################################################################################################
FreeBSD 5.2.1 Miniinstall CD
--> Custom
--> Minimal
--> Custom +Perl +MAN +Ports
### Ende ###
#######################################################################################################
### Ports aktualisieren ###
# cd /usr/ports/net/cvsup-without-gui
# make install clean
# edit /root/ports-supfile
### Ports Supfile ###
*default host=cvsup.de.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
ports-all
### Ende ####
# cd /root
# su
# cvsup ports-supfile
# cd /usr/ports
# make index
#######################################################################################################
### Basisprogramme installieren ###
OpenSSl Install
# cd /usr/ports/security/openssl
# make install clean
# cp /usr/local/openssl/openssl.cnf.sample /usr/local/openssl/openssl.cnf
---> und editieren, um anzupassen
Portupgrade Install
# cd /usr/ports/sysutils/portupgrade
# make install clean
### ruby18 - Bug reparieren ###
entweder: (empfohlen, hat bei mir aber nicht gefunkt)
# cd /usr/ports
# rm INDEX.db
# sort < INDEX-5 > INDEX-5.sorted
# mv INDEX-5.sorted INDEX-5
oder: (hat auch nicht gefunkt)
# cd /usr/ports/textproc/rl
# make install clean
# cd /usr/ports/misc/inplace
# make install clean
# su
# inplace rl /usr/ports/INDEX-5
oder: (das wars dann)
# setenv PORTS_DBDRIVER bdb1_hash
oder:
edit /usr/local/etc/pkgtools.conf
--> ENV['PORTS_DBDRIVER'] = 'dbm_hash'
### Ende ###
Portdatenbank prüfen und Portupgrade ausführen
# cd /var/db/pkg
# su
# portsdb -Uu
# pkgdb -F
# portversion -v | grep needs
# portupgrade -aR
Perl MD5 Install
# cd /usr/ports/security/p5-MD5
# make install clean
GD-Library Install
# cd /usr/ports/graphics/gd
# make install clean
---> HIER
Lynx Install
# cd /usr/ports/www/lynx-ssl
# make install clean
MySQL Install
# cd /usr/ports/databases/mysql40-server
# make install clean
# /usr/local/bin/mysqld_safe &
# /usr/local/bin/mysqladmin -u root password 'somepass1'
#######################################################################################################
--------------
### Cyrus Authentifizierung installieren ###
Cyrus SASL2 Install
# cd /usr/ports/security/cyrus-sasl2
# make -DWITH_MYSQL -DWITHOUT_PGSQL -DWITH_DEV_URANDOM -DWITHOUT_OTP -DWITHOUT_CRAM -DWITHOUT_DIGEST -DWITHOUT_NTLM
# make install clean
-->
You can use sasldb2 for authentication, to add users use:
saslpasswd2 -c username
-->
Cyrus SASL2 Authd Install
# cd /usr/ports/security/cyrus-sasl2-saslauthd
# make build && make install && make clean
# edit /etc/rc.conf
# saslauthd_enable="YES"
Cyrus SASL2 Setup
# edit /usr/local/lib/sasl2/smtpd.conf
### smtpd.conf ####
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sql
sasl_sql_engine: mysql
sasl_mech_list: login plain
sasl_sql_hostname: localhost
sasl_sql_user: postfix
sasl_sql_passwd: somepass2
sasl_sql_database: postfix
sasl_sql_verbose: yes
sasl_sql_statement: SELECT password FROM mailbox WHERE username = '%u@%r'
### END ####
#######################################################################################################
### Email mit Openldap ###
OpenLdap Install
# cd /usr/ports/net/openldap22-server
# make --WITH_SASL
# make install clean
Postfix Install
# cd /usr/ports/mail/postfix
# make install clean
----> Build with: PCRE, SASL2, MySQL and LDAP
----> Added group "postfix"
.
----> Would you like me to add it? [y]? y
----> Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y
### rc.conf Ausschnitt ###
# Postfix
sendmail_enable="NONE"
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
### Ende ###
# cd /usr/local/etc/rc.d
# ln -s /usr/local/sbin/postfix postfix.sh
# edit /etc/periodic.conf
### periodic.conf ###
# Use Postfix
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
### Ende ###
Virtual Maildir
# mkdir /usr/local/virtual
# chown -R postfix:postfix /usr/local/virtual
# chmod -R 751 /usr/local/virtual
Postfix Setup
# cd /usr/local/etc/postfix
# Sicherung der orginalen Konfigutation
# mv main.cf main.original.cf
# edit main.cf
### main.cf ###
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
setgid_group = maildrop
sample_directory = /usr/local/etc/postfix
readme_directory = no
html_directory = no
home_mailbox = Maildir/
mail_owner = postfix
message_size_limit = 15728640
maximal_queue_lifetime = 30
queue_minfree = 23592960
myhostname = mail.booji.net
mydomain = booji.net
mynetworks_style = host
mydestination = $transport_maps
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_banner = $myhostname ESMTP
smtpd_sasl_auth_enable = yes
smtp_sasl2_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname
# smtpd_delay_reject = no
smtpd_sasl_security_options = noanonymous
# Test
smtp_sasl_password_maps = hash:/etc/sasldb2
smtpd_sasl_application_name = smtpd
smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
smtp_use_tls = yes
smtpd_use_tls = yes
# smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /usr/local/etc/postfix/imapd.pem
smtpd_tls_cert_file = /usr/local/etc/postfix/imapd.pem
# smtpd_tls_CAfile = /usr/local/etc/postfix/imapd.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_client_restrictions =
#check_client_access mysql:/usr/local/etc/postfix/mysql-client.cf,
permit_mynetworks,
permit_sasl_authenticated,
# reject_rbl_client dul.dnsbl.sorbs.net,
# reject_rbl_client relays.ordb.org,
# reject_rbl_client list.dsbl.org,
# reject_rbl_client sbl-xbl.spamhaus.org,
permit
smtpd_helo_restrictions =
#check_helo_access mysql:/usr/local/etc/postfix/mysql-helo.cf,
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_hostname,
reject_unknown_hostname,
reject_non_fqdn_hostname,
permit
smtpd_sender_restrictions =
reject_invalid_hostname,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_unknown_hostname
# default_rbl_reply = $rbl_code Service unavailable; $rbl_class [$rbl_what]
# blocked using $rbl_domain${rbl_reason?; $rbl_reason}
# smtpd_expansion_filter = t40!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
smtpd_recipient_restrictions =
#check_recipient_access mysql:/usr/local/etc/postfix/mysql-recipient.cf,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient
smtpd_data_restrictions =
reject_unauth_pipelining,
permit
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_limit = 51200000
virtual_transport = virtual
virtual_uid_maps = static:125
virtual_gid_maps = static:125
local_recipient_maps =
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
### Ende main.cf ###
# edit mysql_virtual_alias_maps.cf
### mysql_virtual_alias_maps.cf ###
user = postfix
password = somepass2
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
### Ende ###
# edit mysql_virtual_domains_maps.cf
### mysql_virtual_domains_maps.cf ###
user = postfix
password = somepass2
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
### Ende ###
# edit mysql_virtual_mailbox_maps.cf
### mysql_virtual_mailbox_maps.cf ###
user = postfix
password =
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
### Ende ###
# Sicherung der orginalen Konfiguration
# mv master.cf master.original.cf
# edit master.cf
### master.cf ###
# ================================================== ========================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ================================================== ========================
smtp inet n - n - - smtpd
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_etrn_restrictions=reject
#628 inet n - n - - qmqpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
#tlsmgr fifo - - n 300 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# maildrop. See the Postfix MAILDROP_README file for details.
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus unix - n n - - pipe
user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
### Ende ###
#################################################################################################################################
#################################################################################################################################
Courier-IMAP Install
# cd /usr/ports/mail/courier-imap
# make -DWITH_MYSQL
# make install clean
Courier-IMAP Setup
# cd /usr/local/etc/courier-imap
# edit authmysqlrc
### authmysqlrc ###
# MYSQL_CRYPT_PWFIELD password
MYSQL_CLEAR_PWFIELD password
MYSQL_DATABASE postfix
#MYSQL_DATABASE maildb
MYSQL_GID_FIELD 125
MYSQL_HOME_FIELD '/usr/local/virtual'
MYSQL_LOGIN_FIELD username
MYSQL_MAILDIR_FIELD maildir
MYSQL_NAME_FIELD name
MYSQL_OPT 0
MYSQL_PASSWORD postfix
MYSQL_PORT 0
MYSQL_SERVER localhost
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_UID_FIELD 125
MYSQL_USERNAME postfix
#MYSQL_USERNAME maildb
MYSQL_USER_TABLE mailbox
MYSQL_QUOTA_FIELD quota
# Reihenfolge username, cryptpw, uid, gid, clearpw, home, maildir, quota, fullname
#MYSQL_SELECT_CLAUSE SELECT username, password, '', '', '', '', maildir, quota, name FROM mailbox WHERE username = $(local_part)' and domain = '$(domain)'
### ENDE ###
# edit authdaemonrc
### authdaemonrc ###
authmodulelist="authcustom authuserdb authmysql authpam"
authmodulelistorig="authcustom authuserdb authmysql authpam"
daemons=5
version="authdaemond.mysql"
authdaemonvar=/usr/local/var/authdaemon
### ENDE ###
# edit imapd
### imapd ###
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=4
PIDFILE=/var/run/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
AUTHMODULES="authdaemon"
AUTHMODULES_ORIG="authdaemon"
DEBUG_LOGIN=0
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_KEYWORDS=1
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
IMAP_IDLE_TIMEOUT=60
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_ULIMITD=65536
IMAP_USELOCKS=1
IMAP_SHAREDINDEXFILE=/usr/local/etc/courier-imap/shared/index
IMAP_ENHANCEDIDLE=0
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/bin/sendmail
HEADERFROM=X-IMAP-Sender
IMAPDSTART=NO
MAILDIRPATH=.maildir/
### ENDE ###
# edit pop3d
### pop3d ###
PIDFILE=/var/run/pop3d.pid
MAXDAEMONS=40
MAXPERIP=4
AUTHMODULES="authdaemon"
AUTHMODULES_ORIG="authdaemon"
DEBUG_LOGIN=0
POP3AUTH="LOGIN"
POP3AUTH_ORIG="LOGIN CRAM-MD5 CRAM-SHA1"
POP3AUTH_TLS="LOGIN PLAIN"
POP3AUTH_TLS_ORIG="LOGIN PLAIN"
PORT=110
ADDRESS=0
TCPDOPTS="-nodnslookup -noidentlookup"
POP3DSTART=NO
MAILDIRPATH=.maildir/
### ENDE ###
# edit quotawarnmsg
### quotawarnmsg ###
From: Mail Delivery System <Mailer-Daemon@booji.com>
Reply-To: [email]no-answer@booji.com[/email]
To: Valued Customer:;
Subject: Mail Postfach Speicherplatz gering / Mail quota warning
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Ihr Postfach auf dem Mailserver is zu 90% belegt. Damit Sie weiterhin Emails
empfangen können, müssen Sie einige Nachrichten aus Ihrem Postfach löschen.
Your mailbox on the server is now more than 90% full. So that you can continue
to receive mail you need to remove some messages from your mailbox.
### ENDE ###
# cd /etc/mail
# Sicherung der originalen Konfiguration
# mv aliases aliases.original
# edit aliases
### aliases ###
# Person who should get root's mail. Don't receive mail as root!
#root: you
# Basic system aliases -- these MUST be present
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts
bin: root
daemon: root
named: root
nobody: root
uucp: root
www: root
ftp-bugs: root
postfix: root
# Put your local aliases here.
# Well-known aliases
manager: root
dumper: root
operator: root
abuse: postmaster
# trap decode to catch security attacks
decode: root
### ENDE ###
# Sicherung der originalen Konfiguration
# mv mailer.conf mailer.conf.original
# edit mailer.conf
### mailer.conf ###
sendmail /usr/local/sbin/sendmail
send-mail /usr/local/sbin/sendmail
mailq /usr/local/sbin/sendmail
newaliases /usr/local/sbin/sendmail
### ENDE ###
#################################################################################################################################
PAM Install
# cd /usr/ports/security/pam-mysql
# make install clean
# cp /usr/local/lib/pam_mysql.so /usr/lib/pam_mysql.so
# cd /etc
# edit pam.conf
### pam.conf ###
login auth sufficient pam_skey.so
login auth sufficient pam_opie.so no_fake_prompts
login auth requisite pam_cleartext_pass_ok.so
login auth required pam_unix.so try_first_pass
login account required pam_unix.so
login password required pam_permit.so
login session required pam_permit.so
sshd auth sufficient pam_skey.so
sshd auth sufficient pam_opie.so no_fake_prompts
sshd auth required pam_unix.so try_first_pass
sshd account required pam_unix.so
sshd password required pam_permit.so
sshd session required pam_permit.so
telnetd auth required pam_unix.so try_first_pass
xserver auth required pam_permit.so
xdm auth required pam_unix.so
xdm account required pam_unix.so try_first_pass
xdm session required pam_deny.so
xdm password required pam_deny.so
gdm auth required pam_unix.so
gdm account required pam_unix.so try_first_pass
gdm session required pam_permit.so
gdm password required pam_deny.so
other auth sufficient pam_skey.so
other auth required pam_unix.so try_first_pass
other account required pam_unix.so try_first_pass
# postfix, courier-imap
#smtp auth sufficient pam_mysql.so host=localhost user=postfix passwd=somepass db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=0 sqllog=0
#smtp account required pam_mysql.so host=localhost user=postfix passwd=somepass db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=0 sqllog=0
#smtp account sufficient pam_unix.so
#smtp account required pam_mysql.so user=postfix passwd=somepass db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=0
#smtp session required pam_permit.so
imap auth required pam_mysql.so host=localhost user=postfix passwd=somepass db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=0
imap account required pam_unix.so try_first_pass
imap session required pam_permit.so
pop3 auth required pam_unix.so host=localhost user=postfix passwd=somepass db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1
# Proftpd
ftpd auth required pam_unix.so try_first_pass
ftpd account required pam_unix.so try_first_pass
ftpd session required pam_permit.so
### ENDE ###
#################################################################################################################################
# Prodftd Install
# cd /usr/ports/ftp/proftpd-mysql
# make install clean
# pw groupadd ftp
# adduser ftp
----> Startup-Skript /usr/local/etc/rc.d/proftpd.sh
# cd /usr/local/etc
# Sicherung der originalen Konfiguration
# mv proftpd.conf proftpd.conf.original
# edit proftpd.conf
### proftpd.conf ###
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
ServerName "- Welcome to ProFTPD Server on sydney.nocx.net -"
ServerType standalone
ServerAdmin [email]admin@booji.com[/email]
ServerIdent on "sydney.nocx.net"
DeferWelcome on
DefaultServer on
# Normally, we want files to be overwriteable.
<Directory />
AllowOverwrite on
</Directory>
#
# FXP Unterstuetzung
#
AllowForeignAddress on
# Maximal Werte setzen
MaxClientsPerHost 2 "Nicht mehr als %m Verbindungen"
MaxClients 8 "Leider sind schon %m Clients verbunden"
MaxLoginAttempts 3
#
# Restart erlauben
#
AllowStoreRestart on
AllowRetrieveRestart on
#
# Jail all users into their virtual home dir
#
DefaultRoot ~
RequireValidShell off
Port 21
Umask 022
MaxInstances 30
User ftp
Group ftp
SQLAuthTypes Crypt
SQLAuthenticate users* groups*
SQLConnectInfo ftp@localhost proftpd somepass2
SQLUserInfo users username passwd NULL NULL homedir NULL
SQLGroupInfo groups groupname id username
SQLUserWhereClause "valid = 1"
SQLDefaultGID 100
SQLDefaultUID 500
SQLHomedirOnDemand off
RequireValidShell off
SQLLog PASS updatelogin
SQLNamedQuery updatelogin UPDATE "count=count+1, lastlogin=NOW() WHERE username = '%u'" users
### Log trafic (STOR, RETR commands)
SQLLog STOR,RETR,ERR_STOR,ERR_RETR logtrafic
SQLNamedQuery logtrafic FREEFORM "INSERT INTO history (username, filename, transfertype, transfersize, transferhost, transfertime, transferdate) VALUES('%u', '%F', '%m', %b, '%a', '%T', NOW())"
### Log user error events (ERR_* commands)
SQLLog ERR_* logevents
SQLNamedQuery logevents FREEFORM "INSERT INTO userevents (username, eventtype, description, eventdate) VALUES ('%u', '%m', '%r', NOW())"
#
# mod_quota tab
#
# QuotaEngine on
# QuotaShowQuotas on
# QuotaLimitTable sql:/get-quota-limit
# QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
# SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session,limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
# SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
# SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" quotatallies
# SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
#
RootLogin off
### Ende ###
#################################################################################################################################
Apache2 Install
# cd /usr/ports/www/apache2
# make --WITH_LDAP_MODULES --WITH_SSL_MODULES --WITH_SUEXEC_MODULES
# make install clean
---->
Since 2.0.49_2, to run apache www server from startup, add apache2_enable="YES"
in your /etc/rc.conf.
Available variables you add/set to /etc/rc.conf.
- apache2_enable (bool): Set to "NO" by default.
Set it to "YES" to enable apache2.
- apache2ssl_enable (bool): Set to "NO" by default.
Set it to "YES" to start apache with SSL
(if <IfDefined SSL> exists in httpd.conf).
- apache2limits_enable (bool):Set to "NO" by default.
Set it to yes to run `limits $limits_args`
just before apache starts.
- apache2_flags (str): Set to "" by default.
Extra flags passed to start command.
- apache2limits_args (str): Default to "-e -C daemon"
Arguments of pre-start limits run.
---->
# edit /etc/rc.conf
----> apache2_enable="YES"
# edit /usr/local/etc/apache2/httpd.conf
change lines:
Line 216 Listen
Line 321 Serveradmin
Line 335 Servername
Line 438 index.html index.html.var index.htm index.htm.var index.php
Line 812 LanguagePriority de en fr es ca cs da el eo et he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
Error Documents 988 bis 1004
PHP4 Install
# cd /usr/ports/www/mod_php4
# make install clean
# cd /usr/ports/lang/php4-extensions/
# make install clean
### Options ###
BCMATH
BZ2
CALENDAR
CTYPE
CURL
DBA
DBASE
DOMXML
EXIF
FILEINFO
FTP
GD
GETTEXT
ICONV
IMAGEMAGICK
IMAP
LDAP
MBSTRING
MCRYPT
MHASH
MING
MYSQL
OPENSSL
OVERLOAD
PCRE
PDF
POSIX
PSPELL
SESSION
SHMOP
TOKENIZER
WDDX
XSLT
ZIP
ZLIP
### Options ###
# edit /usr/local/etc/apache2/httpd.conf
# Line near 880
### AddType for PHP ###
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
### Ende ###
# cd /usr/local/etc
# cp php.ini-dist php.ini
# cd /var/db/pkg
# pkgdb -F
Cache Optimizer Install
# cd /usr/ports/www/turck-mmcache
# make install clean
# edit /usr/local/etc/php.ini
folgende Zeilen hinzufügen (577):
### Begin ###
[mmcache]
zend_extension="/usr/local/lib/php/20020429/mmcache.so"
mmcache.shm_size="16"
mmcache.cache_dir="/tmp"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"
mmcache.keys="shm_and_disk"
mmcache.sessions="shm_and_disk"
mmcache.content="shm_and_disk"
### Ende ###
cacti
#################################################
Perl 5.8 Install
# cd /usr/ports/lang/perl5.8
# make install clean
# use.perl port
zurück mit use.perl system
Mod_Perl2 Install
# cd /usr/ports/www/mod_perl2
# make install clean
# edit /usr/local/etc/apache2/httpd.conf
Bei Module folgedes hinzufügen:
LoadModule perl_module libexec/apache2/mod_perl.so
# apachectl restart
P5-DBI DBD:mysql INSTALL
# cd /usr/ports/databases/p5-DBD-mysql
# make install clean
shutdown -r now
######################################################
Webmin Install
# cd /usr/ports/sysutils/webmin
# make install clean
Setup:
# /usr/local/lib/webmin/setup.sh
# edit /etc/rc.conf
---> webmin_enable="YES"
Webmin über http upgraden
########################################################
Webalizer Install
# cd /usr/ports/german/webalizer2
# make install clean
########################################################
Openwebmail Install
# cd /usr/ports/mail/openwebmail
# make install clean
click all options except pop3-ssl
########################################################
PhpMyAdmin Install
# cd /usr/ports/databases/phpmyadmin
# make install clean
# edit /usr/local/etc/apache2/httpd.conf
Zeile 607
Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"
<Directory "/usr/local/www/phpMyAdmin">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# apachectl restart
### PhpMyAdmin konfigurieren für ISP http auth
# cd /usr/local/www/phpMyAdmin
# edit config.inc.php
PmaAbsoluteURI_DisableWarning = TRUE
Dann root-passwort (somepass1) einfügen
Mit PMA verbinden und folgenden SQL-Befehr ausführen
GRANT USAGE ON mysql.* TO 'pma-c-user'@'localhost' IDENTIFIED BY 'somepass3';
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma-c-user'@'localhost';
GRANT SELECT ON mysql.db TO 'pma-c-user'@'localhost';
GRANT SELECT ON mysql.host TO 'pma-c-user'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma-c-user'@'localhost';
# edit config.inc.php
in Methode config durch http ersetzen
user root löschen und pass löschen
darüber pma-c-user eintragen
darunter somepass3 eintragen
Neuen Benutzer anlegen
phpmy/www kein Verzeichnis (/nonexistent) keine Anmeldung
# cd /usr/local/www/phpMyAdmin
# chown phpmy *
# chgrp www *
# chmod 660 config.inc.php
Postfix User und Strukturen einfügen
Datenbank postfix anlegen
User postfix anlegen %
User postfix anlegen localhost
Rechte in Datenbank postfix:
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER
Strukturen einfügen:
### MYSQL Strukturen ###
#
# Tabellenstruktur für Tabelle `admin`
#
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`username` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`active` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`username`),
KEY `username` (`username`)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Admins';
#
# Tabellenstruktur für Tabelle `alias`
#
DROP TABLE IF EXISTS `alias`;
CREATE TABLE `alias` (
`address` varchar(255) NOT NULL default '',
`goto` text NOT NULL,
`domain` varchar(255) NOT NULL default '',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`active` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`address`),
KEY `address` (`address`)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Aliases';
#
# Tabellenstruktur für Tabelle `domain`
#
DROP TABLE IF EXISTS `domain`;
CREATE TABLE `domain` (
`domain` varchar(255) NOT NULL default '',
`description` varchar(255) NOT NULL default '',
`aliases` int(10) NOT NULL default '-1',
`mailboxes` int(10) NOT NULL default '-1',
`maxquota` int(10) NOT NULL default '-1',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`active` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`domain`),
KEY `domain` (`domain`)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains';
#
# Tabellenstruktur für Tabelle `domain_admins`
#
DROP TABLE IF EXISTS `domain_admins`;
CREATE TABLE `domain_admins` (
`username` varchar(255) NOT NULL default '',
`domain` varchar(255) NOT NULL default '',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`active` tinyint(4) NOT NULL default '1',
KEY `username` (`username`)
) TYPE=MyISAM COMMENT='Postfix Admin - Domain Admins';
#
# Tabellenstruktur für Tabelle `log`
#
DROP TABLE IF EXISTS `log`;
CREATE TABLE `log` (
`timestamp` datetime NOT NULL default '0000-00-00 00:00:00',
`username` varchar(255) NOT NULL default '',
`domain` varchar(255) NOT NULL default '',
`action` varchar(255) NOT NULL default '',
`data` varchar(255) NOT NULL default '',
KEY `timestamp` (`timestamp`)
) TYPE=MyISAM COMMENT='Postfix Admin - Log';
#
# Tabellenstruktur für Tabelle `mailbox`
#
DROP TABLE IF EXISTS `mailbox`;
CREATE TABLE `mailbox` (
`username` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`name` varchar(255) NOT NULL default '',
`maildir` varchar(255) NOT NULL default '',
`quota` int(10) NOT NULL default '-1',
`domain` varchar(255) NOT NULL default '',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`active` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`username`),
KEY `username` (`username`)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes';
#
# Tabellenstruktur für Tabelle `vacation`
#
DROP TABLE IF EXISTS `vacation`;
CREATE TABLE `vacation` (
`email` varchar(255) NOT NULL default '',
`subject` varchar(255) NOT NULL default '',
`body` text NOT NULL,
`cache` text NOT NULL,
`domain` varchar(255) NOT NULL default '',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`active` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`email`),
KEY `email` (`email`)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation';
### ENDE Stukturen ###
### Strukturen für ProFTPd ###
### Create database
CREATE DATABASE ftp;
### Create a ftp user
# ftpuser = your ftp mysql user
# ftppassword = password for your ftp mysql user
GRANT ALL PRIVILEGES ON ftp.* TO proftpd@localhost IDENTIFIED BY 'password';
SET PASSWORD FOR proftpd@localhost = PASSWORD('somepass2');
use ftp;
### Table for all users
CREATE TABLE users (
username VARCHAR(15) NOT NULL,
passwd VARCHAR(15) NOT NULL,
fullname VARCHAR(60) NULL,
valid SMALLINT DEFAULT 0,
count INT DEFAULT 0,
lastlogin DATETIME,
homedir VARCHAR(100) NULL,
email VARCHAR(100) NULL,
frate TINYINT(4) NOT NULL default '0',
fcred TINYINT(4) NOT NULL default '0',
brate TINYINT(4) NOT NULL default '0',
bcred INT(20) NOT NULL default '0',
fstor INT(20) NOT NULL default '0',
fretr INT(20) NOT NULL default '0',
bstor BIGINT(64) NOT NULL default '0',
bretr BIGINT(64) NOT NULL default '0',
PRIMARY KEY(username)
);
## Table for all groups
CREATE TABLE groups (
id INT PRIMARY KEY auto_increment,
groupname VARCHAR(15) NOT NULL,
username VARCHAR(15) NOT NULL
);
## Table for list of available groups
CREATE TABLE listgroups (
id INT PRIMARY KEY auto_increment,
groupname VARCHAR(15) NOT NULL,
description VARCHAR(255) NULL
);
### Table for transferhistory
CREATE TABLE history (
id INT PRIMARY KEY auto_increment,
username VARCHAR(15),
filename VARCHAR(100),
transfertype VARCHAR(10),
transfersize INT,
transferhost VARCHAR(30),
transfertime VARCHAR(20),
transferdate DATETIME
);
### Table for user events
CREATE TABLE userevents (
id INT PRIMARY KEY auto_increment,
username VARCHAR(15),
eventtype VARCHAR(10),
description VARCHAR(255),
eventdate DATETIME
);
#######################################################################