Archiv der Kategorie: Linux Tipps & Tricks

Pos1 und Ende auch mit PuTTY

Für Windows verwende ich PuTTY um auf meine Linuxmaschinen zu kommen. Bei manchen Rechnern funktionierte die Pos1 und Ende Taste nicht. Ich suchte erst die Schuld am Linuxsystem das der die Tastencodes nicht kennt, herausgestellt hat sich allerdings das PuTTY damit ein Problem hat.

Das Problem kann man lösen indem man bei der Verbindung unter Connection → Data den Wert Terminal-type string von xterm auf xterm-color ändert.

Rootserver Firewall mit iptables

Einfache Firewall für Rootserver mit iptables Für alle Linux Destributionen

#!/bin/sh -e

#ROOTSERVER IP
ROOTSERVER="10.23.45.10"

#Chains flushen und Chains löschen
 iptables -F
 iptables -X
 
 # Erstmal alles in die Tonne
 iptables -P INPUT DROP
 iptables -P OUTPUT DROP
 iptables -P FORWARD DROP
 
 # Drop to Log
 iptables -N block_in
 iptables -A block_in -j LOG --log-prefix "FW DROP IN: " --log-level info
 iptables -A block_in -j DROP
 iptables -N block_out
 iptables -A block_out -j LOG --log-prefix "FW DROP OUT: " --log-level info
 iptables -A block_out -j DROP
 
 # Incoming Traffic (normal)
 iptables -N allow_in
 # Outgoing Traffic (normal)
 iptables -N allow_out
 
 # Incoming Traffic (special)
 iptables -N special_in
 # Outgoing Traffic (special)
 iptables -N special_out
 
 # Loopback
 iptables -A INPUT -i lo -j ACCEPT
 iptables -A OUTPUT -o lo -j ACCEPT
 
 # DHCP Client weil Rootie IP von DHCP bekommt
 iptables -A INPUT -i eth0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT
 iptables -A OUTPUT -o eth0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT
 
 #################################################################
 ### Incoming Traffic
 #################################################################
 #ICMP Allow
 iptables -A allow_in -d $ROOTSERVER -p icmp --icmp-type echo-request -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p icmp --icmp-type echo-reply -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p icmp --icmp-type destination-unreachable -j ACCEPT
 
 #Apache / Pound(SSL)
 iptables -A allow_in -d $ROOTSERVER -p tcp --dport 80 -j ACCEPT
 #SSL
 iptables -A allow_in -d $ROOTSERVER -p tcp --dport 443 -j ACCEPT
 
 #Exim SMTP (SSL) / Courier POP3/IMAP (SSL)
 iptables -A allow_in -d $ROOTSERVER -p tcp --dport 25 -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p tcp --dport 110 -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p tcp --dport 143 -j ACCEPT
 # SSL
 iptables -A allow_in -d $ROOTSERVER -p tcp --dport 993 -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p tcp --dport 995 -j ACCEPT
 
 #PowerDNS
 iptables -A allow_in -d $ROOTSERVER -p udp --dport 53 -j ACCEPT
 
 
 #Serververkehr der reingeht
 iptables -A allow_in -d $ROOTSERVER -p udp --sport 53 -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p tcp --sport 25 -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p tcp --sport 80 -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p tcp --sport 443 -j ACCEPT
 iptables -A allow_in -d $ROOTSERVER -p tcp --sport 22 -j ACCEPT
 
 
 #################################################################
 #################################################################
 
 
 #################################################################
### Outgoing Traffic
#################################################################
 
 # ICMP Allow
 iptables -A allow_out -s $ROOTSERVER -p icmp --icmp-type echo-reply -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p icmp --icmp-type echo-request -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p icmp --icmp-type destination-unreachable -j ACCEPT
 
 
 # Apache / Pound
 iptables -A allow_out -s $ROOTSERVER -p tcp --sport 80 -j ACCEPT
 # SSL (nicht sicher)
 iptables -A allow_out -s $ROOTSERVER -p tcp --sport 443 -j ACCEPT
 
 #Exim SMTP (SSL) / Courier POP3/IMAP (SSL)
 iptables -A allow_out -s $ROOTSERVER -p tcp --sport 25 -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p tcp --sport 110 -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p tcp --sport 143 -j ACCEPT
 #SSL
 iptables -A allow_out -s $ROOTSERVER -p tcp --sport 993 -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p tcp --sport 995 -j ACCEPT
 
 #PowerDNS
 iptables -A allow_out -s $ROOTSERVER -p udp --sport 53 -j ACCEPT
 
 
 #Serververkehr der rausgeht
 iptables -A allow_out -s $ROOTSERVER -p udp --dport 53 -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p tcp --dport 25 -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p tcp --dport 80 -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p tcp --dport 443 -j ACCEPT
 iptables -A allow_out -s $ROOTSERVER -p tcp --dport 22 -j ACCEPT
  #################################################################

#################################################################
### Rules
#################################################################
 ## Incoming Traffic
 iptables -A INPUT -j allow_in
 iptables -A INPUT -j special_in
 iptables -A INPUT -j block_in
 
 ## Outgoing Traffic
 iptables -A OUTPUT -j allow_out
 iptables -A OUTPUT -j special_out
 iptables -A OUTPUT -j block_out


Probleme mit ClamAV unter Debian Etch

Kürzlich hatte ich totale Probleme mit ClamAV. Das Laden der Virendefinitionen hat teilweise mehrere Stunden gedauert und hatte 100% CPU Last. Da ich nichts an der Konfig geändert hatte bin ich fast verzweifelt weil ich den Fehler nicht finden konnte. Die Version 0.90.1 aus Debian Etch scheint fehlerhaft zu sein. Da er nach jedem Update die Datenbank anscheinend neu laden muss blockiert ClamAV den kompletten Mailversand.

Logauszug:

Mar 23 08:39:28 wiggum clamsmtpd: 1010C4: CLAMAV: couldn't connect to: /var/run/clamav/clamd.ctl: No such file or directory
Mar 23 08:39:28 wiggum clamsmtpd: 1010C4: from=root@m.corp, to=root@m.corp
Mar 23 08:39:28 wiggum clamsmtpd: 1010C6: CLAMAV: couldn't connect to: /var/run/clamav/clamd.ctl: No such file or directory

Der Fehler trat bei mir auf drei unterschiedlichen Maschinen auf und ist rekonstruierbar.

Lösung

Lösung des Problems war die Installation einer neueren ClamAV Version aus den Volatile Paketen von Debian Etch.

Folgende Zeile habe ich zu /etc/apt/sources.list hinzugefügt:

deb http://volatile.debian.org/debian-volatile etch/volatile main

Dann APT updaten …

apt-get update

und die neuen ClamAV Pakete installieren

apt-get install clamav-daemon clamav clamav-freshclam clamav-base

Jetzt sollten die Volatile Pakete installiert werden.

clamscan -V

ClamAV Version sollte dann 0.92.1 sein.

Jetzt funktioniert alles wie früher 🙂

Multitail – mehre Logs live betrachten und in Farbe

Multitail ist eine Erweiterung des tail Befehls und ermöglicht mehrere Logs live gleichzeitig zu betrachten. Außerdem unterstützt multitail Syntaxhighlighting.

Bildquelle: http://www.vanheusden.com/multitail/screenshots.html

Installation

apt-get install multitail

Die Configfiles

/etc/multitail.conf : Ihr sind die Farbschemas gespeichert und allgemeine Parameter
.multitailrc : Diese Datei kann man in seinem Homepfad anlegen und eigene Defaults festlegen

Beispiel:

defaultcscheme:postfix

Mit dieser Zeile lege ich fest, das als Default Farbschema postfix ausgewählt wird.

E-Mail check abschalten

Beim Starten von multitail tritt folgender Fehler auf:

sysadmin@pc0815:~$ multitail /var/log/mail.log
Could not determine size of file '/var/mail/sysadmin' (which is supposed to be your mailfile): mail-check is disabled.
You can prevent this message by adding the line 'check_mail:0' in /etc/multitail.conf or in .multitailrc in your home-directory.

Press enter to continue...

Um diese Warnung abzuschalten folgende Zeile entweder in die /etc/multitail.conf oder in die eigene .multitailrc einfügen.

check_mail:0

Farbschema über Commandoline bestimmen

multitail -cS <farbschema>

Folgende Farbschemas sind verfügbar:

Farbschemaname Beschreibung
syslog kernel and unsorted messages
ssh for openssh logs
liniptfw Linux IPtables (2.6.x kernel)
postfix for MTA postfix logs
apache default Apache logging (webserver)
apache_error default Apache error logging
rsstail RSSTail output (RSS feed reader)
acctail (BSD-) process accounting reader
wtmptail www.vanheusden.com/wtmptail/
squid http proxy server
asterisk software PBX
sendmail MTA sendmail
mailscanner wrapper around sendmail/clamav/spamassassin
spamassassin wrapper for spamassassin
clamav clamav virus scanner
samba samba – smb for linux
audit for audit log
exim MTA exim log
httping ping for HTTP
netstat see www.vanheusden.com/multitail/examples.html
tcpdump for tcpdump logs
dhcpd DHCP server logs
bind Bind DNS server logs
smartd smartd logs
kerberos kerberos logs
oracle oracle logs
ntpd ntpd logs
nagtail www.nagios.org status viewer
websphere WebSphere error-log
nntpcache nntpcache logs
vnetbr Veritas Netbackup backup/restore logs
procmail procmail mailprocessor logs
checkpoint Checkpoint Firewall-1 logs
pppd PPP daemon logs
inn inn logs
netscapeldap Netscape Directory server (LDAP)
vmstat vmstat is part of sysstat
log4j log4j logs
lambdamoo MUD/MOO server http://www.moo.mud.org/

Farbschema über multitail.conf festlegen

Folgende Defaults sind bereits vorhanden:

scheme:postfix:/var/log/mail/
scheme:sendmail:/var/log/mail/
scheme:exim:/var/log/mail/
scheme:apache:/var/log/apache/.*access
scheme:apache_error:/var/log/apache/.*error
scheme:asterisk:/var/log/asterisk/messages
scheme:samba:/var/log/samba/
scheme:squid:/var/log/squid/
scheme:syslog,ssh:/var/log/
scheme:vnetbr:bplog.rest
scheme:procmail:procmail.log
scheme:inn:/var/log/news/

Um jetzt für ein Logfile ein Schema festzulegen einfach eine Zeile anfügen. z.B.

scheme:postfix:/var/log/mail.log

Jetzt kann man multitail /var/log/mail.log starten ohne den -cS Parameter anzugeben und ohne ein Default Schema in der .multitailrc festgelegt zu haben.

Mehrere Logs gleichzeitig

Um mehrere Logs gleichzeitig zu betrachten gehen Sie folgendermaßen vor:

Jedes Logfile mit -i dem multitail übergeben (in einer Zeile!) z.B.

multitail -i /var/log/mail.log -i /var/log/kern.log -i /var/log/apache2/access_log

Der Monitor wird dann anhand der Anzahl der Logs geteilt.

SSH mit Private/Public Key Authentifizierung

Einfache und effektive Methode um SSH sicherer zu machen. Anleitung für alle Linux Distributionen

SSH ermöglicht es, sich von einem entfernten Computer aus an einer Shell auf dem Zielcomputer anzumelden und daran so zu arbeiten, als sitze man direkt vor dem Zielsystem. Dabei werden im Gegensatz zu anderen ähnlichen Diensten wie Telnet alle Daten verschlüsselt übertragen.

Schritt 1: Erstellen eines Schlüsselpaars

  blade:/root # ssh-keygen -t rsa
  Generating public/private rsa key pair.
  Enter file in which to save the key (/root/.ssh/id_rsa):

Das Programm fragt nach einem Speicherort für den Public- und den Privatekey. Dieser wird default im Homeverzeichnis unter .ssh/id_rsa gespeichert. Das ist okay. Jetzt wird nach einem Passwort für den privaten Schlüssel gefragt. Hier ein sicheres Passwort eingeben und wiederholen.

Schritt 2: Verteilen des Publickeys

  blade:/root # ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.4.204
  17
  Password:

Nach dem Parameter i wird der Speicherort des Publickeys angegeben. Danach folgt der User und das Zielsystem auf dem der Publickey installiert werden soll. Dabei wird der Publickey in der Datei authorized_keys im .ssh Verzeichnis des angegebenen Users gespeichert.

    Now try logging into the machine, with "ssh ' root@192.168.4.204 '", and check in:

      .ssh/authorized_keys

    to make sure we haven't added extra keys that you weren't expecting.

    blade:/root #

Schritt 3: Testen des Public/Privatekeys

  ssh root@192.168.4.204

Es wird nach dem Passwort des privaten Schlüssels gefragt. Sollte der Login erfolgreich sein kann man die Authentifizierung des SSH Servers mit Passwörtern abschalten, d. h. das nur noch Private/Public Key Anmeldungen funktionieren. Dies erhöht die Sicherheit gegen BruteForce Angriffe auf SSH.

Schritt 4: Abschalten der Passwortauthentifizierung

  nano /etc/ssh/sshd_config

Folgenden Parameter / Zeile ergänzen:

  ChallengeResponseAuthentication no

ACHTUNG !!!

Durch abschalten der ChallengeResponseAuthentication ist eine Anmeldung mit Username/Passwort nicht mehr möglich. Es wird dringend empfohlen die Private/Public Key Authentifizierung mehrmals zu testen.

Farbe für die bash!

Für alle Linux Distributionen

Links und Files einfärben

Die .bashrc mit folgenden Parametern erweitern:

alias ls='ls --color=tty --classify'
alias dir='dir --color=tty --classify'

Danach sind ls und dir Ausgaben farbig hervorgehoben.

Bash Promt einfärben

nano ~/.bashrc
Schriftfarbe = grün, Schriftart = normal, Hintergrund = keiner

PS1="\[\e[0;32m\]\u@\H:"

Schriftfarbe = grün, Schriftart = normal, Hintergrund = schwarz

PS1="\[\e[0;32;40m\]\u@\H:"

Mehrere Farben

PS1="\[\e[0;32;40m\]\u@\[\e[1;35m\]\H:\e[0m "