Posts Tagged ‘Linux’

SFTP in chroot()-Umgebung made easy

Mittwoch, April 6th, 2011

Uploader möchte man im Allgemeinen auf dem eigenen Server in Ihre Home-Directories eingesperrt wissen. Die haben außerhalb einfach nichts verloren. Das geht seit Jahren problemlos mit dem ProFTPd mit der simplen Direktive:

DefaultRoot ~

FTP ist mittlerweile aber ziemlich überholt. Ich selbst benutze nur noch SFTP oder Rsync-over-SSH. Einfach weil die Übertragung verschlüsselt stattfindet und eine Publi-Private-Key Authentifizierung stattfindet und so keine Passwörter gespeichert oder gar im Klartext übertragen werden müssen.

Allerdings bricht man sich die Beine, sofern man jemanden in ein Verzeichnis einsperren möchte und derjenige aber ein etwas (zurecht) ausgeprägeteres Sicherheitsbedürfnis hat und eben eine verschlüsselte Verbindung nutzen möchte.

Beim World-Update meines Gentoo-Servers fiel mir das USE-Flag „sftp“ beim Proftpd auf. Also gleich mal das Flag aktiviert und proftpd neu kompiliert. Nun ist auch die sichere Verbindung mit chroot() wirklich einfach geworden. So funktionierts:

SFTPEngine      On
SFTPLog /var/log/proftpd_sftp.log
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key

# Configure the file used for comparing authorized public keys of users.
SFTPAuthorizedUserKeys file:~/.ssh/sftp_authorized_keys

# Enable compression
SFTPCompression delayed

# Allow the same number of authentication attempts as OpenSSH.
#
# It is recommended that you explicitly configure MaxLoginAttempts
# for your SSH2/SFTP instance to be higher than the normal
# MaxLoginAttempts value for FTP, as there are more ways to authenticate
# using SSH2.
MaxLoginAttempts 6

Die Public-Key muss allerdings im RFC4716 Format vorliegen. Konvertieren kann man so:

ssh-keygen -e -f ~/.ssh/id_rsa.pub

Weitere Infos gibt es direkt beim Autor des Moduls

DD-WRT als OpenVPN-Server

Donnerstag, Juli 30th, 2009

Die aktuellen Preise der Energieversorger drängen zum Umdenken – irgendwie.

Es ist zwar sehr angenehm einen Server zuhause stehen zu haben, auf den man sich rund um die Uhr connecten kann. Dumm nur, wenn er 95% des Tages idlet.

Eine neue Lösung musste her um sich von unterwegs daheim einzuloggen und z.B. den LinVDR zu starten.

Ein WRT54GL verrichtet seit Jahren klaglos seinen Dienst mit DD-WRT. Das hatte ich mir ausgesucht, weil ich mal mit HotSpot-Funktionalitäten herumspielen wollte. Hatte damals auch prima geklappt. Der WRT stand im LAN, ein Radius-Server und die Splashseite waren auf meinem Server im Netz.

Geschickterweise gibt es auch ein Firmware-Image mit integriertem OpenVPN sowohl Client als auch Server.

Hier meine Einstellungen (Klick aufs Bild für Originalgröße):

dd-wrt-vpn-1

In die Felder:

Public Server Cert
Public Client Cert
Private Client Key
DH PEM
trägt man die generierten Keys bzw. Zertifikate ein. Prinzipiell kann man nach der Anleitung im DD-WRT-Wiki vorgehen.
Hier noch meine openvpn.conf auf dem WRT:
server 10.9.0.0 255.255.255.0
port 1195
proto udp
tls-server
dev tun
ca ca.crt
cert cert.pem
key key.pem
dh dh.pem
client-to-client
push "route 192.168.178.0 255.255.255.0"
comp-lzo
ping-timer-rem
keepalive 20 180
verb 3

Abweichend zum Default hört das OpenVPN auf dem WRT auf Port 1195. Ich habe das lieber sauber in der Fritz!Box die die DSL-Leitung handlet getrennt. Ausserdem verwende ich intern wie extern bei solchen Sachen gerne dieselben Portnummern.

Nun muss man dem WRT noch mitteilen, dass beim Booten auch das OpenVPN mitstarten soll:

dd-wrt-vpn2

Das Ganze nochmal für Copy&Paste, die beiden Skripte sind jeweils in die Inputbox bei Kommandos einzutragen:

cd /tmp/openvpn
/usr/sbin/openvpn --daemon --config /tmp/openvpn/openvpn.conf
sleep 5

und die Firewall, damit auch sauber ins Netz geroutet wird:

/usr/sbin/iptables -I INPUT -p udp --dport 1195 -j ACCEPT
/usr/sbin/iptables -I INPUT -i tun+ -j ACCEPT
/usr/sbin/iptables -I FORWARD -i tun+ -j ACCEPT

Jetzt kann ich auch von unterwegs schnell mal den Videorekorder per WOL anwerfen und Timer erstellen o.ä.

links for 2009-07-01

Mittwoch, Juli 1st, 2009

links for 2009-06-05

Freitag, Juni 5th, 2009

Kernel-Config für Nehalem Xeon CPUs (i7)

Freitag, Mai 8th, 2009

Diese Tage durfte ich mich mit den neuen Intel Xeon CPUs beschäftigen. Diese basieren auf der Intel Core i7 Plattform. Also wie üblich die Rechner mit der Gentoo-Live CD gebootet. Netzwerk ging wg. zu altem Kernel auf der CD natürlich noch nicht. Also das Installations-Image per USB-Stick auf den Rechnern installiert, Grub geschrieben, Netzwerk konfiguriert und neu gebootet.

Dann habe ich erstmal nicht schlecht gestaunt, da statt der erwarteten und auch von der Live-CD erkannten 8 CPUs (4 Cores + HT) nur eine CPU zu sehen war.

Natprlich habe ich alle Einstellungen umgehend gecheckt. SMP und HT-Support waren im Kernel aktiviert. Alles wunderbar. Trotdem nur eine CPU. Nach gut 10 Versuchen hatte ich dann aber alle fehlenden Optionen im Kernel. Die passenden Config für 2.6.29-gentoo-r3 hängt hier an.

kernel-config-nehalem

Temperaturmessung mit Linux

Mittwoch, April 15th, 2009

Im Netz gibt es bereits hinreichend Literatur wie man mit Dallas 1-Wire Temperaturfühlern (DS1820) zum Einen die Temperatur messen kann und zum Anderen wie man aus diesen Werten dann hübsche Grafiken erzeugt.

Temperaturmessung

Die Werte des Sensors werden per crontab in eine RRDB eingepflegt und daraus die Grafik erzeugt. Wie das alles geht steht in den Links oben.

Linux auf über 2TB installieren – und booten

Mittwoch, November 26th, 2008

Die Platten werden größer und größer, die Preise fallen in den Keller. Um große Festplattenkapazitäten am Stück nutzen zu können gibt es verschiedene Wege, die nach Rom führen. Natürlich kann man LVM benutzen.

Eine andere Variante ist ausserdem, die Platten an einen Hardware-Raid-Controller anzuschließen, ein RAID5 (man braucht ja Platz und die Performance ist sekundär) einzurichten und darauf am Stück ein System zu installieren.

Gesagt, getan. Mit 8 Seagate 1TB (richtige 930GB)  HDDs kommt man im RAID5 schon knapp an 7TB heran. Nett.

Ein paar Haken gibt es dann aber doch. Regulär Partitionen erzeugen ist erstmal nicht drin. Glück hat man, wenn auf dem Installationsmedium parted drauf ist.

# parted /dev/sda
# mklabel gpt
# mkpart primary 1 2048

mkpart (primary|extended) Anfang_in_MB Ende_in_MB

mkpart primary linux-swap Anfang Ende # für SWAP
set 1 boot on

Damit alle nötigen Partitionen anlegen

Infos zu GPT: http://en.wikipedia.org/wiki/GUID_Partition_Table

Dann mit mkfs wie gewohnt die Partitionen formatieren und mounten, die Grössen sollten dann auch passen, d.h. df -h sollte bei der grössten Partition ein „T“ anhängen, fehlen da 2TB ist der Disklabel noch nicht richtig -> parted nochmal checken.

Bei der Kernel-Config müssen dann diese Haken gesetzt werden:

  • Support for Large Block Devices
  • EFI GUID Partition support

Bei Kerneln >= 2.6.25 ist die Option „Support for Large Block Device“ verschwunden, anscheinend funktioniert das mittlerweile von allein.

Da Grub leider noch nicht so weit ist, diesen Partitionstyp booten zu können verwenden wir den guten alten lilo.

Hier ist in der append-Zeile hinzuzufügen

append="gpt"

Dann dürfte das große RAID soweit sein, dass davon gebootet werden kann

Immer beliebt, das Gentoo-Wiki

Mittwoch, September 19th, 2007

Eine schier unerschöpflicher Quelle an Know-How bietet das Gentoo Linux Wiki
Für fast alle Bereiche, die man als Admin oder User braucht gibt es Infos und Howtos. Man ist natürlich nicht davor gefeit, dass es doch nicht so klappt, wie man sich das vorstellt, aber in der Regel sind die Informationen sehr brauchbar. In manchen Bereichen leider nicht auf die aktuellen Programmversionen angepasst, aber als versierter Geek bekommt man die projekte dann auch alleine gebacken.

Powered by ScribeFire.

Nicht enden wollende Apache-Prozesse killen

Mittwoch, August 29th, 2007

Man stelle sich vor, man hat einem Webserver ein paar mal ein Reload mit auf den Weg gegeben. Nun soll es aber Software geben, die die Prozesse dann einfach nicht mehr frei gibt.

Den Weberver anzuhalten und neu zu starten wäre vielleicht eine Lösung, aber sicherlich keine gute. Eleganter geht es mit:

lynx --dump http://localhost/server-status | grep " G " | \
cut -d" " -f 5 | xargs kill -9

So kann man sich bequem die Prozess-IDs der hängenden Prozesse ausgeben lassen und sie abschiessen…

Blogged with Flock

Tags: , ,

kein dmesg mehr bei 64Bit

Freitag, Juli 20th, 2007

Wie es der Teufel so will muss man beim 64Bit-Gentoo mcelog statt dmesg verwenden um Kernelmeldungen zu sehen… Muss man erstmal draufkommen