Archiv fü Kategorie Linux

WLan mit DLink DWL-G650 unter Debian Etch Linux einrichten

15. April 2007

Dieser Tage habe ich versucht, auf meinem Laptop ohne eingebautes WLan eine PCMCIA-Karte für’s WLan zum laufen zu bekommen.
Ich hatte noch eine billige Karte liegen, also habe ich es zuerst mit dieser versucht. Doch leider ohne Erfolg, der darin verbaute Chipsatz wird von Linux nicht unterstützt. Auch ein Versuch mit ndiswrapper, der ja die originalen Windows-Treiber verwendet, schlug fehl.
Ich habe mich dann im Internet schlau gemacht, mit welchen Karten man unter Linux am ehesten ein funktionierendes WLan aufgesetzt bekommt. Dabei kam herraus, das die Karte eigentlich egal ist, solange der Chipsatz unterstützt wird. Meine Wahl fiel deshalb auf die DLink DWL-G650. In ihr ist ein prism-Chip verbaut für den es Linux-Unterstützung gibt.
Unter Debian Etch muß man zur Inbetriebnahme einige zusätzliche Pakete installieren. Da die WLan Treiber proprietäre Teile verwenden, werden die Pakete nur im non-free Zweig angeboten, die bei einer Standardinstallation aber aptitude noch nicht bekannt sind. Deswegen muss zuerst die datei /etc/apt/sources.list angepasst werden. Dazu müssen alle Adressen mit Debian-Server, bei denen nur main vorkommt durch main contrib non-free ersetzt werden.
Mit aptitude update aktualisiert man die Paketlisten.
Jetzt kann es mit dem installieren der Pakete losgehen. Mit aptitude install module-assistant buil-essential madwifi-source werden die benötigten Pakete installiert. Anschließend kan der passende treiber kompiliert werden. Auch hierfür macht sich aptitude am besten, da die kompilierten Pakete dadurch auch wieder deinstallierbar sind. Allerdings nutzt man dafür nicht aptitude direkt, sondern das Programm module-assistant. Mittels module-assistant prepare macht sich das programm über den verwendeten kernel schlau und installiert die eventuell fehlenden Kernel-Header nach. Danach kann mit module-assistant auto-install madwifi-source der Treiber gebaut und installiert werden.
So, fast geschafft. Jetzt muss nur noch in /etc/network/interfaces ein paar Oprionen gesetzt werden.

#Hotplug
allow-hotplug ath0 

iface ath0 inet dhcp
   wpa-driver madwifi
   wpa-ssid "NamedesWLans"
   wpa-key-mgmt WPA-PSK
   wpa-passphrase "SupergeheimesPasswort"

Jetzt kann mit ifup ath0 die Netzwerkkarte gestartet und mit dem WLan verbunden werden. Bei mir kam es dabei zu einem Fehler, dass das Interface schon aktiv sei. Nachdem ich mit ifdown ath0 das angeblich aktive Interface deaktiviert hatte, konnte ich es problemlos mit ifup ath0 starten und war danach endlich drahtlos online.
Nach einem Neustart des systems wird übrigens die Karte automatisch aktiviert, so das man ab sofort keine Befehle mehr eintippen braucht.

Ein IMAP-Server sorgt für die Postverwaltung

9. März 2007

So, nachdem ich über meinen Server EMails versenden kann, hab ich ihm jetzt auch noch das abholen und verwalten derselben beigebracht.
Durch ein einfaches

apt-get install dovecot-imapd

wird Dovecot installiert. Das war’s auch schon, denn in der Grundkonfiguration hat jeder User, der einen Account auf dem Server hat, auch einen Mail-Account. Dadurch wird für jeden User in seinem Home-Verzeichnis ein Maildir erstellt, wo die Mails landen.
Um jetzt die Mails von den verschiedenen Providern abzuholen, benutzt man am besten Fetchmail. Selbiges wird durch

apt-get install fetchmail

installiert. Jetzt ist etwas mehr Konfiguration angesagt. Aber keine Angst, so schlimm wird’s nicht.
Als erstes braucht jeder User, der Mails abholen soll eine Datei .procmailrc in seinem Heimatverzeichnis. Für den Anfang reicht folgender Inhalt:

MAILDIR=$HOME
LOGFILE=$HOME/log/procmail.log
VERBOSE=on
:0
Maildir/

Damit landen alle Mails für den User in seinem Maildir. Als nächstes brauch Fetchmail noch die Information, wo es Mails abholen soll. Das ist in der Datei /etc/fetchmailrc festgelegt. Der Aufbau ist folgender

set no bouncemail
poll pop3.web.de protocol POP3 user "user@web.de" password "geheim" is "user" fetchall

Folgendes zum Inhalt:

  • pop3.web.de ist der Mailhost des Providers (in diesem Fall Web.de)
  • “user@web.de” ist die Benutzerkennung beim Provider
  • “geheim” bitte durch das richtige Passwort ersetzen
  • “user” ist die Benutzerkennung auf meinem Server

Die Anführungsstriche bitte mit eingeben. Nun können wir schon das erste mal Mail abholen. Das geht so:

/usr/sbin/fetchmail -f /etc/fetchmailrc -v

Das “-v” am Ende sorgt dafür, das man aich was zu sehen bekommt.
Um das ganze zu automatisieren, kann man den User fetchmail per Cron-Auftrag mit der regelmäßigen Abholung beauftragen. Dazu in die Crontab von User fetchmail folgende Zeile eintragen:

*/16 * * * * /usr/sbin/fetchmail -s -f /etc/fetchmailrc

Nach einem Restart von cron wird jetzt alle 16 Minuten nachgeschaut, ob es neue Mail zu holen gibt.

Schlagwörter: , , , , , , ,

apt-get und die Schlüssel

4. März 2007

Wenn man bei einem

 apt-get update

einen Fehler der folgenden Art erhält:

laptop:/tmp# apt-get update
[…]
Paketlisten werden gelesen… Fertig
W: GPG error: http://ftp.de.debian.org unstable Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY A70DAF536070D3A1
W: Sie möchten vielleicht »apt-get update« aufrufen, um diese Probleme zu lösen

dann hilft folgendes:

laptop:/tmp# gpg -–keyserver wwwkeys.eu.pgp.net -–recv-keys A70DAF536070D3A1
laptop:/tmp# gpg –-armor –-export A70DAF536070D3A1 > missing.asc
laptop:/tmp# apt-key add missing.asc

Anschließend läuft apt-get sauber durch.

Schlagwörter: ,

Postfix, AOL und Freenet

25. Februar 2007

Ich hab mal versucht, auf meinem Debian-Server einen Mailserver mit Postfix aufzusetzen, der meine Mails bei Freenet abliefert. Da ich bei Freenet angemeldet bin, sollte das ganze mit SMTP_AUTH kein Problem darstellen. Also ein beherztes

apt-get install postfix libsasl2 libsasl2-modules

ausgeführt und schon war die nötige Software installiert und auch eine Grundkonfiguration vorgenommen. Dann noch ein paar Zeilen in /etc/postfix/main.cf geändert und es sollte gehen. Als zusätzliche Zeilen habe ich noch eingetragen


## SMTP AUTH Client
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtpd_sasl_security_options = noanonymous

Danach habe ich in /etc/postfix eine Datei sasl_passwd als Passwortdatei für sasl angelegt. Der Inhalt sieht so aus:

mx.freenet.de [MeinUserName@freenet.de]:[MeinPasswort]

Danach die Passwort-datei mit

postmap /etc/postfix/sasl_passwd

Postfixfreundlich codiert, mit

postfix reload

die neuen Einstellungen geladen und schon sollte es funktionieren.
Also Mailprogramm angeschmissen, eine Probemail geschickt und gewartet. Nichts passiert. Warum nicht?
Zum Glück wird bei Fehlern in der Datei /var/log/mail.info ein Eintrag hinterlassen und da stand tatsächlich auch drin, warum es nicht geht.
Kurze Zwischenbemerkung dazu: Als DSL-Provider benutze ich AOL und eben jener Provider leitet seit Mitte 2006 alle ausgehenden Mails über einen Zwangsproxy. Da ich die Mail statt an den AOL Mailserver an den Freenet Mailserver senden wollte, war der Proxy der Meinung ich spamme und hat das einfach verwehrt.
Nach einigen googlen bin ich dann auf die Lösung gekommen. Der Proxy verweigert nur die Auslieferung über den normalen Mailport 25. Für SMTP_AUTH ist aber auch der Port 587 zuständig und der wird vom Proxy nicht geblockt.
Zur Lösung des Problems trägt man in die entsprechende Zeile in der main.cf hinter der Adresse des Realyhosts noch den Port ein, also etwa so:

relayhost = mx.freenet.de:587

Gesagt, getan. Nach einem erneuten

postfix reload

konnte ich dann tatsächlich Mails senden.

Jetzt war noch etwas Feintuning angesagt. In der Grundkonfiguration versendet Postfix die Mails mit dem Absender [Benutzer_auf_Mailserver]@[hostanem.domain]. Ich hätte jedoch gerne, das dort meine Freenet-Adresse steht. Auch dafür gab’s eine Lösung, die sogenannte sender_canonical_maps. Über den Eintrag

sender_canonical_maps = hash:/etc/postfix/sender_canonical

in main.cf konnte ich eine Datei angeben, deren Inhalt so aussieht:

Benutzer_auf_Mailserver gewünschte@emailadresse.de

Das ganze dann wieder mit

postmap /etc/postfix/sender_canonical

in ein Postfixfreundliches Format gebracht,

postfix reload

ausgeführt und seit dem werden meine Mails mit meiner richtigen Adresse verschickt ;-)

Als Beispiel hier mal meine main.cf und die master.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version 

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname 

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no 

# appending .domain is the MUA's job.
append_dot_mydomain = no 

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h 

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache 

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client. 

myhostname = Trubadix
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.localdomain, localhost
relayhost = mx.freenet.de:587
mynetworks = 192.168.178.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
disable_dns_lookups = yes 

## SMTP AUTH Client
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtpd_sasl_security_options = noanonymous
#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd -vv
#submission inet n       -       -       -       -       smtpd
#  -o smtpd_enforce_tls=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps     inet  n       -       -       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#628      inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       -       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       -       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       -       -       -       smtp
	-o fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache	  unix	-	-	-	-	1	scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
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=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix	-	n	n	-	2	pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}
Schlagwörter: , , , ,