Home
MPD - Music Player Daemon

Tipps und Trick rund um Free-BSD:


Inhalt:
System - Make konfigurieren
System - nvi Meldungen
System - Uhrzeit stellen
Shell - Login unterdruecken
Shell - Beim Logout den Bildschirm zu loeschen
Ports - Alle Ports aktualisieren
06.2020 - Konfiguration von FreeBSD als Server, der imap, pop3, smtp, ftp und http mit virtuellen Domains unterstützt:
09.2019 - Konfiguration von FreeBSD als Server, der imap, pop3, smtp, ftp und http mit virtuellen Domains unterstützt:

make mit zusätzlichen Angaben installieren lassen:
make -DCONFIGURE_ARGS=--with-option3 -DOPTION2 install clean

Überprüfe die Dateien /usr/share/examples/etc/make.conf und /etc/make.conf.
Die erste enthält Vorgabewerte, von denen die meisten auskommentiert sind.



Login Copyrights unterdruecken:
eine Datei namens .hushlogin im userdir ablegen, siehe 'man login'



nvi meldet, das dateien mit vi -r dateiname.hash wiederhergestellt werden koennen,
somit hatte vi noch offene Dateien, z.B. beim reboot:

Benachrichtigungen werden beendet, wenn die (nicht mehr notwendigen) Dateien
in /var/tmp/vi.recover geloescht werden.



gesamtes System einschliesslich aller Ports aktualisieren:

portsnap fetch update
portupgrade -a
portmanager -u
portsclean -C
portsclean -D

Tipp:
portupgrade -arR = alle installierten Ports mit Abhängigkeiten rekursiv ab- und aufwärts aktualisieren.

portmanager -u -f = alle installierten Ports neu bauen



Ports suchen
entweder mit:
'cd /usr/ports'
'make search name=suchbegriff'

oder:
'whereis suchbegriff'




Systemzeit auf aktuelle Uhrzeit stellen
'date HHMM'
HH = Stunden, 24h format
MM = Minuten




DCF77 Empfaenger (SURE Seriell) mit ntpd
'cd /usr/ports/net/ntp-devel'
'make install'
ntp-devel installieren, weil die refclock Unterstuetzung bereits enthalten ist.







Konfiguration von FreeBSD als Server, der imap, pop3, smtp, ftp und http mit virtuellen Domains unterstützt:
Installiert werden apache24, pure-ftpd, cyrus-imapd-3, postfix 2.5, cyrus-sasl2, mysql8, Spamassassin mit Amavisd und anderes.
Diese Anleitung ist für:
- FreeBSD 12.1-Release amd64 vt (06.2020, tb)

Rootpasswort auf defaults bei Mysql 8.xx setzen:
Verbinde mit Mysql-Server mit dem Schlüsseleintrag in /usr/local/etc/mysql/my.cnf
skip-grant-tables
Dann eine Shell oeffnen, und auf /usr/local/bin gehen

shell> mysql
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> quit
Wieder auf /usr/local/etc/mysql/my.cnf gehen, und das Schluesselwort 'skip-grant-tables' deaktivieren.



Konfiguration von FreeBSD als Server, der imap, pop3, smtp, ftp und http mit virtuellen Domains unterstützt:
Installiert werden apache22, pure-ftpd, cyrus-imapd-2.3, postfix 2.4, cyrus-sasl2, mysql5, Spamassassin mit Amavisd und anderes.
Diese Anleitung ist für:
- FreeBSD 6.2 auf i386.
- FreeBSD 7.0-Release i386 (04.2008, tb)
- FreeBSD 8.2-Release i386 (01.2011, tb)
- FreeBSD 8.2-Release i386 (10.2011, tb)
- FreeBSD 8.4-Release i386 (04.2014, tb)
- FreeBsd 10.0-Release amd64 (06.2014, tb)
- FreeBSD 11.0-Current amd64 vt (06.2014, tb)
- FreeBSD 12.0-Release amd64 vt (09.2019, tb)

Wenn Du nicht weisst, wofuer Du dies brauchst, vergiss diese Seite. Ansonsten viel Spass.



Schritt 0:
Das Basissystem ist via Sysinstall [Installation minimal] bereits angelegt worden, womit als erstes ein paar Anpassungen vorgenommen werden muessen.
Die Netzwerkverbindung ist hergestellt.
Seit FreeBSD 9 und folgende Versionen gilt:
Das Basissystem ist via bsdinstall bereits angelegt worden, womit als erstes ein paar Anpassungen vorgenommen werden muessen.
Die Netzwerkverbindung mussbereits hergestellt sein.

Insofern sich die Console unter ver FreeBSD VideoTerminal (FreeBSDXXvt) nicht instllieren lässt,
german.iso.kbd meldet beim booten 'not found': 'cp -R /usr/share/syscons /usr/share/vt'
Grund: in Current sind die locales noch nicht in die Archive mitkopiert worden.



Schritt 1:
Vorbereitung des Systemes zum arbeiten.

Die Ports aktualisieren:

FreeBSD bis 8.xx:
portsnap fetch
portsnap extract
portsnap update

FreeBSD ab 9.xx:
portsnap fetch
portsnap extract
portsnap update
Gegebenfalls noch ./pkg2ng ausführen, somit wird der Portsbaum in die aktuelle Indexdatei (sql-Lite) ¨berführt.
Zu empfehlen ist es, sich jetzt eine Kanne frischen Kaffee aufzubrühen. Obiges kann, je nach verwendetem Rechner schon mal gut 30 Minuten dauern.
Alternativ ist ein Blick ins FreeBsd Handbuch möglich. ;-)

Damit ist der Portsbaum aktuell.

Komfortabler ist portupgrade, also installieren wir auch diesen.
cd /usr/ports/ports-mgmt/portupgrade
make install clean
Portupgrade installiert die pkg-tools. Dort enthalten ist das Tool pkgdb. Wird 'pkgdb -L' aufgerufen, kannst Du die Paketabhängigkeiten anzeigen und überprüfen lassen.
Mit 'pkg_version -v' kannst Du Dir die installierten Versionen anzeigen lassen.

Ein weiteres maechtiges Werkzeug ist Portmanager.
cd /usr/ports/ports-mgmt/portmanager
make install clean

Portmanager installiert Ports unter Berücksichtigung aller Abhängigkeiten, installiert Updates und vieles mehr.
unter Freebsd-Handbuch - ports benutzen oder 'man portmanager' findest Du zu portmanager weitere Informationen.

Um mit Verzeichnissen und Dateien zu arbeiten, nehme ich gern den Midnight Commander.
Installation via portsbaum:
whereis mc-light
cd /usr/ports/misc/mc-light
Das orginale Paket unter /misc/mc ergibt nur Fehler, weil screen fehlt.
Um die N-commander Farben zu bekommen:
in /root/.cshrc eintragen:
'alias mc mc -Y'

Um das 'highlight' im internem Editor abzuschalten:
cd /root/.mc
in der Datei 'ini' aendern:
editor_syntax_highlight=0

Um auch gleich den bekannten clear-Befehl abzukuerzen:
'alias cls clear'

Sollten sich Fehler bei der Erstellung einschleichen, was hin und wieder bei dem
Portsbaum vorkommt, kann auch das Paket installiert werden:
'cd /usr/ports'
'pkg install misc/mc-light'

Soweit sogut. Das Basissystem steht soweit.
Ich persoenlich setze immer ein
'touch .hushlogin'
in meine userdir wie bofh oder root, aber das mag man halten wie man will.

Fragen? Ja? Antwort: rtfm f'up Handbuch. ;-)



Schritt 2:
Um das System zu bauen, und um die Ports zu installieren folgendes eintragen:
/etc/make.conf:

#--- generelle Flags
WITHOUT_X11=yes
NO_GUI=yes
WITH_MYSQL=yes
WANT_GNOME=no
#--- mysql ---
BUILD_OPTIMIZED=yes
#--- CUPS mit einkompilieren
CUPS_OVERWRITE_BASE=yes
NO_LPR=yes
WITH_CUPS=yes

Nun geht es an die Serverprogramme.



Samba (smb-sharing) installieren:

portmanager /net/samba3
Die derzeitig via portinstall verwendete Version Perl 5.16 ist fehlerhaft
und bricht beim kompilieren ab. 06.2014 FreeBsd 10.0
Vorab perl5.18 instllieren:
cd /usr/ports/lang/perl5.18
make config
make install clean

Die '/usr/local/etc/smb.conf' den eigenen Erfordernissen anpassen.

Samba beim booten starten:
'/etc/rc.conf' samba_enable="YES"
Dann die Passwoerter für die Systemuser setzen:
smbpasswd -a username (add)
password: 'password'
Die Passwörter fuer die nsmb.conf müssen verschlüsselt werden:
echo smbutil crypt password >> pass.txt
Damit können dann die fernen Shares automatisch beim booten via fstab gemountet werden.



Mysql55 installieren:
portmanager /databases/mysql55-server

Um Mysql5 beim starten zu laden:
echo 'mysql_enable ="YES"' >> /etc/rc.conf
echo 'mysql_dbdir="/usr/local/etc/mysql/db"' >> /etc/rc.conf
Damit werden die korrekten Verzeichnisse definiert.
Ich verlege die Datenbankverzeichnisse nach /usr weil FreeBSD ein recht kleines /var anlegt.

um mysql manuell zu starten:
/usr/local/etc/rc.d/mysql-server start
Das Script legt dann automatisch die Tabellen an.
mysql_install_db ist nicht mehr notwendig. :-)

07.05.2011 Update: Offensichtlich wurde ein Bug noch nicht behoben.
Fehler:
"mysql_install_db --user=mysql"
"FATAL ERROR: Could not find ./bin/my_print_defaults"
Lösung:
mysql_install_db --user=mysql --basedir=/usr/local

abschliessend bei laufendem Mysql-Server:
/usr/local/bin/mysqladmin -u root password 'new-password'

Bei folgenden Fehlermeldungen:
- can't find ./mysql/host.frm [...]Err:13
- /usr/local/etc/mysql/db/xxxx.err: Permission denied

'cd /usr/local/etc/mysql/db/'
'chown -R mysql:mysql mysql'

Grund:mysql_install_db 'vergisst' die Userrechte zu setzten.

Abschliessend installieren wir noch die mysql-script Sammlung:
'portmanager /databases/mysql55-scripts'

Ist mysql gestartet, gibt 'netstat -an |grep LISTEN' auskunft, ob mysl auch laeuft.

Damit die Logdateien auch in /var/log/mysql landen:
'touch /etc/my.cnf'
'nano /etc/my.cnf'
Untenstehendes eintragen:

[safe_mysqld]
err-log=/var/log/mysql/err.log
[mysqld]
log=/var/log/mysql/log.log
log-update=/var/log/mysql/update.log

'cd /etc'
'chown mysql:mysql my.cnf'
'chmod 644 my.cnf'

Nun noch das Logverzeichnis erstellen:
'cd /var/log'
'mkdir mysql'
'chown -R mysql:mysql mysql'

abschliessend mysql neu starten:
'/usr/local/etc/rc.d/mysql-server restart'

[ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade. Plesk is not accessible with the following error message in a browser: ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory Additionally, an exception has occurred while trying to report this error: Zend_Exception No entry is registered for key 'translate' (Abstract.php:144) Cause MySQL 5.1 has been upgraded to 5.5 without running the "mysql_upgrade" command. Resolution Connect to the Plesk server via SSH. Add the "skip-grant-tables" record to log in to MySQL: 2.1. Open MySQL configuration file /etc/my.cnf in a text editor. In this example we use the vi editor: vi /etc/my.cnf 2.2. Add "skip-grant-tables" on a new line under the [mysqld] section: [mysqld] skip-grant-tables <...> 2.3. Save the changes and close the file. Start MySQL: service mysqld start OR service mysql start Complete the MySQL upgrade: mysql_upgrade Remove the line with "skip-grant-tables" from the /etc/my.cnf file. Restart MySQL:

Webmin installieren:
Erstmal prüfen ob /databases/p5-DBD-mysql52 installiert ist.
'pkg_version -v | grep DBD'

Also dann: portmanager /sysutils/webmin

webmin konfigurieren:
Mit 'rehash' env aktualisieren,
'/usr/local/lib/webmin/setup.sh'
Webmin beim booten starten:
/etc/rc.conf
webmin_enable="YES"

Fuer das Webmin-Modul cyrus-imapd sind zusaetzliche perl-module erforderlich:
'portmanager /www/p5-HTML-Parser'


Nun erstmal ein paar kleinere und wichtige Programme installieren.
Der Server soll ja sichere Daten ausliefern:

Clamav installieren:
'whereis clamav'
cd '/usr/ports/security/clamav'
Parameter von 'make config':
[x] ARC
[x] ARJ
[x] LHA
[x] UNZOO
[x] UNRAR
[x] LLVM
[x] TESTS
[ ] MILTER
[ ] LDAP
[ ] ICONV
[ ] STDERR
[ ] EXPERIMENTAL

'make install clean'

Die Konfiguration erfolgt unten, weil amavisd-new noch mit installiert werden muss.




Amavisd-New installieren:
'cd /usr/ports/security/amavisd-new'
'make config'
[x] IPV6
[x] BDB
[ ] SNMP
[ ] SQLITE
[x]*MYSQL
[ ] PGSQL
[ ] LDAP
[x]*SASL
[ ]*MILTER
[x] SPAMASSASSIN
[ ] POF
[ ] ALTERMIME
[x] FILE
[ ] RAR
[x] UNRAR
[x] ARJ
[ ] UNARJ
[x] LHA
[x] ARC
[ ] NOMARCH
[x] CAB
[x] RPM
[x] ZOO
[ ] UNZOO
[x] LZPOP
[x] FREEZE
[x] P7ZIP
[x] MSWORD
[ ] TNEF

'make install clean'

Erstmal werden noch einige Perlmodule nach installiert.
Es ist empfehlenswert, ab und zu mal einen Blick auf die Konsole zu werfen, weil ein paar Module bestätigt werden müssen.

Da später FuzzyOcr zusätzlich die Grafiken via Spamassassin kontrollieren soll, muss das CPAN-Perl Modul
p5_string_approx und p5-Tie-Cache per Hand installiert werden.
'whereis p5-String-Approx'
'cd /usr/ports/devel/p5-String-Approx'
'make install clean'
'whereis p5-Tie-Cache'
'cd /usr/ports/devel/p5-Tie-Cache'
'make install clean'
Um später FuzzyOcr-Devel als Modul in Spamassassin zu aktivieren, muss dieses Tool natürlich auch installiert werden.
whereis p5-FuzzyOcr-devel
cd /usr/ports/mail/p5-FuzzyOcr-devel
make install clean

FuzzyOcr analysiert die kleineren Grafiken in den Mails, sodass auch Grafik-Spam gefiltert werden kann.
Zum Einrichten die Dateien von FuzzyOcr aus in das SpamAssassin-Verzeichnis kopieren:
cp '/usr/local/share/examples/FuzzyOcr/* /usr/local/etc/mail/spamassassin/.

Fehler nach der Installation:
Beim Fehler im Log:
WARNING: lstat() failed on: /var/amavis/tmp/amavis
zusätzlich in die sekundäre Gruppe von clamd (gruppe vscan) mit eintragen

Fehler in maillog:
amavis[1133]: _WARN: config: path "/usr/local/etc/mail/spamassassin" is inaccessible: Permission denied

Loesung:
1. - clamd und amavisd zur Gruppe 'vscan' zufügen
2. - Berechtigung von /usr/local/mail auf chmod 666 setzen

Fehler im maillog:
Insofern die Fehlermeldung bei 'spamassassin --lint' lautet:
'SA warn: FuzzyOcr: Cannot find executable for tesseract'
noch tesseract installieren. 'cd /usr/ports/graphics/tesseract'
'make install clean'



pure-Ftpd installieren
whereis pure-ftpd
cd /usr/ports/ftp/pure-ftpd
make config
[x] MYSQL
[x] PAM
[x] peruserlimits
[x] throttling
[x] banner
[x] utf8
[ ] sendfile

sendfile nicht mit einkompilieren, weil sonst die smbfs-Zugriffe nicht funktionieren.

pure-ftpd ist ein klein wenig anders in der Konfiguration. gestartet wird pure-ftpd ueber ein Script: '/usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf' Da die User aber gegen eine Mysql-Datenbank authentifiziert werden sollen, ist erstmal ein klein wenig Vorarbeit notwendig.
Es sind die beiden Konfigurationsdateien /usr/local/etc/pureftp.conf und /usr/local/etc/pureftp-mysql,conf anzupassen.

pureftp-mysql.conf:

MYSQLServer 127.0.0.1
MYSQLPort 3306
MYSQLSocket /tmp/mysql.sock
MYSQLUser user_zum_verbinden_mit_mysql
MYSQLPassword userpasswort_zum_verbinden_mit_mysql
MYSQLDatabase Datenbank_in_der_die_Tabelle_steht
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "md5" *and* "password"
MYSQLCrypt md5
MYSQLGetPW SELECT password FROM ftp_user WHERE username="\L" AND status="1"
MYSQLGetUID SELECT uid FROM ftp_user WHERE username="\L" AND status="1"
MYSQLGetGID SELECT gid FROM ftp_user WHERE username="\L" AND status="1"
MYSQLGetDir SELECT homedir FROM ftp_user WHERE username="\L" AND status="1"

in /usr/local/etc/pure-ftpd.conf sind diese Zeilen zu ändern:

# MySQL configuration file (see README.MySQL)
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf
# PureDB user database (see README.Virtual-Users)
# nicht mehr aktiv, alle FTP-User nur noch in Mysql-DB 3.2011 tb
# PureDB /usr/local/etc/pureftpd.pdb

abschliessend können die ftp-user einfach und übersichtlich in der Tabelle ftp_user eingetragen werden.
hier der Dump der Tabelle:

DROP TABLE IF EXISTS `ftp_user`;
CREATE TABLE IF NOT EXISTS `ftp_user` (
`username` varchar(60) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
`uid` int(11) DEFAULT NULL,
`gid` int(11) DEFAULT NULL,
`password` varchar(30) DEFAULT NULL,
`homedir` varchar(250) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
`ui` bigint(20) NOT NULL AUTO_INCREMENT,
`shell` varchar(60) DEFAULT NULL,
`letzter_zugriff` datetime DEFAULT NULL,
`status` char(1) DEFAULT NULL,
PRIMARY KEY (`ui`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=1 AUTO_INCREMENT=2 ;

INSERT INTO `ftp_user` (`username`, `uid`, `gid`, `password`, `homedir`, `count`, `ui`, `shell`, `letzter_zugriff`, `status`)
VALUES ('testuser', 1001, 14, md5'testpasswort', '/usr/home/testuser', 2, 1, NULL, NULL, '1');

Tipp:
In das entsprechende Homeverzeichnis einen Symlink auf den Datenzugriff auf den lokalen, smbfs oder nfs shares legen,
damit wird zwar in gewisser Weise deren chroot-Umgebung ausgehebelt,
aber da die symlinks nur lesend angelegt werden, und keine anonymen User zugelassen werden, ist die Gefahr entsprechend gering.



Postfix installieren:
'portmanager /mail/postfix-current'
Postfix kompilieren mit:
[x] mysql
[x] sasl2
[x] pcre
[x] ssl/tls

Die Frage:
Would you activate postfix in mailer.conf [n] mit 'yes' beantworten.
Damit wird die mailer.conf angepasst, sodass postfix als 'default-mta' im System läuft.

Erstmal, um die Fehlermeldungen zu umgehen, mal eine aliases.db bauen:
'cd /etc'
'newaliases'

Trage in /etc/rc.conf ein:
'sendmail="none"'
Da Postfix als default mta im System laeuft, ist 'postfix_enable="YES"
nicht erforderlich.

Bei der Fehlermeldung:
'... postfix/smtpd[xxx]: sql_select option missing'
kopiere /usr/local/lib/sasl2/Sendmail.conf nach /usr/local/lib/sasl2/smtpd.conf

Bei dem Fehler:
status=bounced (mail forwarding loop for ******
in /etc/aliases verweise auf lokale accounts kontrollieren, ggf auskommentieren.
danach den Befehl 'newaliases' eingeben.



cyrus-sasl2-saslauthd installieren:
Damit wird cyrus-sasl2 auch gleich mit installiert.
portmanager /security/cyrus-sasl2-saslauthd
saslauthd nicht automatisch starten.
Dieser Dienst ist nicht notwendig.

ab cyrus-sasl2.1.22 ist der notwendige crypt patch bereits enthalten!

Die Konfigurationsdatei versteckt sich unter:
/usr/local/lib/sasl2/sendmail.conf

pwcheck_method: auxprop
mech_list: PLAIN LOGIN
auxprop_plugin: sql
srp_mda: md5
password_format: crypt
sql_engine: mysql
sql_hostnames: localhost
sql_database: postfix
sql_user: XXXXXXXXX
sql_passwd: XXXXXXXXX
sql_verbose: yes
sql_select: SELECT password FROM mailbox WHERE username = '%u@%r'

Mit 'testsaslauthd -u user -p password' kannst du die Verbindung testen.
Erfolgt ein '0: OK "Success." arbeitet saslauthd wie gewuenscht.



cyrus-imapd23 installieren:

Mit 'make config' [X]db41 markieren
'portmanager /mail/cyrus-imapd23'

Da die /etc/passwd als zentrale Benutzerdatenbank herhält,
sollte dem Benutzer “cyrus”
(wurde automatisch vom CyrusIMAP-Port angelegt) ein Passwort vergeben werden,
da dieser auch unser zukünftiger Admin sein soll.
Also bitte:
#> passwd cyrus
Und zweimal das neue Passwort bestätigen.

Die Konfiguration für Cyrus anlegen: '/usr/local/cyrus/bin/mkimap '
Ohne mkimap werden die notwendigen Verzeichnisse nicht angelegt.
Imapd beim booten starten: rc.conf: cyrus_imapd_enable="YES"

Damit man bei jedem portupdate nicht die gepatchten Dateien wieder neu erstellen muss sperren wir cyrus-imapd in der portdatenbank:

'cd /var/db/pkg/cyrus-imapd-2.3.8_1'
'touch +IGNOREME'
'pkgdb -fu'

Alternativ kann man auch /usr/local/etc/pkgtools.conf das Array HOLD_PKGS setzen.

In /usr/local/etc/imapd.conf eintragen:
#
configdirectory: /usr/local/imap
partition-default: /usr/local/imap/spool
unixhierarchysep: yes
servername: localhost
admins: cyrus
autocreatequota: 2048000 # 200MB
sieveusehomedir: false
sievedir: /usr/local/imap/sieve
sasl_pwcheck_method: auxprop
tls_cert_file: /usr/local/imap/cyrus.pem
tls_key_file: /usr/local/imap/cyrus.pem
tls_ca_file: /usr/local/imap/cyrus.pem
tlscache_db: berkeley-nosync
lmtpsocket: /usr/local/imap/socket/lmtp
idlesocket: /usr/local/imap/socket/idle
notifysocket: /usr/local/imap/socket/notify
virtdomains: yes
defaultdomain: domain.de
allowusermoves: yes
allowplaintext: yes
sasl_auxprop_plugin: sql
sasl_sql_user: sqluser
sasl_sql_passwd: ''password''
sasl_sql_database: postfix
sasl_sql_hostnames: localhost
sasl_sql_select: SELECT password FROM mailbox WHERE username='%u@%r' AND active='1'
sasl_sql_verbose: yes
sasl_sql_engine: mysql
sasl_mech_list: plain login
sasl_password_format: crypt
createonpost: yes
autocreateinboxfolders: spam
autosubscribeinboxfolders: spam
autocreate_sieve_script: /usr/local/imap/phpscript
autocreate_sieve_compiledscript: /usr/local/imap/phpscript.bc
generate_compiled_sieve_script: yes
# EOF

In /usr/local/etc/cyrus.conf aendern:
lmtpunix cmd="lmtpd" listen="/usr/local/imap/socket/lmtp" prefork=0
notify cmd="notifyd" listen="/usr/local/imap/socket/notify" proto="udp" prefork=1


Nun die Verzeichnisse nach der obigen imapd.conf anlegen:
'cd /usr/local'
'mkdir imap'
'cd imap'
'mkdir proc'
'mkdir db'
'mkdir log'
'mkdir msg'
'mkdir ptclient'
'mkdir sieve'
'mkdir socket'
'mkdir spool'
'mkdir sync'
'cd..'
'chown -R cyrus:cyrus imap'
'chmod -R 755 imap'


Das Zertifikat fuer TLS anlegen:
openssl req -new -x509 -nodes -out /usr/local/imap/cyrus.pem -keyout /usr/local/imap/cyrus.pem -days 365


Die Konfiguration anlegen: '/usr/local/cyrus/bin/mkimap'
Imapd beim booten starten: rc.conf: cyrus_imapd_enable="YES"

/usr/local/cyrus/bin/reconstruct -r -f user.username
oder
/usr/local/cyrus/bin/reconstruct -r -f user/username@host.domain.name
starten, wenn die Mailbox-db defekt ist.

Test des imapd:

'/usr/local/sbin/sasldblistusers2' zeigt keine User an? Wenn doch dann '/usr/local/sbin/saslpasswd2 -d username@host.domain.name'
Die Authentifizierung erfolgt in meiner Konfiguration _nur_ ueber die mysql Datenbank.

Fehlermeldung: 'perl: No worthy mechs found'
Ist die Datenbank und Tabelle angelegt?
Kann der angegebene User in '/usr/local/etc/imapd.conf' unter sasl_sql_user auch wirklich auf die db zugreifen?

ImapClient oder pop3 client meldet: 'ERR/SYS no maildrop found'
Die Mailbox muss mit 'cyradm -u adminuser localhost' angelegt werden.
Kein Zugriff auf 'cyradm'?
Fehlermeldung: 'cyradm: cannot authenticate to server'
(1) Sind die notwendigen Perl-module (p5-DBD und p5-DBI) installiert? ('pkg_version -v | grep p5') (2) Ist in der imapd.conf unter 'admins' der Adminuser eingetragen?
(3) Ist in der Datenbank der adminuser als 'adminuser@localhost' eingetragen?
Der adminuser _muss_ in meiner Konfiguration die Domaene '@localhost' tragen.
(4) Stimmt die Namensaufloesung, ist der Servername aus imapd.conf in Bind/Hosts/DNS eingetragen?

Fehlermeldung: 'pop3[823]: [pop3d] STARTTLS failed:'
Die Zeile tls_ca_file: /path/file.pem fehlt.
Dies kann beim Update von cyrus passieren!

Fehlermeldung: 'ERR: USER command only available under a layer'
In '/usr/local/etc/imapd.conf' die Zeile:
allowplaintext: yes
eintragen.


Wichtig:
AutocreatePatch nicht! benutzen. Laesst sich nicht kompilieren, auch nicht, wenn alle make-files angepasst sind.


Um die Mailboxen zu erstellen:
'cyradm -u root localhost'
'cm user/foo@fqdn.name'

um eine Mailbox zu löschen:
'cyradm -u root localhost'
'lm' #listet alle Mailboxen auf
'sam user/foo@fqdn.name root all' # setzt die rechte auf all
'dm user/foo@fqdn.name' # loescht die Mailbox


Fehlerbehebung:
'tls_prune[xxxx]: DBERROR: opening /usr/local/imap/tls_sessions.db: cyrusdb error'
Dann:
touch /usr/local/imap/tls_sessions.db
chmod 644
chown cyrus cyrus

Insofern tls_prune in Intervallen immernoch Fehlermeldungen anzeigt, überprüfe, ob in der
'/usr/local/etc/imap.conf'
folgendes eingetragen ist:
imap.conf.orginal:
# The cyrusdb backend to use for the TLS cache.
# Allowed values: berkeley, berkeley-nosync, skiplist
#
tlscache_db: skiplist

Um DRAC fuer cyrus zu installieren:

In der "/etc/hosts.allow":

rpcbind : localhost : allow
rpcbind : 192.168.0.0/255.255.255.0 : allow
rpcbind : ALL : deny



Update 11.2011:
Tipp:
Fehlerbeschreibung: Zugriff auf via Samba von Win 7 aus ist sehr langsam
Lösung: unter Win7 ff -> secpol.msc -> lokale Richtlinie -> Netzwerksicherheit LAN-Manager Authentifizierungsebene
ändern von 'undefiniert' zu 'LM NTLM Antworten senden (NTLMv2 Sicherheitsanforderung verwenden wenn angefordert)

Erklärung: LM- und NTLM-Antworten senden (NTLMv2-Sitzungssicherheit verwenden, wenn ausgehandelt):
Von Clients werden LM- und NTLM-Authentifizierung sowie NTLMv2-Sitzungssicherheit verwendet, wenn diese vom Server unterstützt wird;
von Domänencontrollern werden LM-, NTLM- und NTLMv2-Authentifizierung akzeptiert.




Apache2 mit php5 und php5-extensions installieren:

Um Apache22 beim starten zu laden:
echo 'apache22_enable ="YES"' >> /etc/ rc.conf

php-extensions sind notwendig, um zb die gd-lib und mysql-Unterstützung zu erhalten.
whereis php5-extensions
cd /usr/ports/lang/php5-extensions
make config
make install clean
Achtung: Nur imap _oder_ record installieren, alles andere gibt eine Seg-Fault.

whereis php5
cd /usr/ports/lang/php5
make config
make install


Nun *.php in /usr/etc/apache/httpd.conf oben eintragen:
LoadModule php5_module libexec/apache22/libphp5.so

Im Abschnitt 'ifmodule mime_module' eintragen:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


Fehlerbehandlung:
Apache22 meldet: 'Failed to enable the 'httpready' Accept Filter
Um das BSD-Kernelmodule permanent zu laden (accf_http), in /boot/loader.conf:
accf_http_load="YES"

imagecreatefrompng/jpg/gif liefert kein captcha:
Alter Fehler in der Installation der php5-extensions, unter
'/usr/local/etc/php/extensions.ini' die Zeile
'extension=gd.so' als erste Zeile in der Datei eintragen.



eAccellerator installieren:
Damit php5-seiten zwischengespeichert werden koennen:
/usr/ports/www/eaccellerator
make config
make install

in '/usr/local/etc/php.ini' eintragen:

zend_extension="/usr/local/lib/php/20060613/eaccelerator.so"
eaccelerator.shm_size="0"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"



- amavis - Mails aus /virusmails versenden:
amavis-release mail-id [secure-id [receipient, recipient]




spamassassin mit den rules via channel versehen:
sa-update --channel 70_zmi_german.cf.zmi.sa-update.dostech.net -D --nogpg



lokale Blacklist in Postfix realisieren:

Erstmal ein kleines Script:
-- /root/addblacklist_ip --
#!/bin/sh
# IP mit reject wird an die client_access angehaengt.
echo -e "$1\tREJECT">> /usr/local/etc/postfix/client_access
postmap /usr/local/etc/postfix/client_access
-- /root/addblacklist_ip --

rehash (Umgebung neu laden)

in /usr/local/etc/postfix/main.cf einfuegen:
smtpd_client_restrictions = check_client_access hash:/usr/local/etc/postfix/client_access

abschliessend natuerlich postfix reload.
Somit koennen mit dem Befehl "addblacklist_ip x.x.x.x" die unerwünschten IPs gesperrt werden.



ntpdate stuendlich in den Cron einfuegen:
/usr/sbin/ntpdate -v ptbtime1.ptb.de >> /var/log/ntpdate.log
wie in den cron eintragen? >> Handbuch Cron
oder halt 'crontab -e' ;-)



Diverses:

Um beim Logout den Bildschirm zu loeschen und gleichzeitig die scrollback history:

In '/etc/gettytab' den Absatz 'P|Pc|Pc console' wie unten aendern:

P|Pc|Pc console:\
:ht:np:sp#115200:\
:cl=\E[H\E[2J:




um die lokale mail von lokalen accounts weiterzuleiten:
man forward

cd /root
touch .forward
in .forward dann:
8of9.domain.de
(Beispiel!)
Damit wird alles von root an 8of9.domain.de weitergeleitet!




CUPS installieren

Zuerst in /etc/make.conf zufügen:
CUPS_OVERWRITE_BASE=yes # Bei der Installation von CUPS sollen die Betriebssystem-lpr-Dateien deaktiviert werden
NO_LPR=yes # Bei einem "make world" sollen die Betriebssystem-lpr-Dateien nicht erstellt werden.
WITH_CUPS=yes # Aktiviert die CUPS-Unterstützung von aus den Ports installierten Programmen

In /etc/rc.conf muss folgende Zeile stehen:
lpd_enable="NO" # Der Betriebssystem-eigene Druckdienst lpr ist ausgeschaltet.
cupd_enable="YES" # Cupsd beim starten automatisch mit starten
devfs_system_ruleset="system" # Ruleset um Cups den Zugriff auf die Schnittstellen zu erlauben


Abfolgend Cups installieren:
'whereis cups'
'cd /usr/ports/print/cups'
portinstall cups

Achtung: cups-base nicht mit libusb compilieren. FreeBSD 8.2 verwaltet die ports via Kernel, nicht wie Linux!
Compilierst Du libusb mit in cups ein, werden später die Drucker via ulptX nicht ansprechbar sein!

Foomatic-Filters wandeln die US-Formate in die Deutschen Formate um.
Abschliessend noch die foomatic-filters installieren:
'cd /usr/ports/print/foomatic-filters'
'make config'
'make install'

Ändern in /usr/local/etc/cups/cups.conf:

'#Listen localhost:631'
'Listen *:631 # Damit wird der zugriff von der Ferne freigegeben'

zudem in den acl zutragen:
Order allow,deny
Allow 192.168.0.0/24


Nun beginnt die Suche nach dem richtigen Druckertreiber, hier ein Brother 2040 PostScript 3 Drucker, verbunden via USB.
auf Volkers Webseiten habe ich diese ppd Datei gefunden:
http://www.profv.de/brother/

diese kopiere nach /usr/local/share/cups/model

Um cups den Zugriff auf die Schnittstellen zu erlauben erstmal das Regelset für devfs anlegen:

'cd /etc'
'touch devfs.rules'
in devfs.rules eintragen:
[system=10]
add path 'unlpt*' mode 0666 group cups
add path 'ulpt*' mode 0666 group cups
add path 'lpt*' mode 0666 group cups
add path 'ugen*' mode 0666 group cups
add path 'usb/X.Y.Z' mode 0666 group cups

ulpt erstellt einen symbolischen Link auf /dev/usb/x.x.x
also diesen entsprechend auslesen, natürlich bei angeschlossenem Drucker und erkanntem Drucker via ugen:
'cd /dev'
'ls -all'
dort kannst Du dann den symlink erkennen, und trägst die Schnittstelle ein.
ugen0.1 -> usb/0.1.0 (Beispiel)

devfs und cupsd neu starten:
#root: /etc/rc.d/devfs restart
#root: /usr/local/etc/rc.d/cupsd restart

Abschliessend über das Webinterface http://ip_des_servers:631 den Drucker suchen, und einrichten.
Achtung, unbedingt für USB den Treiber 'no-reset' verwenden. (Also den zweiten in der Liste.

Tipp_01:
Von der Brother Website:
Printing with Ghostscript driver(1)
The Ghostscript HL-1250 driver can be used by the following products to print.
Command : cat input.ps | gs -q -dNOPAUSE -sDEVICE=hl1250 -sOutputfile=- - | lpr
compatible products
FAX-2820 FAX-2920 DCP-7010 DCP-7020 DCP-7025
HL-1030 HL-1230 HL-1240 HL-1250 HL-1270N
HL-1430 HL-1435 HL-1440 HL-1450 HL-1470N
HL-1650 HL-1670N HL-1850 HL-1870N HL2030 HL-2040 HL-2070N
HL-5030 HL-5040 HL-5050 HL-5070N HL-5150D HL-5240 HL-5250DN HL-5270DN HL-5280DW
HL-6050 HL-6050D HL-6050DN HL-P2500
MFC-7220 MFC-7225N MFC-7420 MFC-7820N MFC-P2500

Tipp_02:
Sollte der Drucker nicht einen Piepser von sich geben, oder die Testseite ausdrucken, den Drucker mal komplett auschalten.
Aus unerfindlichen Gründen klemmte es bei mir beim Einrichten.



226124 Besucher haben diese Seite seit Jan.2002 bereits gesehen.
Dieses Dokument wurde zuletzt durch tb am 23.06.2020 um 23:42 CEST geaendert.