CUPS tanzt Samba

Natürlich ist es möglich, mit CUPS auf einem an einer MS Windows Maschine freigegeben Drucker Papier zu verschwenden.

Verwendet wurde Debian woody.
Samba sollte schon installiert und konfiguriert sein, aber das ist eine andere Geschichte.

# apt-get install cupsys cupsys-client cupsys-bsd cupsys-driver-gimpprint

Bei der Frage: ‘Do you want to set up the BSD lpd compatibility server’ antworte man mit ‘No’

# adduser blafasel lpadmin

Nun Verbinde man sich in einem Browser zu http://localhost:631

Manage Printers -> Add Printer -> root Passwort eingeben -> Daten nach Belieben eingeben -> Windows Printer via SAMBA -> smb://UserName:Passwort@Domäne/PrintServer/Drucker -> passenden Treiber auswählen

Nun nur noch den Drucker unter ‘Configure Printer’ dahingehend einstellen, dass u.a. das richtige Papierformat gewählt ist.

Nach einem erfolgreichen Ausdruck der CUPS Test-Seite ist es dann geschafft.

tar + split für gigabyte backups

Wenn man ein tar Archiv erzeugen will, welches 2047 Mbyte übersteigt, ist das Kommando split ein hilfreiches Werkzeug.
Die Befehlszeile ist dann auch vergleichsweise einfach:
cd /dst_dir
tar cvf – /src_dir | split -b 650m – prefixname-
Bei split -b kann man bis zu 2047m große Teile erzeugen.
Zum wiederherstellen des tar Archivs genügt ein:
cd /dir_in_welchem_die_einzelnen_teile_liegen
cat prefixname-* | tar xvf –
Viel Spaß beim BackUp erzeugen.

Fritz! Card A1, Hylafax und Linux 2.4.23

Ist ein bisschen tricky, aber funktioniert primstens

Verwendet wurde Debian woody.
Kernel kompilieren mit folgenden Parametern:

CONFIG_EXPERIMENTAL=y
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
CONFIG_ISDN_CAPI_CAPIFS=m
CONFIG_ISDN_CAPI_CAPIDRV=m

Die Fritz-Treiber von AVM für SUSE 8.2 besorgen und entpacken.
Im srv.drv Verzeichnis die Datei defs.h editieren und die Zeile 89 (typedef void irqreturn_t;) löschen.

# make && make install

Nun wird im Kernel-Modul-Verzeichnis unter misc der fritz!-Treiber erscheinen, meine Wenigkeit kopiert denselben nach ../kernel/drivers/isdn/fritz, passt einfach besser.
Mit ‘modconf’ den Treiber laden und mit ‘lsmod’ überprüfen, ob dieser geladen ist.

Als nächstes die CAPI-Unterstützung installieren und konfigurieren:

# apt-get install libcapi20 isdnactivecards
# touch /etc/isdn/noconfig
# vi /etc/isdn/capi.conf

In der capi.conf alles bis auf die Zeile mit ‘fcpci’ auskommentieren.

Und jetzt kommt Hylafax:

# ln -s /dev/capi20 /dev/faxCAPI
# chmod 666 /dev/faxCAPI
# apt-get install hylafax-server libstdc++2.9-glibc2.1 metamail
# vi /usr/sbin/faxsetup

Man ändere hier /usr/local/bin/gs auf /usr/bin/gs

# /usr/sbin/faxsetup

Oh je, capi4hylafax:

capi4hylafax gibts auch bei AVM, aber Finger weg vom install-Skript, welches nicht ganz i.o. ist, es könnte sein, dass dann die ‘/etc/inittab’ fehlt!

# cp /pfad/zu/capi4hylafax/bin/c2faxrecv /usr/local/bin/
# cp /pfad/zu/capi4hylafax/bin/c2faxsend /usr/local/bin/
# cp /pfad/zu/capi4hylafax/sample_AVMC4_config.faxCAPI /etc/hylafax/config.faxCAPI

Die Konfigurationsdatei anpassen:

# vi /etc/hylafax/config.faxCAPI

# vi /etc/hylafax/config

SendFaxCmd: /usr/local/bin/c2faxsend

# adduser uucp dialout
# faxaddmodem faxCAPI
# faxmodem faxCAPI
# faxadduser UserDerFaxt

init Konfigurieren, aufdass nach einem möglichen reboot alles noch funktioniert:

# vi /etc/init.d/hylafax

echo -n ” faxmodem”
/usr/sbin/faxmodem faxCAPI

Startskript für c2faxrecv:

# vi /etc/init.d/capi4hylafax

#! /bin/sh
#
# Start or stop c2faxrecv daemon
#

test -x /usr/local/bin/c2faxrecv || exit 0

run_capi4hylafax=0
if [ -f /etc/default/capi4hylafax ]; then
. /etc/default/capi4hylafax
fi

if [ $run_capi4hylafax = 0 ]; then
cat < EOF exit 0 fi C2FAXRECVPID=/var/run/c2faxrecv.pid case "$1" in start) echo -n "Starting capi4hylafax: c2faxrev" start-stop-daemon --start --quiet --background --make-pidfile --pidfile $C2FAXRECVPID --exec /usr/local/bin/c2faxrecv -- -C /etc/hylafax/config.faxCAPI echo "." ;; stop) echo -n "Stopping capi4hylafax: c2faxrev" start-stop-daemon --stop --quiet --pidfile $C2FAXRECVPID rm -f $C2FAXRECVPID echo "." ;; restart | force-reload) echo -n "Restarting capi4hylafax: c2faxrev" start-stop-daemon --stop --quiet --pidfile $C2FAXRECVPID sleep 2 start-stop-daemon --start --quiet --background --make-pidfile --pidfile $C2FAXRECVPID --exec /usr/local/bin/c2faxrecv -- -C /etc/hylafax/config.faxCAPI echo "." ;; *) echo "Usage: /etc/init.d/capi4hylafax " exit 1 esac exit 0 # vi /etc/default/capi4hylafax run_capi4hylafax=1 # update-rc.d capi4hylafax defaults 21 19 >/dev/null

Nun kann man sich bei http://www.hylafax.org/howto/faxrcvd/ die entsprechenden Skripte besorgen, je nachdem, was mit den ankommenden Faxen passieren soll.

Um von Windows Büchsen übers Netz faxen zu können empfiehlt sich: http://www.uli-eckhardt.de/whfc/

Gut Fax!

Schneller SSH-Login

Meistens ist es nicht sonderlich praktikabel sich alle möglichen Kennworte für unterschiedliche Maschinen mit einem PostIt an den Monitor zu heften, wenn ein Login auch ohne Passwortabfrage und dennoch sicher realisierbar ist.
Um sich via SSH auf eine Maschine ohne Passwortabfrage verbinden zu können generiere man zuerst ein Schlüsselpaar:
# ssh-keygen -t rsa

oder

# ssh-keygen -t dsa

Nun kopiere man den öffentlichen Schlüsel auf die betreffende Maschine, natürlich ist hier SSH Version 1 deaktiviert:

scp ~/.ssh/id_rsa.pub user@host:/home/user/.ssh/authorized_keys2

Von jetzt an authentifizert man sich mit Hilfe des privaten Schlüssels und der Login mit Passwort kann sogar komplett deaktiviert werden.

Majordomo + Postfix Anti Spam

Majordomo hat die unliebsame Angewohnheit bei Mailinglisten eine weltweit lesbare E-Mail Adresse zu erstellen, durch welche dann alle Mitglieder mit Spam bombadiert werden können.
Diese E-Mail Adressen sehen immer so aus: ‘listenname-list@domainname’ oder ‘listenname-outgoing@domainname’
Lösung

Im /etc/postfix/main.cf muss eine Filterregel eingebunden werden die wie folgt aussieht:

smtpd_recipient_restrictions = regexp:/etc/postfix/access_regexp,permit_mynetworks,check_client_access,check_relay_domains

in der Datei ‘access_regexp’ muss folgende Regel definiert werden:

/^(.*)-outgoing@(.*)/ 554 Use $1@$2 instead
/^(.*)-list@(.*)/ 554 Use $1@$2 instead

Der Versender der “bösen” Mails bekommt dann zum Dank dass er so eine schöne Mail verschicken will folgende Fehlermeldung zu sehen:

554 : Recipient address rejected:
Use listenname@mailservername instead;
from=<> to = listenname-outgoing@mailservername
Dadurch ist das Verschicken unterbunden und der Sysadmin hat seine Ruhe

MySQL Replikation

m zwei MySQL Server zu synchronisieren gehe man folgendermassen vor.

Verwendet wurde Debian Woody.
Konfiguration des Master-Servers:

# vi /etc/mysql/my.cnf

server-id = 1
log-bin = /home/mysql/mysql-bin.log

# mkdir /home/mysql/
# chown mysql:mysql /home/mysql
# mysql

GRANT FILE ON *.* TO replicate@slave-server IDENTIFIED BY ‘password’;

Konfiguration Slave-Server:

# vi /etc/mysql/my.cnf

server-id=2
master-host=192.168.1.1
master-user=replicate
master-password=password

Und nun auf beiden Maschinen den MySQL-Server neu starten.