VonJonas

Absicherung eines Debian Servers

Absicherung eines Debian Servers

Dieser Artikel beschreibt die Absicherung eines Debian Root Servers und optionale Einrichtung von Monitoring.

Inhaltsverzeichnis

  • 1 Minimale Installation
  • 2 SSH Login absichern
  • 3 SSH Port ändern
  • 4 Benachrichtigung bei SSH Login
  • 5 Regelmäßige Systemupdates
  • 6 Alle Ports sperren und mit Whitelists arbeiten
  • 7 Brute Force Attacken mit Fail2Ban verhindern
  • 8 Rootkits mit rkhunter aufspüren
  • 9 Dienste mit Monit überwachen
  • 10 Festplatten mittels smartmontools überwachen
  • 11 Einzelnachweise

Minimale Installation

Installieren Sie Ihren Server stehts nur mit den notwendigen Paketen. Jeder Overhead an Software bedeutet auch mehr potentielle Angriffsfläche.

SSH Login absichern

Es empfiehlt sich dem Root Benutzer keinen direkten SSH Login zu erlauben. Sie können ausserdem eine Gruppe von Benutzern festlegen, die SSH nutzen dürfen.

Die genauer Anleitung finden Sie unter SSH Root Login unter Debian verbieten

Sicherer und komfortabler ist es ausserdem, den Login mit Passwort zu verbieten und dafür einen SSH Key zu verwenden.

Die genaue Anleitung finden Sie unter SSH Key Login

SSH Port ändern

Die Mehrzahl der (automatisierten) Loginattacken auf SSH erfolgt auf den Standardport 22. Eine einfache und effektive Methode ist es, den SSH Port auf einen anderen zu ändern. Öffnen Sie dazu die Konfigurationsdatei von SSH

nano /etc/ssh/sshd_config

und ändern Sie den SSH Port von

Port 22

auf einen anderen Port nach Ihrer Wahl ab. Der SSH Dienst muss danach mit

/etc/init.d/ssh restart

neu gestartet werden.

Beachten Sie bitte, dass Sie keinen festen Port eines anderen Dienstes benutzen. Eine Liste mit Ports und Diensten finden Sie unter

more /etc/services

Aktive SSH Verbindungen bleiben offen. Öffnen Sie nun ein neues Terminalfenster und testen Sie ob Sie SSH mit Ihrem angegebenen Port erreichen, bevor Sie das aktive Fenster schließen.

Benachrichtigung bei SSH Login

Mit folgendem Skript erhalten Sie eine E-Mail, sobald sich ein Benutzer per SSH einloggt.

Erstellen Sie dazu ein ausführbares Shell Skript /opt/shell-login.sh mit folgendem Inhalt:

#!/bin/bash
  
echo "Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
echo "Benutzer: $USER"
echo
finger

Damit die Mails beim Login versendet werden, muss folgende Zeile

/opt/shell-login.sh | mailx -s "SSH Login auf IHR-HOSTNAME" ihre-emailadresse@example.com

in der Datei

/etc/profile

eingetragen werden.

Die Datei /opt/shell-login.sh muss die Rechte 755 besitzen:

chmod 755 /opt/shell-login.sh

Die Mail wird nun automatisch versendet, sobald sich ein Benutzer per SSH einloggt. Der User bekommt davon nichts mit.

Regelmäßige Systemupdates

Das Debian Security Team veröffentlicht regelmäßig Sicherheitsupdates und neue Kernelversionen. Die Updates sollten Sie (sofern Sie keinen eigenen, angepassten Kernel verwenden) regelmäßig durchführen. Um nicht jeden Tag Updates manuell prüfen zu müssen, gibt es das Paket apticron, welches Sie per Mail über neue Updates informiert. Installieren Sie zunächst das Paket mit

aptitude install apticron

und legen Sie unter

/etc/apticron/apticron.conf

Ihre Mailadresse und den Hostnamen des Systems (optional) fest. Die Updates könnten natürlich auch per Cronjob jeden Tag automatisch installiert werden, war wir jedoch nicht empfehlen. Sie haben so nie die Kontrolle darüber was installiert wird und können evtl. Fehler nur schwer nachvollziehen.

Weiterführender Link: Debian E-Mail Updatebenachrichtigung mit apticron

Alle Ports sperren und mit Whitelists arbeiten

Diese Methode bedarf großer Vorsicht bei der Einrichtung, damit Sie sich nicht aussperren.

Sobald alle Dienste installiert sind und Sie wissen, welche Ports benötigt werden, können Sie alle anderen Ports mittels iptables blocken.

Weitere Informationen dazu finden Sie auf folgenden Webseiten:

Brute Force Attacken mit Fail2Ban verhindern

Das Packet fail2ban kann verwendet werden um verschiedene Dienste gegen Bruteforce Attacken abzusichern. Nach einer Anzahl X Logins wird die IP Adresse des Angreifers für X Minuten/Stunden/Tage gesperrt.

Die genaue Anleitung finden Sie unter SSH_Login_unter_Debian_mit_fail2ban_absichern

Rootkits mit rkhunter aufspüren

Sollte es einem Angreifer gelingen das System zu kompromittieren, ist es meist schwer nachzuvollziehen wo der Einbruch erfolgte. Mit dem Tool rkhunter wird der Server auf häufige Rootkits, verdächtige Strings, etc. überprüft und der Benutzer beim Fund informiert.

Installieren Sie das Paket mit

aptitude install rkhunter

und tragen Sie in der Datei

/etc/rkhunter.conf

Ihre Mailadresse beim Punkt

MAIL-ON-WARNING="user@domain.tld"

ein. Führen Sie nun einen ersten Test mittels

rkhunter --check

aus. Sollten Sie hier Warnungen erhalten, bei denen Sie wissen dass diese false-positive sind, können Sie Whitelists unter

/etc/rkhunter.conf

erstellen. Diese könnten ungefähr so aussehen

ALLOWHIDDENDIR=/dev/.mdadm
RTKT_FILE_WHITELIST=/etc/init.d/.depend.boot
SCRIPTWHITELIST=/etc/init.d/hdparm

Genaue Ergebnisse der Tests finden Sie unter

/var/log/rkhunter.log

Dienste mit Monit überwachen

Die Dienste auf Ihrem Server können Sie (soweit nicht bereits durch ein anderes Managementsystem eingerichtet) mit dem Tool Monit überwachen. Je nach Konfiguration sendet Monit Ihnen Mails, z.B. wenn ein Dienst nicht erreichbar ist oder von Monit neu gestartet wurde. Sie können den Platz auf den Festplatten, Offene Ports, Dienste und vieles mehr überwachen.

Installieren Sie das Paket mit

aptitude install monit

und ändern Sie per

nano /etc/default/monit

den wert

startup=0

auf

startup=1

damit Monit als Dienst laufen kann. Nun müssen die Dienste, die überwacht werden sollen in die Konfigurationsdatei eingetragen werden:

nano /etc/monit/monitrc

Die Datei könnte z.B. so aussehen (die // Kommentare sind nur zur Erklärung und dürfen in der Konfigurationsdatei nicht angegeben werden)[1]

 set daemon 120                                                 // Monit überprüft all 2 Minuten
 set logfile syslog facility log_daemon                         // Wo wird die Logdatei hingeschrieben
 set mailserver localhost                                       // Mailserver über den die Mails verschickt werden
 set mail-format { from: user@domain.tld }                      // Mailadresse Absender
 set alert user@domain.tld                                      // Empfänger der Mails
 
 check system localhost                                         // Lokalen Server überwachen
    if loadavg (5min) > 1 then alert                            // Wenn Loadaverage über 5 Minuten größer 1 ist, Alarm versenden
    if memory usage > 75% then alert                            // Wenn mehr als 75% des Speichers benötigt werden, Alarm versenden
    if cpu usage (user) > 70% then alert                        // Wenn mehr als 70% CPU Leistung benötigt wird, Alarm versenden (User)
    if cpu usage (system) > 30% then alert                      // Wenn mehr als 30% CPU Leistung benötigt wird, Alarm versenden (System)
    if cpu usage (wait) > 20% then alert                        // Wenn mehr als 20% CPU Leistung benötigt wird, Alarm versenden (Wait)
 
 check process sshd with pidfile /var/run/sshd.pid              // Dienst SSH durch PID File überwachen
    start program  "/etc/init.d/ssh start"                      // Wie kann SSH im Fehlerfall gestartet werden
    stop program  "/etc/init.d/ssh stop"                        // Wie kann SSH im Fehlerfall beendet werden
    if failed port 22 protocol ssh then restart                 // Wenn der SSH Dienst nicht läuft, neu starten
    if 5 restarts within 5 cycles then timeout                  // Wenn nach 5 Versuchen der Dienst nicht gestartet werden kann, mit Timeout beenden
 
 check process mysql with pidfile /var/run/mysqld/mysqld.pid    // Dienst Mysql durch PID File überwachen
    group database                                              // Gruppe definieren
    start program = "/etc/init.d/mysql start"                   // Wie kann der MySQL Server im Fehlerfall gestartet werden
    stop program = "/etc/init.d/mysql stop"                     // Wie kann der MySQL Server im Fehlerfall gestopt werden
    if failed host 127.0.0.1 port 3306 then restart             // Wenn Port 3306 (MySql) auf dem Lokalen Server nicht läuft, neu starten
    if 5 restarts within 5 cycles then timeout                  // Wenn nach 5 Versuchen der Dienst nicht gestartet werden kann, mit Timeout beenden
 

Natürlich gibts es eine Vielzahl anderer Überwachungssoftware auf dem Markt. Monit ist jedoch sehr schnell und unkompliziert eingerichtet. Sollten Sie mehr Details benötigen bzw. ganze Serverfarmen monitoren wollen, empfehlen wir Nagios für welches wir auch IPMI Plugins anbieten.

Festplatten mittels smartmontools überwachen

Wichtige Bauteile wie Festplatten sollten ebenfalls überwacht werden. Da es hier zu viele Konstellationen von Raid Controllern und Konfigurationen gibt, gehe ich hier nur auf die smartmontools ein. In dem Beispielszenario werden 2 SATA Platten mittels mdadm im Raid 1 auf dem onboard Raidcontroller verwendet. Die Installation von mdadm setze ich hier als Grundlage voraus.

Das Paket smartmontools wird mittels

aptitude install smartmontools 

installiert und der auskommentierte Wert

#start_smartd=yes

in der Datei

/etc/default/smartmontools

einkommentiert werden, damit der Dienst aktiv beim Systemstart gestartet wird.

start_smartd=yes

Nun werden die zu überprüfenden Festplatten in die Datei

/etc/smartd.conf

eingetragen. Kommentieren Sie zunächst folgende Zeile aus

DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

und setzen Sie diese beiden Zeilen darunter

/dev/sda -n standby -a -I 194 -W 6,50,55 -R 5 -M daily -M test -m user@domain.tld
/dev/sdb -n standby -a -I 194 -W 6,50,55 -R 5 -M daily -M test -m user@domain.tld

Erklärung:

 /dev/sda               // Bezeichnung der zu überwachenden Festplatte
 -n standby             // Wenn die Festplatte im Standbymodus ist, diese nicht aufwecken
 -a                     // Alle Werte überprüfen
 -I 194                 // Temperature Wert auslassen
 -W 6,50,55             // Änderungen von 6 Grad oder mehr reporten. Temperaturhöchstwert 50 Grad. Bei 55 Grad warnen.
 -R 5                   // Reallocated Sectors beachten (ID 5)
 -M daily               // Tägliche Erinnerung versenden, auch wenn das Problem bereits gemeldet wurde
 -M test                // Testmail beim Neustart des Diensts schicken
 -m user@domain.tld     // Empfänger der Warnungen
VonJonas

Language Pack Installation auf Windows 7 Professional mit SP1

Installation einer zusätzlichen Sprache für Windows 7 Professional mit SP1

Schritt 1: Language Pack herunterladen

Die entsprechenden Language Packs werden direkt von Microsoft über die Windowsupdate.com Webseite zur Verfügung gestellt:

-> Direkte Links zu den jeweiligen Language Packs

Schritt 2: Language Pack in CAB Datei umwandeln

Starten Sie exe2cab und wählen Sie das gewünschte, zuvor heruntergeladene Language Pack um daraus eine CAB Datei zu erstellen.

Schritt 3: Installation des Language Packs mit DISM

Öffnen sie ein cmd (als Administrator starten) und installieren Sie die gewünschte Sprache mit folgendem Befehl:

dism /online /add-package /packagepath:c:\lp.cab

Übergeben sie dabei den Pfad zu der zuvor erstellten CAB Datei der gewünschten Sprache: /packagepath:<<PFAD ZU DER ERSTELLTEN CAB DATEI>>

Schritt 4: Gewünschte Systemsprache über Vistalizator festlegen

Natürlich könnte man die gewünschte Systemsprache auch über manuelle Registry Anpassungen festlegen. Bedeutend einfacher geht dies jedoch durch Vistalizator.

Vistalizator im Kompatibilitätsmodus für “Windows 7″ starten (es gibt sonst eine Fehlermeldung) und gewünschte Sprache festlegen. Hierzu die gewünschte Sprache auswählen und rechts davon auf “Change Language” klicken. Nach der Änderung muss das System neu gestartet werden.

Entfernen einer zusätzlichen Sprache für Windows 7 Professional mit SP1

Natürlich lässt sich ein Language Pack auch wieder deinstallieren! Wichtig ist hierbei, dass die zu deinstallierende Sprache nicht aktiv geschaltet ist.

Schritt 1: Eine alternative Sprache aktivieren

Als erstes mittels Vistalizator eine vorhandene Sprache aktivieren (nicht diejenige welche deinstalliert werden soll) und das System neu starten.

Schritt 2: Deinstallation des Language Packs mit DISM

Schritt 3: Installation des Language Packs mit DISM

Öffnen sie ein cmd und installieren Sie die gewünschte Sprache mit folgendem Befehl:

dism /online /remove-package /packagepath:c:\lp.cab

Übergeben sie dabei den Pfad zu der zuvor erstellten CAB Datei der gewünschten Sprache: /packagepath:<<PFAD ZU DER ERSTELLTEN CAB DATEI>>

Die häufigsten Probleme / Fragen / Unklarheiten

Die Installation klappt nicht?

Die häufigsten Fehler bei der Installation entstehen entweder durch die falsche Language Pack Version oder wenn der Pfad zur .cab Datei falsch übergeben wird. Um mögliche weitere Fehler zu umgehen ist es wichtig, den Command Prompt als Administrator (rechter Mausklick auf die Eingabeaufforderung, Als Administrator starten) ausgeführt wird. Achtet bei der Version zwingend auf die korrekte 32/64 Bit Version (inkl. SP1 oder ohne).

Languagepack ist installiert, wie weiter?

Die Sprache kann nun bequem über den Vistalizator angepasst werden. Ganz nach dem Motto Installation über DISM, festlegen der Sprache über Vistalizator.

VonJonas

Office 2010 Product Key (CD-Key) ändern

Office 2010 Product Key (CD-Key) ändern [Updated]

Wenn in einem Haushalt oder einer Firma mehrere Office 2010 Lizenzen vorhanden sind, kann es schon mal vorkommen, dass man bei der Installation eines Pakets durcheinander kommt, den falschen CD-Key erwischt und so das falsche Produkt installiert. Eine Deinstallation mit anschließender Neuinstallation von Office 2010 scheint hier oft als die einzige Möglichkeit zu sein, dem ist aber nicht so …

Office 2010 Product Key (CD-Key) ändern

Denn, im Gegensatz zu älteren Microsoft Office 2000, 2002, 2003 und 2007 Produkten ist es recht einfach den Produkt Key von Office 2010 zu ändern bzw. mit dem richtigen Key zu ersetzen, ohne dass man Office 2010 deinstallieren muss. Diese Möglichkeit wird nun in diesem Artikel Schritt für Schritt beschrieben.

[ad]

So lässt sich das Product Key bei Office 2010 ändern

Alle Microsoft Office 2010 Anwendungen beenden >
Windows Start >
Systemsteuerung >
Software oder Programme und Funktionen >
Microsoft Office Produktname 2010 >

Produktname ist ein Platzhalter für den Namen des Office 2010-Produkts.

Office 2010 Product Key ändern

Hier auf ändern klicken, das Microsoft Office 2010-Setup wird gestartet.

Office 2010 Product Key ändern

Wähle Produkt Key eingeben aus und klicke auf weiter, halte den richtigen 25-stelligen Produkt Key bereit.

Office 2010 Product Key ändern

Gebe nun den 25-stelligen Produkt Key ein, oder füge ihn ein. Der Produkt Key befindet sich je nachdem, wie Microsoft Office 2010 erworben wurde, an unterschiedlichen Positionen. Mit einem Klick auf Weiter kann Microsoft Office 2010 installiert oder angepasst werden … Fertig!

VonJonas

bat zu exe

Bat To Exe Converter wandelt Bat Dateien in ausführbare Exe Dateien um.

Diese bieten im Vergleich zu normalen Bat Dateien einige Vorteile.
Zum Beispiel können zusätzliche Dateien, Icons und Versionsinformationen eingebunden werden.
Auch eine unsichtbare Ausführung ist möglich.

http://www.f2ko.de/downloads/Bat_To_Exe_Converter.zip

VonJonas

HOWTO: ASTERISK ALS SIP-TELEFONANLAGE MIT SIPGATE UND T-ONLINE

In diesem Beitrag beschreibe ich, wie man unter Debian einen Asterisk-Server für SIP mit einem SIP-Telefon einrichtet.

Meine neue “Telefonanlage” hat folgende Features:
– SIP-Provider: Sipgate und 1und1 (unterschiedliches Routing möglich: eingehende Anrufe über 1und1 und Sipgate (Sipgate plus mit 3 Durchwahlen), ausgehende default über 1und1 wg. Phoneflat), Provider sind beliebig erweiterbar
– ein SIP-Client, beliebig erweiterbar
– Anzeige der SIP-”Quelle” im SIP-Client (Privat, 1und1, Büro, …) über die CallerID
– Voicemail (Anrufbeantworter) mit Blacklist (nicht jeder Anrufer soll den Anrufbeantworter nutzen können) und Mailbenachrichtigung inkl. Nachricht als WAV im Anhang
– DND-Mode (Klingelsperre) mit Whitelist (manche Anrufer sollen auch bei gesetztem DND-Mode anrufen können -> “VIPs”)
– Wartemusik (MP3)
– Interne Nummern:

1: Voicemail
2: Echotest
3: Nummernansage
4: Uhr
5: DND aktivieren/deaktivieren

Die Motivation war, die Features, die ich mit meiner Fritz!Box habe, für ein SIP-WLAN-Telefon (z.B. Siemens Gigaset SL75 WLAN) nachzubilden, da dieses nur einen SIP-Provider unterstützt.

Die Einarbeitung in Asterisk war ein ziemlicher Krampf aber nun funktioniert alles. Diese Sites waren mir u.a. dabei behilflich.

Routing eingehender Anrufe

Unter Debian gestaltet sich die Installation mal wieder äußerst umkompliziert: Die Pakete asterisk asterisk-classic asterisk-config asterisk-prompt-de asterisk-sounds-main asterisk-sounds-extra werden mittels apt-get install installiert.

Die sip.conf sieht aus wie folgt. In dieser Datei werden sowohl die SIP-Provider (register) als auch die Clients (type=friend) definiert.

[general]
srvlookup=yes
port = 5060
bindaddr = 12.34.56.78 ;IP-Adresse des Asterisk eintragen
language=de
register => 1234567e0:geheim@sipgate.de/1234567e0
register => 1234567e1:geheim@sipgate.de/1234567e1
register => 1234567e2:geheim@sipgate.de/1234567e2
register => 4912345678:geheim@sip.1und1.de/4912345678
context=sip-incoming

disallow=all ; First disallow all codecs
allow=ulaw
allow=alaw ; Allow codecs in order of
allow=gsm
;allow=ilbc ; preference
; allow=h261

[101]
type=friend
secret=geheim
qualify=yes ; Qualify peer is not more than 2000 mS away
nat=yes ; This phone is natted
host=dynamic ; This device registers with us
canreinvite=no ; Asterisk by default tries to redirect
context=home

[1234567e0]
type=peer
username=1234567e0
fromuser=1234567e0
secret=geheim
host=sipgate.de
fromdomain=sipgate.de
insecure=very
caninvite=no
canreinvite=no
nat=no

[1234567e1]
type=peer
username=1234567e1
fromuser=1234567e1
secret=geheim
host=sipgate.de
fromdomain=sipgate.de
insecure=very
caninvite=no
canreinvite=no
nat=no

[1234567e2]
type=peer
username=1234567e2
fromuser=1234567e2
secret=geheim
host=sipgate.de
fromdomain=sipgate.de
insecure=very
caninvite=no
canreinvite=no
nat=no

[4912345678]
type=peer
username=4912345678
fromuser=4912345678
secret=geheim
host=1und1.de
fromdomain=1und1.de
insecure=very
caninvite=no
canreinvite=no
nat=no

Der Datei voicemail.conf folgendes hinzufügen (1234 ist die PIN, Name der Name des Inhabers und name@email.de seine Email-Adresse, an die die Benachrichtigung verschickt wird):

; mailboxes
[default]
101 => 1234,Name,name@email.de

Die extensions.conf sieht aus wie folgt. Hiermit wird der in der Grafik veranschaulichte “dialplan” abgebildet.
[globals]
phone1 = SIP/101 ; standard phone
callduration = 30 ; standard calling duration in seconds

[home]
; sip phone
exten => 101,1,Dial(SIP/101)

; ext 1: Voicemail
exten => 1,1,Answer()
exten => 1,n,Wait(2)
exten => 1,n,VoiceMailMain(s${CALLERIDNUM})
exten => 1,n,Hangup

; ext 2: echotest
exten => 2,1,Answer()
exten => 2,n,Wait(2)
exten => 2,n,Playback(demo-echotest) ; Let them know what
exten => 2,n,Echo() ; Do the echo test
exten => 2,n,Playback(demo-echodone) ; Let them know it
exten => 2,n,Hangup()

; ext 3: test number
exten => 3,1,Answer
exten => 3,n,Wait(2)
exten => 3,n,SayDigits(${CALLERIDNUM})
exten => 3,n,MusicOnHold()
exten => 3,n,Hangup

; ext 4: the speaking clock
exten => 4,1,Answer
exten => 4,n,Wait(2)
exten => 4,n,SayUnixTime( | | k)
exten => 4,n,SayUnixTime( | | M)
;exten => 4,n,Playback(vm-and)
;exten => 4,n,SayUnixTime( | | S)
;exten => 4,n,Playback(seconds)
exten => 4,n,Hangup

; ext 5: enable/disable DND mode
exten => 5,1,Answer
exten => 5,n,Wait(2)
exten => 5,n,Macro(DND)
exten => 5,n,Hangup

; ————————————————————————————————
; my dialplan
; standard without area code is routed via sipgate
exten => _X.,1,SetCallerId,1234567e0
exten => _X.,n,Dial(SIP/${EXTEN}@1234567e0)
exten => _X.,n,Hangup

; with area code routed via 1und1
exten => _0X.,1,SetCallerId,4912345678
exten => _0X.,n,Dial(SIP/${EXTEN}@4912345678)
exten => _0X.,n,Hangup

; direct provider selection
; example: select sipgate by dialing 1*THENUMBER
exten => _1*,1,SetCallerId,1234567e0
exten => _1*,n,Dial(SIP/${EXTEN:2}@1234567e0)
exten => _1*,n,playback(invalid)
exten => _1*,n,Hangup
;…
; ————————————————————————————————

[macro-DND]
exten => s,1,GotoIf(${DB_EXISTS(DND/${CALLERID(num)})}?disable-dnd|1)
exten => s,n,Set(DB(DND/${CALLERID(num)})=1) ;There was no entry on AstDB, so We active your DND
exten => s,n,playback(do-not-disturb)
exten => s,n,playback(activated)
exten => s,n,hangup
exten => disable-dnd,1,DBdel(DND/${CALLERID(num)}) ; You are disabling your DND
exten => disable-dnd,n,Wait(2)
exten => disable-dnd,n,playback(do-not-disturb)
exten => disable-dnd,n,playback(de-activated)
exten => disable-dnd,n,hangup
exten => h,1,hangup

; ————————————————————————————————
; default context for incoming SIP calls

[sip-incoming]
; sipgate 0
exten => 1234567e0,1,NoOp(Incoming call on sipgate.de 0)
exten => 1234567e0,n,Ringing
exten => 1234567e0,n,Wait(1)
exten => 1234567e0,n,SetCallerID(„Privat: ${CALLERIDNUM}“ < ${CALLERIDNUM}>)
exten => 1234567e0,n,Goto(dial-sip,1)

; sipgate 1
exten => 1234567e1,1,NoOp(Incoming call on sipgate.de 1)
exten => 1234567e1,n,Ringing
exten => 1234567e1,n,Wait(1)
exten => 1234567e1,n,SetCallerID(„Buero: ${CALLERIDNUM}“ < ${CALLERIDNUM}>)
exten => 1234567e1,n,Goto(dial-sip,1)

; sipgate 2
exten => 1234567e2,1,NoOp(Incoming call on sipgate.de 2)
exten => 1234567e2,n,Ringing
exten => 1234567e2,n,Wait(1)
exten => 1234567e2,n,SetCallerID(„Spam: ${CALLERIDNUM}“ < ${CALLERIDNUM}>)
exten => 1234567e2,n,Goto(dial-sip,1)

; 1und1
exten => 4912345678,1,NoOp(Incoming call on 1und1)
exten => 4912345678,n,Ringing
exten => 4912345678,n,Wait(1)
exten => 4912345678,n,SetCallerID(„1und1: ${CALLERIDNUM}“ < ${CALLERIDNUM}>)
exten => 4912345678,n,Goto(dial-sip,1)

; ————————————————————————————————
; call diversion (may user use mailbox?)
; following callers must _not_ use mailbox, phone should ring forever

; mobile
exten => dial-sip,1,GotoIf($[„${CALLERIDNUM}“ = „01712345678“]?dial-sip-nomailbox,1)

; anonymous callers
exten => dial-sip,n,GotoIf($[„${CALLERIDNUM}“ = „“]?dial-sip-nomailbox,1)
exten => dial-sip,n,GotoIf($[„${CALLERIDNUM}“ = „Unknown“]?dial-sip-nomailbox,1)
exten => dial-sip,n,GotoIf($[„${CALLERIDNUM}“ = „Anonymous“]?dial-sip-nomailbox,1)

; ————————————————————————————————
; all others _may use_ mailbox
exten => dial-sip,n,GotoIf(${DB_EXISTS(DND/101)}?DND-ON,1)
exten => dial-sip,n,Dial(${PHONE1},${CALLDURATION},t)
exten => dial-sip,n,Goto(s-${DIALSTATUS},1)

; we are busy
exten => s-BUSY,1,Voicemail(b101)
exten => s-BUSY,n,hangup

; other status
exten => _s-.,1,Voicemail(u101)
exten => _s-.,n,hangup

; DND is on
exten => DND-ON,1,Goto(_s-.,1) ; goto voicemail (unavailable message)
exten => h,1,hangup

; ————————————————————————————————
; dial: no mailbox, ring forever; on deny hang up

; whitelist: always ring, even if in DND mode
: mobile
exten => dial-sip-nomailbox,1,GotoIf($[„${CALLERIDNUM}“ = „01712345678“]?dial-sip-nomailbox,100)

; dummy
exten => dial-sip-nomailbox,n,GotoIf($[„${CALLERIDNUM}“ = „12345678“]?dial-sip-nomailbox,100)

; check if DND is on, if yes, goto hang up
exten => dial-sip-nomailbox,n,GotoIf(${DB_EXISTS(DND/101)}?DND-ON-nomailbox,1)

; otherwise: dial phone
exten => dial-sip-nomailbox,n,Dial(${PHONE1})
exten => dial-sip-nomailbox,n,hangup

; special for whitelist: dial phone
exten => dial-sip-nomailbox,100,Dial(${PHONE1})
exten => dial-sip-nomailbox,n,hangup

; DND is on, no mailbox, just hang up -> but some callers are "whitelisted"
exten => DND-ON-nomailbox,1,Hangup
; ------------------------------------------------------------------------------------------------

Für die Wartemusik habe ich mich freier Musk bedient, die es z.B.hier gibt. Diese MP3s kopiert man nach/usr/share/asterisk/mohmp3 und aktiviert den entsprechenden Eintrag in der musiconhold.conf:

[default]
mode=quietmp3
directory=/usr/share/asterisk/mohmp3

Nun noch in der /etc/default/asterisk den Start des Servers aktivieren und Asterisk mit /etc/init.d/asterisk start starten.
Mit asterisk -r kommt man auf die Konsole und kann sich z.b. mitsip show registry anschauen, ob die Registrierung bei allen Providern funktioniert hat.
/etc/init.d/asterisk debug liefert noch mehr Infos.

Nun sollte man sich bei seinem eigenen Asterisk-Server mit einem SIP-Telefon mit den konfigurierten Daten (Benutzername 101, Passwort geheim) registrieren können.

Auch wenn die Konfiguration speziell für meine Bedürfnisse angepasst ist, dient sie meiner Meinung nach gut als Grundlage für Erweiterungen. So ist es z.B. problemlos möglich, weitere SIP-Provider (z.B. für andere Rufnummern) hinzuzufügen und diese einem zweiten oder dritten Telefon zuzuordnen.

Viel Spaß beim Telefonieren :-)

VonJonas

Raspberry Pi via MAC OS X aufsetzen

Ein Raspberry Pi kann im Mac OS X wie folgt vorbereitet und installiert werden:

1.  SD Speicherkarte vorbereiten

Die SD Karte muss FAT formatiert sein. Mit folgendem Tool kann die SD Karte relativ einfach auf FAT16 oder FAT32 ausgewählt und formatiert werden:
https://www.sdcard.org/downloads/formatter_3/SDFormatter_0.91.pkg

Achtung: Die Daten auf der ausgewählten Karte gehen unwiederruflich verloren!!!

2. Raspberry PI Image runterladen

Nun das offizielle Raspberry PI Image (Raspbian OS) unter folgender Download Seite runterladen und abspeichern: http://www.raspberrypi.org/downloads

Für meinen Fall habe ich folgendes ZIP File ausgewählt:
http://downloads.raspberrypi.org/images/raspbian/2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip

Das File wurde (standardmässig) unter Downloads gespeichert.

3. ZIP File entpacken

Das runtergeladene File nun entpacken, dann erhalten wir z.B. folgendes ISO File:

2012-10-28-wheezy-raspbian.img

4. SD Karte überprüfen

Nun die SD Karte einsetzen und nachschauen welche Mount Stufe / Priorität die SD Karte vom Rechner automatisch erhalten hat. Dies kann man wie folgt überprüfen:
Apple Menu –> Über diesen Mac –> Weitere Informationen… –> Systembericht –> USB –> Unter USB Hochgeschwindigkeits-Bus / Hub / Integrierter Speicherkartenleser dann die Info unter BSD-Name:
In meinem Fall ist es:   disk2
Merke dir diese Nummer “2″

5. SD Karte unmounten

Nun muss die SD Karte ungemountet, aber nicht ausgeworfen werden!
Terminalclient:

sudo diskutil unmount /dev/disk2s1

6. SD Karte mit Image laden

Danach kann die SD Card mit dem runtergeladenen Raspberry PI Image geladen werden:

sudo dd if=Downloads/2012-10-28-wheezy-raspbian.img of=/dev/disk2 bs=1m

Nach ca. 10-15 Minuten sollte eine ähnliche Meldung wie diese erscheinen:

1850+0 records in
1850+0 records out
1939865600 bytes transferred in 903.551115 secs (2146935 bytes/sec)

7. SD Card im Raspberry Pi einstecken

Die SD Card nun auswerfen und im Raspberry Pi einstecken.
Raspberry Pi anschliessen und starten. Viel Spass!!

 

VonJonas

RemoteDesktop port ändern

  1. Starten Sie den Registrierungs-Editor.
  2. Suchen Sie den folgenden Registrierungsunterschlüssel, und klicken Sie darauf:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
  3. Klicken Sie im Menü Bearbeiten auf Ändern, und klicken Sie anschließend auf Dezimal.
  4. Geben Sie die neue Portnummer ein, und klicken Sie auf OK.
  5. Beenden Sie den Registrierungs-Editor.
  6. Starten Sie den Computer neu.

Man muss der Firewall  auch noch sagen das der freigegebene port auch öffentlich erreichbar ist.