Pruefen ob ein Computer online ist mit ping und perl
Ich habe bei der Arbeit ein kleines Perl-Skript geschrieben, welches prüfen sollte, ob bestimmte Computer in bestimmten Räumen(also IP-Ranges) noch online sind oder schon automatisch ausgestellt wurden. Dieses Skript sendet ein Paket über ping und guckt dann, ob es ein packetloss gibt. Im Grunde wäre das in der Bash besser gewesen, aber so kann man das, wenn man es ein bisschen anpasst, auch unter anderen OS verwenden.
Code
# The string containsPacketLoss is searching for
$packetloss = "100% packet loss";
# Init
$returnval = "";
print "\nCheck if Computers are online...\n";
# Scan IP-Range
for (my $i = 1; $i <=255; $i++) {
# c = one package, w = deadline, q = quiet
$ipcmd = "ping -c1 -q -w1 169.254.1." . $i;
# execute and retreive output
$returnval = `$ipcmd`;
if (containsPacketLoss() == 0) {
# output
print "Computer with IP 169.254.1." . $i . "is still online.\n";
# write log file
system("echo Computer with IP 169.254.1.". $i . localtime(time) . " ONLINE >> /home/user/log");
}
}
sub containsPacketLoss(){
# check by RegEx if the string specified above is in the returnvalue
# of the ping command
if ($returnval =~ m/$packetloss/ ){
return 1;
}
return 0;
}
Download
Wo stehen die Server von …
Mit dem Firefox Plugin Flagfox(Mozilla Add-On Page) lassen sich von den meisten Websites die Serverstandorte anhand der Nationalflagge sowie die Domainzugehörigkeit herausfinden. Ein Mouse-Over zeigt die Länder nochmal ausgeschrieben an, da man ja nicht unbedingt von allen >190 Ländern die Flagge kennt.
XMPP/Jabber, VoIP(jingle), Webcam und Remote Desktop auf Dockstar
Wenn man sich die anderen Beiträge hier anguckt, merkt man, dass ich mich in letzter Zeit ziemlich viel mit XMPP/Jabber, Verschlüsselung und VoIP beschäftige. Leider gab es lange Zeit keine gute Alternative zu Skype aber nach ein paar Stunden testen, meine ich tatsächlich eine Lösung gefunden zu haben: jitsi. Wer das schon länger verfolgt, kennt das Programm vielleicht noch unter dem Namen SIP-Communicator. Inzwischen ist es ein vollwertiger Instant Messenger, der auch ICQ, Windows Live(MSN) und weitere Messenger unterstützt. Mit der Implementierung von jingle gehen jetzt auch Voice Calls und Webcam, grade unter Windows 7 zu Windows XP und Ubuntu 10.04 getestet.
Nun ist man natürlich immer noch abhängig vom Anbieter des XMPP-Servers, allerdings nicht mehr von Red5, einer Flash Erweiterung in Java :-/ ... mit der ebenfalls Webcam und Audio möglich war, s. jabber-server.de/red5 über Spark(Client) und Openfire (Server). Hier also mal eine kleine Auflistung von öffentlichen Jabber-Servern:
- http://jabber.org
- http://web.jabber.ccc.de/ (Chaos Computer Club Deutschland)
- http://jabber-server.de (privat, non-profit)
- JUNe-Projekt (Jabber Server von einigen Unis in Deutschland und Österreich)
- Liste öffentlicher Jabber Server im Ubuntu-Wiki
Für optimale Privacy kann man natürlich auch einen eigenen Jabber-Server, z.B. ejabberd aufsetzen. Das funktioniert auch mit einer 1GHz ARMEL CPU auf der Dockstar (!)
Ein sehr geiles Feature, nach dem ich überhaupt nicht überhaupt gesucht hatte, ist die Remote-Desktop Funkionlität. Sonst habe ich das immer über das proprietäre logmein.com/hamachi gemacht, aber das gefällt mir natürlich besser:) OTR für's chatten ist eingebaut und funktioniert auch out-of-the-box mit Pidgin auf der Gegenseite( und damit wohl auch Adium)
update: Die Gespräche sind über ZRTP verschlüsselt
Pidgin und OTR in einer Datei
Bei einer Diskussion beim Easterhegg 2011 kamen wir auf die Idee, dass die Leute vielleicht einfacher dazu bewegen wären, Pidgin mit OTR-Verschlüsselung zu installieren, wenn es einfach nur eine Installationsdatei geben würde und man nicht, wie auch z.B. in meinem Blog(engl.), man eine Anleitung dazu schreiben muss. Diese hier ist einfach:
1. Download
2. Draufklicken
- Pidgin Version: 2.7.11
- pidgin-otr Version: 3.2.0-1
(Sowohl Pidgin als auch pidgin-otr sind freie Software unter der GPL.)
//edit: Alternativ lohnt sich auch Jitsi, das auch noch Skype(Audio/Webcam) und Remote-Desktop Programme ersetzen kann.
Making Skype secure via VPN or SSH Tunnel
Since you just can not convince people not to use Skype because it. really. is. insecure, at least for professionals and businessmen. I decided to make Skype more secure by adding extra encryption, which is, as I found out, pretty simple. Just for written conversations you might want to try cryptochat, an extension just for skype(128-bit RSA), but no guarantees, I just googled it myself. Also consider using another service besides Skype(de) for as many connections as possible.
VPN (Virtual Private Network) (easiest)
A VPN creates a tunnel to a service provider you trust, preferably in Sweden, Iceland or other countries that are legally allowed not to store traffic data(unlike the US). This means every bit of traffic is as good secured as the encryption to the end of the tunnel is. Between you and your computer, there is nothing(not your ISP or eavesdropper) that could intercept the data. On the other hand, you have to trust the VPN Provider.
For a few bucks a month(~5€) you can rent a VPN Service from several providers, see list below. Be sure not to use PPTP, because this is fairly insecure as well, a good choice might be OpenVPN or IPSec/L2TP. Most of the providers also have an idiot-proof introduction and how-to on their homepage.
SSH(Secure Shell)(advanced)
With both putty under Windows and OpenSSH under Linux it is possible to create a tunnel and use it on your computer like a socks5 proxy server. For creating a really secure SSH connection, don't use passwords but public-key infrastructure. Without any programming you can set up the encryption up to 4096bit which is quite strong. Some of the latest OpenSSH Versions even support ECC. Use this tutorial to create a tunnel with windows, for Linux use this command:
ssh -D 1337 user@host
Where 1337 is the port, user is the linux username and host is the hostname of your provider. Then configure your Skype with the following settings(not for VPN!):

Important
All the tweaks shown here don't make skype secure(!), just a little more secure as it was before, adding extra encryption because of the RC4 Implementation. It doesn't prevent Skype or Intelligence Services from intercepting what your skyping. If you're computer is unsecure e.g. through keyloggers, trojan horses etc, VPN and SSH is just useless.
Providers
- https://www.shellfire.de/
- https://www.vpntunnel.se/de (only e-mail adress, nickname and a payment method(see below))
- http://strongvpn.com/
- https://www.relakks.com/
- http://unblockvpn.com
- http://www.google.com/search?hl=en&q=rent%20vpn
Payment
- Anonymous payment at telecomix
- Pay via bitcoins, an anonymous internet crypto-currency
- Credit Cards
- Paypal
//edit: make sure you check out jitsi !
Internet Verbindung ueber WLAN teilen mit Xubuntu 10.04
Ganz einfach eigentlich, man muss nur im XFCE4 Network Manager Neues Funknetzwerk erstellen... anklicken, einen Netzwerknamen(SSID, <=32 bytes) eingeben und eine Verschlüsselung eingeben, möglichst nicht WEP, weil das bekanntlich leicht knackbar ist, dann ein Passwort. Er verbindet sich dann selbst zu dem Netzwerk und teilt somit die Internet Verbindung die per Kabel oder 2ter W-LAN Karte kommt. Mit der selben W-LAN Karte die Verbindung teilen geht nicht.
Hier nochmal in Bildern(click to enlarge):

SSID, Verschlüsselung und Passwort eingeben
Einstellen nachschauen:

Rechtsklick auf Network Manager, Verbindung bearbeiten...

Entsprechendes Netzwerk auswählen und bearbeiten klicken

Verbindungstyp sollte AdHoc sein
IPv6 Privacy extensions Ubuntu 10.04
If not already happened, add the following to /etc/udev/rules.d/70-persistent-net.rules:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*",
RUN+="sysctl net.ipv6.conf.%k.use_tempaddr=2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*",
RUN+="sysctl net.ipv6.conf.%k.use_tempaddr=2"
Usually this happens when installing miredo or similar IPv6 tunneling software, but you might want to double-check it. Also, check if the eth* and wlan* fit your ethernet/wifi devices.
btw, unfortunately Android and I-Phone Devices don't have this, which causes quite a bit privacy concerns, see heise.de on IPv6 on Smartphones for more information (German)
iodine – free wifi hotspots mit IPv4 ueber DNS und Dockstar
Vorweg: Diese Anleitung dient nur zur Lehrzwecken, ich bin nicht dafür verantwortlich, wenn damit, sei es legal oder illegal Sicherheitssperren umgangen werden!
Jeder kennt das Problem, das man am Gate am Flughafen sitzt oder im ICE und es gibt einen W-LAN Hotspot, nur leider muss man dafür zahlen...In Australien gab es an jeder Ecke Paid HotSpots(häufig Global Gossip), zu horrenden Preisen und mit einer unverschämt langsamen Verbindung.
Nun hab ich grade über einen Bekannten eine theoretische Lösung für solche bzw. die meisten solcher unangenehmen Anbieter gefunden: iodine
Dieses kleine Programm sendet alle Pakete über Port 53, also DNS, welches die meisten Firewalls durchlassen, testen kann man das mit folgendem Befehl:
$ ping repat.de
PING repat.de (212.12.54.159) 56(84) bytes of data.
Wenn sich also der Name in eine IP-Adresse auflöst, dann sollte das hier prinzipiell möglich sein.
Eine kleine Anleitung, da ich hier nicht alles aufschreiben kann, was gemacht wurde: Als allererstes muss DNS richtig konfiguriert werden für die Domain, dazu brauch man vollen Zugriff. Es ist mit einer dyndns Adresse unseres Wissens nicht möglich, s. dazu das README .
Dann kann man auf der Dockstar, einem kleinen Homeserver, oder auch auf jedem beliegen Server, auf den man Root-Zugriff hat, den iodine-server starten :
iodined -P password 192.168.3.123 meine.dyndns.tld
Auf dem Client jetzt die /etc/default/iodine anpassen:
# Default settings for iodine. This file is sourced from # /etc/init.d/iodined START_IODINED="false" IODINED_ARGS="192.168.3 tunnel.domain.tld" IODINED_PASSWORD="Passwd"
Falls man die Dockstar benutzt, muss man nur noch Port 53 auf die Dockstar IP im Router forwarden und den Client starten:
sudo iodine -f tunnel.domain.tld
tunnel.domain.tld ist die subdomain, die der Bekannte für mich eingerichtet habt für meine dyndns Adresse.
Voila, free Internet überall:)
//update
Geschwindigkeitsoptimierer:
- Bilder ausstellen
- Einen User-Agent von mobilen Geräten/Smartphones benutzen(z.B. mit User Agent Switcher als Firefox-Plugin)
- Opera Turbo aktivieren beim Opera Browser(Website wird von Opera Servern angefragt, komprimiert, dir zugesendet und dort wieder entpackt, also quasi ein Proxy)
- lynx als textbasierten Browser
Skype Alternative: XMPP/jabber mit jingle
Ich glaube, wenn ihr diesen Artikel gefunden habt, muss ich nicht weiter erklären was Skype ist, oder? Was wahrscheinlich nicht so viele wissen ist, dass der Sourcecode nicht öffentlich ist - im Gegenteil: es wird angeblich nich gerade wenig Energie darauf verwendet, das Programm nicht reverse engineerbar zu gestalten. Mit anderen Worten: niemand weiss, was da eigentlich passiert.
Zum Glück gibt es (schon seit einiger Zeit) eine freie Alternative zu Instant Messaging Programmen: Jabber bzw. das Protokoll XMPP. Das wird übrigens auch von Google Talk, Facebook Chat, einigen Android Anwendungen, identi.ca und vielen mehr verwendet. Um Sprache zu übertragen brauch der Jabber Client zusätzlich noch die sog. jingle - Erweiterung.
gajim, jabbin und empathy unter Linux haben beide diese Funktionalität und es klappt auch wunderbar, das habe ich grade mit meinem eigenen dockstar jabber server ausprobiert, allerdings stürzte empathy noch ab, gajim funktionierte einwandfrei. Jetzt muss man nur noch seine Freunde davon überzeugen, sich einen Jabber Account zuzulegen, z.B. bei jabber.org oder jabber.ccc.de
Apache2, mod_security, mod_chroot und OpenID
So, das war eine lange Nacht...
Ein Debian Server mit OpenID auf der Dockstar sollte es werden, garnicht so einfach. Ich hatte mich für phpmyopenid, einer Installation des populären phpmyid entschieden, das Ganze läuft über apache2.
Den hatte ich hier schonmal so sporadisch am laufen, aber ich hatte mir nie wirklich Gedanken um Sicherheit gemacht, da ich den immer nur kurz an und dann gleich wieder ausgestellt hatte. Hier also ein paar Tricks zum Sichern eines Apaches(keine Garantie für irgendwelche Schäden bzw. Entschädigung für Hacks etc!)
Diese nette Anleitung von petefreitag.com: 20 ways to Secure your Apache Configuration
Das Modul mod_security, dafür gibt es folgendes Debian Paket: libapache-mod-security und mod-security-common
Das Modul mod_chroot, dafür gibt es ebenfalls ein Debian Paket: libapache2-mod-chroot und mod-chroot-common
Die müssen erstmal installiert werden. Am besten mal Google danach fragen, da muss man sich einfach reinlesen, und zwar nicht grade wenig;)
Dann kann man eigl dieser Anleitung auf howtoforge folgen.
Ich hab mich für 3.2 entschieden, da eh nur eine Instanz bei mir läuft. Den Link zu dem PID File brauchts aber trotzdem. einfach in /etc/apache2/sites-available/default von /var/www zu / tauschen.
Nun müssen die richtige Rechte gesetzt werden, da bin ich mir nicht ganz sicher. Damit phpmyopenid läuft muss, natürlich, php5 installiert sein.
Im Jail geht das nun aber eigl nicht, also hab ich mal den Ordner in /var/www kopiert, erstmal alle Rechte gegeben und dann so eingestellt, dass nur Eigentümer und Gruppe drauf zugreifen können. Apache läuft bei mir nicht mehr unter der Standartgruppe und der User hat auch keine shell sondern /dev/null.
#cp -r /var/lib/php5 /var/www/var/lib #chmod -R 777 /var/www/var #chmod -R o-rwx /var/www/var
Das müsste ja insofern sicher sein, als dass das Ding ja eh in ner Art Sandbox läuft oder? Vll kann das ja mal jmd kommentieren oder mir 'ne Mail schicken. Selbst wenn jetzt der OpenID Server komprimitiert wird, ist der Server an sich ja sicher.
Damit man die Fehlermeldung noch umgeht hab ich in /etc/httpd.conf (wird von apache2.conf eingebunden) noch
ServerName alice.bob.org
geschrieben mit alice.bob.org als meinem dyndns Namen.
phpmyopenid war nicht wirklich schwierig:
- mit wget runterladen
- mit unzip entpacken
- ordner nach /var/www verschieben
- aus dem Versionsordner so entpacken: http://bob.alice.org/phpmyopenid
- http://bob.alice.org/phpmyopenid/install.php
-
#rm /var/www/phpmyopenid/install.php
So das war's hoffentlich, auf Rückmeldung bin ich immer gespannt:)
Anmeldungen sind natürlich witzlos ohne Verschlüsselung, deswegen wird das nächste Projekt wohl SSL sein, natürlich ein eigenes Zertifikat(s. Alternativlos Folge 5)
update:
Tipp: damit der Workload nicht so gross wird, einfach in der /etc/apache2/httpd.conf die Paramter StartServers und die folgenden ein bisschen runtersetzen, ausser man betreibt tatsächlich eine Homepage.




