Ubuntu Linux Weblog

19.09.2007 :: Iptables-Tabelle beim Bootup laden

Es gibt mehrere Techniken, die eleganteste finde ich die Einbindung in /etc/network/interfaces, siehe https://help.ubuntu.com/community/IptablesHowTo

19.09.2007 :: Portscan mit knocker

 
# Scanne Host 192.168.0.1 Starport = 1, Endport = 1024
knocker -H 192.168.0.1 -SP 1 -EP 1024

16.03.2007 :: fetchmail Zertifikat-Generve

Obwohl ich mit fetchmail ohne SSL/TLS Unterstützung Mails abgeholt habe, fand ich im Logfile permanent Fehlermeldungen wie diese:

 
Fehler bei Server-Zertifikat-Überprüfung: unable to get local issuer certificate
Fehler bei Server-Zertifikat-Überprüfung: certificate not trusted
Fehler bei Server-Zertifikat-Überprüfung: unable to verify the first certificate

Warum werde ich mit Zertifikat-Geraffel genervt, wo ich doch nirgendwo SSL benutze?

Nach langem rumprobieren fand ich heraus, dass Fetchmail wohl so kompiliert ist, dass SSL immer verwendet wird, wenn möglich. Es wird also beim Verbindungsaufbau mit dem Pop3 Server gecheckt, ob SSL/TLS möglich ist. Auch wenn ich also nicht SSL für den Austausch angegeben habe, wird es genutzt. Leider gibt es keinen Schalter NoSSL oder was ähnliches.

Das ist eine verrückte Sache, wo man in die Irre getrieben wird. Überall findet sich in der Dokumentation etwas, wie man man SSL explizit anschaltet. Da steht aber nirgendwo, dass man es explizit abschalten muss, weil es sonst automatisch genutzt wird.

Als ich das erstmal begriffen hatte, fand ich auch die Möglichkeit, SSL abzuschalten. Einfach in dem man sslproto auf '' setzt:

 
poll xyz_server proto pop3 auth password 
  user "xyz" pass "geheim" is pop001 sslproto '' fetchall

14.11.2006 :: Mail von der Shell mit Anhang

 
mutt -a file_anhang.jpg -s Mein_Betreff name@domain.de </dev/null

14.11.2006 :: Welches amavis denn bitte?

Mein Postfix Mailserver soll meine Mails nach Viren scannen. AMaViS nimmt man als Bindeglied dazu, weiß man ja irgendwie. Ähm, aber welches AMaViS? Mit "apt-cache search amavis" findet man gleich zwei: amavis-ng und amavisd-new. Und auf der Homepage (http://www.amavis.org/) findet man zusätzlich noch amavisd und amavis.

Für Neuinstallationen scheint es eine klare Antwort zu geben: amavisd-new ist das Projekt der Wahl. Daran wird aktiv weiterentwickelt und es ist auf dem neuesten Stand. Man findet es unter einer eigenen Homepage: http://www.ijs.si/software/amavisd/ Ja, richtig gesehen, die Seite heißt natürlich nicht amavisd-new sondern amavisd, um die Verwirrung zu vollenden ;-)

Die Installation in Zusammenarbeit mit Postfix klappt übrigens sehr gut. Die Dokumentation von amavisd-new erscheint mir da gut ausgereift und praktisch erprobt zu sein.

Lediglich für das Einbinden des f-prot-Scanners musste ich etwas rumprobieren. Bei Dapper ist die amavisd.conf zerlegt in mehrere Konfigdateien, um es modularer zu halten. Diese befinden sich unter etc/amavisd/conf.d/ In der Datei 15-av_scanners habe ich unter @av_scanners dann den f-prot so eingebunden, wie er unter @av_scanners_backup aufgelistet wird. Dies deshalb, weil f-prot eigentlich als Dämon eingebunden wird, was die Home-Version von f-prot aber nicht kann. Er muss vielmehr als Command-Line-Scanner eingebunden werden, wie das defaultmäßig auch schon unter @av_scanners_backup angelegt ist.

09.11.2006 :: cups-pdf Drucker für Windows

Möchte man einen Linux-Server als PDF-Generator für Windows verwenden, so geht das wunderbar im Zusammenspiel mit cups und cups-pdf.

Cups-pdf wandelt ja Postscript in PDF um. Unter Linux installiert man deshalb einen Postscript Treiber. Wenn man von Windows druckt, braucht man dies nicht. Hier lässt man einfach Windows das Postscript erzeugen und gibt es direkt an cups-pdf weiter.

Auf dem Linux Server konfiguriert man mit dem Cups-Webfrontend einen neuen Drucker:

 
Name: cups-pdf-raw
Gerät: Virtual Printer (PDF Printer)
Marke: Raw
Modell: Raw Queue

Raw ist natürlich keine Marke sondern ein Platzhalter für ein Raw-Device, wo also die Daten 1:1 durchgeleitet werden, also keinerlei Druckertreiber irgendwas umsetzt. Ebenso Raw Queue.

Unter Windows wählt man einen Postscript-Druckertreiber aus. Gute Erfahrungen habe ich unter Windows 2000 mit dem "Apple Color LW 12/660 PS" gemacht, der standardmäßig mitgeliefert wird. Dieser hat auch die Option, in Farbe oder schwarzweiß umgesetzt zu drucken.

In der cups-pdf.conf habe ich den Zielpfad für die erzeugten PDF's noch auf ein festes Verzeichnis eingestellt:

 
Out /home/pchome/var/pdf-output

Dieses Verzeichnis sollte dann über Samba auch freigegeben sein, damit die Windows-Clients darauf zugreifen können.

08.11.2006 :: cups-pdf: Konfigurationsfehler

Das Paket cups-pdf funktioniert nach der Installation nicht. In Cups wird der entsprechende pdf-Printer unter "Gerät" im Frontend nicht angezeigt. Schuld daran ist, das cups-pdf Root-Rechte braucht. Leider. Das kollidiert mit Sicherheitsrichtlinien. Ein Workaround, den man für sich sicherheitstechnisch prüfen muss, ist der, dass man das cups-pdf Backend mit setuid laufen lässt. Dann funktioniert alles:

 
sudo chmod +s /usr/lib/cups/backend/cups-pdf

Die Möglichkeit, in cups RunAsUser auf No zu setzen, existiert nicht mehr. Diese Option wurde in aktuellen Cups-Versionen entfernt. Vermutlich auch wieder aus Sicherheitsgründen.

Weblinks:

06.11.2006 :: Cups: Fehlender Eintrag in Shadow Group

In Dapper ist Cups falsch konfiguriert, so dass die Anmeldung von entfernten Rechnern ans Web-Interface nicht funktioniert. An jedem Punkt, wo eine Authentifizierung nötig ist, klappt diese nicht. Schuld daran ist eine fehlende Mitgliedschaft von cupsys in der Gruppe shadow. Dadurch kann nicht auf die Shadow-Passwort-Dateien zugegriffen werden. Damit kann dann der Login nicht verifiziert werden. Was es braucht, ist folgendes:

 
adduser cupsys shadow

Weblinks:

06.11.2006 :: Cups: offene Minimalkonfiguration

Gerne bricht man sich einen ab, weil die Standard-Konfigurationen einer Distribution oft schon gut abgesichert sind. Unter dutzenden von sicherheitsrelevanten Einstellungen herauszufinden, was man denn nun abschalten muss, damit man ein erstmal offenen System hat, ist schwer. Und dann wundert man sich z.B. bei Cups, warum man das Webinterface auf keinem anderen Rechner geöffnet bekommt oder warum ein Login ins Webinterface nicht funktioniert.

Hier deshalb mal eine funktionierende offene Minimalkonfiguration für Cups:

 
# cupsd.conf

LogLevel warning

SystemGroup lpadmin

<Location />
  Allow all
</Location>

Include /etc/cups/cups.d/ports.conf
Include /etc/cups/cups.d/browse.conf

In der eingebundenen browse.conf muss erstmal nichts stehen. In die ports.conf trägt man die IP-Adressen des Servers ein, auf denen Cups lauschen soll:

 
# ports.conf
Listen localhost:631
Listen 192.168.0.22:631
Listen 192.168.1.22:631

In diesem Fall hätte der Server 2 Netzwerkkarten, wobei eine auf 192.168.0.22 und die andere auf 192.168.1.22 konfiguriert ist. Auf beiden lauscht Cups.

Mit dieser Konfiguration sollte es möglich sein, von allen Rechnern im Netzwerk, die auf 192.168.0.22 oder 192.168.1.22 zugreifen können, auch das Cups-Webinterface zu öffnen.

Um den Adminbereich abzusichern, ergänzt man dann in der cupsd.conf:

 
<Location /admin>
  AuthType Basic
  Require user lpadmin
  Allow all
</Location>

<Location /admin/conf>
  AuthType Basic
  Require user lpadmin
  Allow all
</Location>

Dies bedeutet, dass man Basic-Authentication nimmt (was man nur über https anwenden sollte). Der einzige Benutzer, der sich einloggen darf, ist lpadmin. Dieser muss als Benutzer natürlich angelegt sein und auch ein Passwort muss für diesen Account definiert sein. "Allow all" bedeutet, dass der Zugriff von allen in der ports.conf definierten IP's aus möglich ist.

Unter Ubuntu Dapper ist übrigens der Zugriff über https bereits konfiguriert, man kann also https://meinserver:631 verwenden. Es ist sogar so, dass überhaupt kein http-Zugriff zugelassen wird, sobald man sich irgendwo authentifizieren muss.

06.11.2006 :: Cups: Raw-Drucker anlegen für Windows

Möchte man einen Linux-Server als Druckserver für Windows-Clients verwenden, ist es am unkompliziertesten, wenn man Cups als reinen Druckspooler verwendet. Dann nutzt man den Original-Windows-Druckertreiber, der die Druckdaten generiert und über Samba nach Cups schickt. Cups selber braucht diese Daten dann nicht weiter aufbereiten, sondern kann sie direkt an einen Drucker weiterleiten. Hierfür gibt es das Device "Raw" und die "Raw-Queue".

Wenn man versucht, im Webinterface unter Verwaltung so ein Raw-Device anzulegen, gibt es für USB-Drucker ein Problem. In meinem Fall hing ein Canon Pixma IP4300 am USB-Port. Wenn man diesen Port auswählt, schlägt Cups gleich alle möglichen Canon-Drucktreiber vor, ein Raw-Device sucht man daber vergeblich.

So geht es trotzdem: Man wählt als Anschluß LPT1 aus. Weil hier nicht immer automatisch abgefragt werden kann, welcher Drucker dranhängt, werden nachfolgend alle möglichen Druckerhersteller vorgeschlagen. Und da findet sich dann auch "Raw", welches man wählt. Nachfolgend noch das Modell "Raw Queue" auswählen und fertigstellen. Ist dieser Drucker so angelegt, kann man unter der Hauptrubrik "Drucker" den entsprechenden Drucker heraussuchen und "Drucker ändern" anklicken. Nun ordnet man die entsprechende USB-Schnittstelle zu.

Natürlich kann man alles auch von Hand in der Shell ändern. Die Drucker werden unter /etc/cups/printers.conf abgelegt. Wie ein Drucker heißt, kann man über lsusb -v herausbekommen. Cups scheint aus iManufacturer und iProduct die Kennung zusammenzubasteln, denn in meiner printers.conf steht für den Canon-Drucker folgendes:

 
...
DeviceURI usb://Canon/iP4300
...

25.05.2006 :: Install Java und JEdit

JEdit ist ein genialer Texteditor, also nichts wie drauf, auf das neu installierte Ubuntu breezy. Doch das war gar nicht so einfach. Hier mal eine Anleitung:

1. Erstmal ein neues Java installieren. Dafür Zeile in die /etc/apt/sources.list eintragen:

 
deb http://ubuntu.tower-net.de/ubuntu/ breezy java

Dann ein

  
apt-get update
apt-get install sun-j2re1.5

2. Das Gnu Java sollte man entfernen, sonst wird auf die falsche Version zugegriffen.

 
apt-get remove gij
apt-get remove gij-4.0

Ein java -version sollte nun java version "1.5.0_06" oder ähnlich hervorbringen.

3. Für jedit brauchen wir wieder ein paar neue Zeilen in der sources.list

 
deb http://dl.sourceforge.net/sourceforge/jedit ./
deb-src http://dl.sourceforge.net/sourceforge/jedit ./

Dann ein beherztes

 
apt-get update
apt-get install jedit

Jetzt sollte jedit laufen, man kann es direkt von der Kommandozeile aus testen, in dem man jedit eintippt. Auch im Startmenü von KDE oder Gnome sollte es auftauchen.