Raspberry Pi ZNC IRC bouncer problem and SSH tunneling into bouncer

Installing Raspberry Pi with a ZNC IRC bouncer and having the following problem:

<*status> Cannot connect to IRC (Cannot assign requested address (Is your IRC server’s host name valid?)). Retrying…

Even when your irc server adress is correct?

Looks like the dev team of znc is aware of the problem and the following will help:

/znc setbindhost 0.0.0.0
/msg *status jump

To make it persistent:

user@host /home/pi $ killall znc
user@host /home/pi $ vi $HOME/.znc/configs/znc.conf
insert:
BindHost = 0.0.0.0 //to every user
Start znx:
user@host /home/pi $ znc

Happy bouncing

Btw. a bouncer is a tool to stay connected to your irc network(s) in order to buffer stuff that is being posted while you are not on your keyboard.
The bouncer will stay on the server and in the channels you configured.
Also private messages will be stored, so you will get them after you return to your keyboard.

The other feature is that the bouncer also is your one and only irc server, so you do not have to connect to multiple server instead just the bouncer, which might be quite handy.

To install ZNC on your raspberry:

user@host /home/pi $ sudo apt-get update
user@host /home/pi $ sudo apt-get upgrade
user@host /home/pi $ sudo apt-get install znc
user@host /home/pi $ znc --makeconf
follow the instructions to configure your Bouncer
Remember Port, username and password!

To connect to your bouncer use:

[ ** ] Try something like this in your IRC client...
[ ** ] /server +$PORT $USERNAME: [ ** ] And this in your browser...
[ ** ] https://:$PORT/

You can also configure the bouncer via web interface, if you have choosen to use SSL remember to connect https:// and not http://

To secure your bouncer it might be worth to activate the module fail2ban within znc, that will ban users that have n wrong login attempts.

Also it might be worth to not bring your bouncer to the public internet, better hide it in your local network and just ssh to your system and forward the port via SSH, so it will be a IRC over SSH tunnel.

Howto:

IRC via SSH tunnel



Enivrenment:
Bouncer:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN aus (0.00/0/0)
tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN aus (0.00/0/0)

SSH is available from public internet and 1025 is firewalled with DENY

Use the following SSH tunnel:


ssh pi@yourpublicip -L 7778:129.168.1.51:1025

where 1025 is your znc port
7778 will be the port your local system is listening to
So you can then connect to your bouncer using:

/server 127.0.0.1 +7778 username:passwort

Happy remote bouncing!

SVN subclipse howto

Subclipse Apple OSX

Subclipse Apple OSX

Der Informatik Fachbereich der Uni Köln etwas versteckt eine sehr gut beschriebene Anleitung zum Thema SVN mit Subclipse.

Die Anleitung umfasst dabei die Installation und Benutzung des Plugins und Umschreibt die Vorgänge / Notwendigkeiten in ausreichendem Maße.

SVN sublipse howto Uni Köln

Subclipse ist ein Plugin der freien Entwicklungsplattform Eclipse, welche plattformunabhängig auf Java aufbaut. Sublipse wird dabei zur Versionierung von Dateien im Entwicklungszyklus genutzt und kommuniziert mit einem Subversion Server.

Subversion:

Subversion (SVN) ist eine Open-Source-Software zur Versionsverwaltung von Dateien und Verzeichnissen.

Die Versionierung erfolgt in einem zentralen Projektarchiv (engl. repository) in Form einer einfachen Revisionszählung. Wenn Änderungen an Inhalten verteilt auf den Computern der Bearbeiter ausgeführt werden, werden zwischen dem Projektarchiv und einem Arbeitsplatz jeweils nur die Unterschiede zu bereits vorhandenen Ständen übertragen; anfangs das gesamte Projekt, später nur Änderungen.[…]

Aptana Eclipse SFTP remote arbeiten

In einem älteren Artikel wurde beschrieben, wie Aptana, das frei Entwicklungswerkzeug auf Eclipse Basis genutzt werden kann, um remote auf einem FTP Server zu arbeiten.

Im täglichen Arbeitsablauf hat sich dieses Tool mittlerweile bewährt, doch Stillstand ist ja bekanntlich Rückschritt. Die konsequente Weiterentwicklung ist Verschlüsselung. Wie bekommt man diese Daten am einfachsten verschlüsselt. Die Lösung ist simpel: SFTP (SSH File Transfer Protocol).

Dieses wird mit SSH mitgeliefert und ist somit auf jedem Webserver mit SSH Zugang verfügbar. Da 99,9% aller Webserver, Rootserver und virtuellen Server über einen solchen Zugang verfügen ist die Verbreitung gewährleistet.

Technisch basiert es auf SCP, dem Secure Copy Protokol.

Um in Aptana SFTP nutzen zu können, muss ein Plugin installiert werden. Dieses ist über: http://aptana.com/plugins/ verfügbar, wird aktuell jedoch nicht unterstützt. Die Installation wird über Help -> Software Updates vorgenommen.

Danach ist SFTP als neue Möglichkeit im File Browser verfügbar. Dort kann dann eine neue Verbindung angelegt werden. Natürlich muss der SSH Nutzer Zugriff auf das public Verzeichnis des Webservers haben, diese Thematik muss aber gesondert bedacht werden.

SSH Key Linux OSX Problem

Mittels einer SSH Key authentication sichert man Verbindungen ab, bzw stellt sicher, dass die Person, die auf einen Server will, auch wirklich die Person ist, die sie vorgibt zu sein. DIeses Verfahren wird mit einem Schlüsselpaar sichergestellt, das aus einem public und einem private key besteht. Auf dem Server liegt dabei das public file, der Bneutzer muss das private file besitzen.

Solch ein Schlüsselpaar kann mittels putty generiert werden. Als Resultat erhällt man eine .ppk file und eine .pub file. Die .pub File, bzw dessen Inhalt kopiert man auf dem Server in die Datei

/home/user/.ssh/authorized_keys

Die ppk File speichert man an einem sicheren Ort. Möchte man nun mittels putty auf den Server zugreifen, kann man im ssh Menü einstellen, welchen key er dazu verwenden soll.

Kopiert man diesen ppk key jedoch auf ein unix system, und versucht dann auf den server mittels:

ssh -i /home/eigenerlocalerBenutzer/.ssh/private.ppk host.com -p 12345 -v

zuzugreifen, bekommt man die folgende Fehlermeldung:

debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>

Das Problem ist das ppk File, welches kein offenes Dateiformat ist. Um den private Key auch unter Linux zu nutzen, muss in puttygen der Schlüssel geöffnet werden und ein Export in das openssh Format vollzogen werden.

Verwendet man nun diesen openssh private Key, funktioniert es ohne Probleme.

Ein weiterer Stolperstein unter Unix Betriebssystemen sind die Zugriffsrechte. Ein server wird einen Key nicht akzeptieren, wenn auf dem Client die ssh Files von jedem änderbar sind. Dies äußert sich in der Fehlermeldung:

Permissions 0777 for ‚.ssh/key.priv‘ are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: .ssh/key.priv

Wobei 777 beispielhaft als negativstes Beispiel aufgeführt ist.

Korrekt müssen die Zugriffsrechte folgendermaßen gesetzt sein:

Der ssh Key und das Verzeichniss muss dem User gehören, der ihn benutzen soll.

chown username /Users/username/.ssh/*

chown username /Users/username/.ssh

Und die Rechte müssen gesetzt sein:

chmod 700 /Users/username/.ssh/

chmod 600 /Users/username/.ssh/*

Damit ist das Zugriffsproblem gelöst.

Um den Zugriff etwas einfacher zu gestaltetn, kann eine config File im ssh Ordner auf dem Client hinterlegt werden mit folgender beispielhafter Konfiguration:

Host host.de
IdentityFile ~/.ssh/key.priv
Port 12345
PreferredAuthentications publickey
Protocol 2

Host entspricht dem Host, auf den sich die Einstellungen beziehen. IndetityFile gibt den Ort des privaten Keys an. Port muss nur angegeben werden, wenn der SSH Server auf einen anderen Port eingestellt ist. PreferredAuthentications publickey stellt die Methode ein und Protocol stellt die verwendete SSH Version ein.

Backup einer MYSQL Datenbank in Shellscript

Um eine Datenbank über ein Shellscript zu sichern bietet sich mysqldump an.

Wenn man dabei einen Server hat, der nicht gleich dem Datenbankserver ist, muss die Datenbank remote gesichert werden, mysqldump bietet dabei an, per Option einen Host anzugeben. Daraus wird dann der folgende Befehlt, der in einem Backup Script verwendet werden kann:

mysqldump -u USER -pPASSWORT -h HOST DATENBANKNAME > backup.sql