Kategorien
Linux

Sparkleshare als alternative zu “STRATO HiDrive”, Dropbox, “Google Drive” oder SkyDrive

Linux Server für die Nutzung mit Sparkleshare vorbereiten:
In die Datei “authorized_keys”

adduser --disabled-password {USERNAME}
mkdir /home/{USERNAME}/.ssh
vim /home/{USERNAME}/.ssh/authorized_keys
chmod 700 /home/{USERNAME}/.ssh
chmod 600 /home/{USERNAME}/.ssh/authorized_keys
chown {USERNAME}:{USERNAME} /home/{USERNAME}/.ssh -R

git installieren und das Homeverzeichnis des Benutzers als git-Repository anlegen:

apt-get install git git-core
git init --bare /home/{USERNAME}/

anschließend die Synchronisation testen:

git clone ssh://{USERNAME}@server.tld/home/{USERNAME}/

Windows Client

Nun noch den Windows Client herunter laden:

https://github.com/hbons/SparkleShare/downloads

Und nach der Einrichtung angeben, dass man einen eigenen Server verwenden möchte

Server: ssh://{USERNAME}@server.tld:Port
Pfad: /home/{USERNAME}
Kategorien
lighttpd Linux

Wie finde ich heraus ob mein Webserver die Seiten gzip komprimiert ausliefert…

Am Beispiel des Heise Servers holem wir zuerst die Daten via wget.

$ wget --header="Accept-Encoding: gzip, deflate" http://heise.de
--2012-01-04 15:50:08-- http://heise.de/
Resolving heise.de... 193.99.144.80, 2a02:2e0:3fe:100::8
Connecting to heise.de|193.99.144.80|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.heise.de/ [following]
--2012-01-04 15:50:08-- http://www.heise.de/
Resolving www.heise.de... 193.99.144.85, 2a02:2e0:3fe:100::7
Connecting to www.heise.de|193.99.144.85|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17439 (17K) [text/html]
Saving to: `index.html'

100%[=======>] 17,439 --.-K/s in 0.05s

2012-01-04 15:50:08 (316 KB/s) - `index.html' saved [17439/17439]

jetzt schauen wir, ob die geholte index Datei gzip komprimiert ist:

$ strings index.html|head -n 1
goNY

ok… das sieht nicht nach sinollem Text aus, könnte GZIP sein…
um dies zu prüfen entpacke ich die Datei mittels gzip:

$ mv index.html index.html.gz
gzip -d index.html.gz

und prüfen ob der Inhalt der Erwarteten HTML Datei entspricht.

strings index.html|head -n 1
< !DOCTYPE html>

Das ist der vollständigste Weg zu prüfen ob eine Seite von Webserver gzip koprimiert ausgeliefert wird.?

Kategorien
Linux Video

Aktualisieren von FFmpeg und x264

Um ffmpeg, x264, libx264-dev und yasm zu aktualisieren, wenn diese zuvor mit diese Anleitung eingerichtet wurde müssen diese zuerst deinstalliert werden:
sudo apt-get remove yasm ffmpeg x264 libx264-dev

Jetzt ein Paket nach dem anderen bereinigen, aktualisieren und neu Übersetzen:

yasm

cd /usr/src/yasm
make distclean
git pull
./autogen.sh
./configure --disable-nls --prefix=/usr
make
sudo checkinstall --pkgname=yasm --pkgversion="$(cat YASM-VERSION-FILE)" \
--backup=no --deldoc=yes --fstrans=no --default

x264

cd /usr/src/x264
make distclean
git pull
./configure
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes --fstrans=no --default

ffmpeg

cd /usr/src/ffmpeg/
make distclean
git pull
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe

Sollten zweifel bestehen ob ffmpeg und x264 korrekt eingerichtet wurden, im Aufruf von x264 –version und im Aufruf von ffmpeg erscheint als “built”-Datum das aktuelle Datum.

Kategorien
Linux Video

Aktuelle FFmpeg und x264 Version Installieren

Abhängigkeiten Installieren

Entfernen der alten Installationen von x264, libx264-dev und ffmpeg.

sudo apt-get remove ffmpeg x264 libx264-dev

Alle für die übersetzung von x264 und FFmpeg notwendigen Pakete holen.

sudo apt-get update
sudo apt-get install build-essential checkinstall git libfaac-dev \
libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev \
libvdpau-dev libvorbis-dev libx11-dev \
libxfixes-dev texi2html yasm zlib1g-dev

Der aktuelle Benutzer muss noch in die Gruppe “src” so das er in /usr/src schreiben darf:

sudo usermod -aG src $(whoami)

YASM holen und Compilieren!

cd /usr/src
git clone https://github.com/yasm/yasm.git
cd yasm
./autogen.sh
./configure --disable-nls --prefix=/usr
make
sudo checkinstall --pkgname=yasm --pkgversion="$(cat YASM-VERSION-FILE)" \
--backup=no --deldoc=yes --fstrans=no --default

x264 Installieren

Die aktuellen Sourcecodes für x264 holen und übersetzen.

cd /usr/src
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
--fstrans=no --default

Install libvpx

VP8/WEBM holen und compilieren

sudo apt-get remove libvpx-dev
cd
git clone http://git.chromium.org/chromium/deps/libvpx.git
cd libvpx
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" \
--backup=no --deldoc=yes --fstrans=no --default

Installation von FFmpeg

Holen der aktuellsten Version, Compilieren, und Installation von FFMPEG.

cd /usr/src
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libmp3lame \
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora \
--enable-libvorbis \ --enable-libx264 --enable-nonfree --enable-postproc \
--enable-version3 --enable-x11grab --enable-libvpx
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" \
--backup=no --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe

lavf Support zu x264 Hinzufügen.

Der lavf-Support erlaubt x264 alle Input-Dateien anzunehmen die von FFmpeg unterstützt werden. Dies ist sehr praktisch wenn x264 direkt verwendet werden soll.

cd /usr/src/x264
make distclean
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
--fstrans=no --default

Hiermit ist die Installation abgeschlossen.
Du solltest die Source-Verzeichnisse von x264, libvpx, und ffmpeg behalten um Sie später einfach aktualisieren zu können. Siehe auch Aktualisieren von FFmpeg und x264 für weitere Informationen.

Um die Änderungen dieser Anleitung rückgängig zu machen und FFmpeg, x264, yasm und alle anderen Pakete aus dieser Anleitung wieder zu entfernen nutze folgendes Kommando:

sudo apt-get autoremove x264 ffmpeg qt-faststart build-essential git checkinstall \
yasm texi2html libfaac-dev libjack-jackd2-dev libmp3lame-dev libsdl1.2-dev \
libtheora-dev libva-dev libvdpau-dev libvorbis-dev libvpx libx11-dev \
libxfixes-dev zlib1g-dev

 

Kategorien
Linux Video

Shell Videomanipulation / konvertierung

Snippets zur einfachen manipulation von Videos auf der Linux-Shell.

FLV Dateien Zusammenfügen

avidemux2_cli --load in1.flv --append in2.flv \
--audio-codec COPY --video-codec COPY --output-format FLV --save out.flv

 

FLV in MKV umwandeln

ffmpeg -i in.flv -vcodec copy -acodec copy out.mkv

 

Video Dateien Zusammenfügen (variante nicht FLV)

cat in1.avi in2.avi|ffmpeg -f mpeg -i - -sameq -vcodec copy -acodec copy out.mkv

 

FLV Dateien konvertieren

avidemux2_cli --load in.flv --audio-codec aac --video-codec x264 --output-format AVI --save out.avi

 

MP3 aus Video extrahieren

ffmpeg -i in.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 out.mp3

 

Video-DVD erstellen

ffmpeg -i in.avi -aspect 4:3 -target pal-dvd dvd.vob
ffmpeg -i in.avi -aspect 16:9 -target pal-dvd dvd.vob
dvdauthor -o ZielVerzeichniss/ -t in1.vob in2.vob in3.vob
dvdauthor -T -o ZielVerzeichniss/

 

Kategorien
lighttpd Linux

WordPress rewrite im Lighttpd

Um WordPress in dem Webserver Lighttpd mit “schönen URLs” zu betreiben ist ein Rewrite der Adresse notwendig.
Die benötigte “modrewrite” Regel in der Lighttpd habe ich für mich als Erinnerung folgend hinterlegt.:

$HTTP[”host”] =~ “^(?:www\.)?DOMAINNAMEN\.TLD(?::|$)” {
server.document-root = “/var/www/hosts/DOMAIN.TLD/”
accesslog.filename = “/var/www/logs/DOMAIN.TLD-access.log”
url.rewrite = ( “^/(wp-admin/|wp-content/|wp-includes/|wp-login\.php|xmlrpc\.php|robots\.txt|sitemap\.xml|wp-).*” => “$0″,
“^” => “index.php” )
}

 

Kategorien
lighttpd Linux

Lighttpd 1.5 – rebuild

System vorbereiten

aptitude install checkinstall python-mysqldb liblua5.1-dev libmysqlclient-dev \
libssl-dev libbz2-dev libpcre3-dev libgtkhtml2-0 libgtkhtml2-dev \
libsqlite-dev libsqlite3-dev libmemcache-dev libaio-dev libldap2-dev \
automake1.9 libgeoip-dev e2fsprogs e2fsprogs-devel \
aptitude remove --purge automake1.4 automake1.7 automake1.8

alleine wegen den Konfigurations und startscripten:

aptitude install lighttpd

Quellen herunterladen

cd /usr/src svn co svn://svn.lighttpd.net/lighttpd/trunk/
mv /usr/src/trunk /usr/src/lighttpd-1.5.0
cd /usr/src/lighttpd-1.5.0
./autogen.sh

GeoIP Modul für Lighttpd 1.5

wget http://redmine.lighttpd.net/attachments/download/717/mod_geoip_for_1.5.c
mv mod_geoip_for_1.5.c src/mod_geoip.c
vi src/Makefile.am
nach der letzter "lib_LTLIBRARIES" Zeile folgendes einfügen:
lib_LTLIBRARIES += mod_geoip.la
mod_geoip_la_SOURCES = mod_geoip.c
mod_geoip_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_geoip_la_LIBADD = $(common_libadd) -lGeoIP

GeoIP Datenbanken herunterladen

wget -O /var/www/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -O /var/www/GeoLiteCity.dat.gz http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip /var/www/*.dat.gz

 

/etc/lighttpd/conf-available/10-geoip.conf
#### GeoIP
geoip.db-filename = “/var/www/GeoIP.dat”
geoip.memory-cache = “enable”
#### GeoIP Lite City
# geoip.db-filename = “/var/www/GeoLiteCity.dat”
# geoip.memory-cache = disable
server.modulesi += ( “mod_geoip” )

./configure –enable-maintainer-mode –prefix=/usr –with-openssl –with-lua=lua5.1 –with-memcache –with-gdbm –with-webdav-props –with-ldap –with-attr –with-linux-aio –with-mysql –with-webdav-locks

make
checkinstall –install=no -D –default –pakdir=/usr/src –gzman=yes

aptitude remove lighttpd

dpkg -i lighttpd_1.5.0-1_i386.deb

Kategorien
Linux

Nützliche OpenSSL Commands

Formatwandlung eines Zertifikates vom .pem in das .pkcs12 Format

openssl pkcs12 -export -out mycert.p12 \
-inkey $HOME/.globus/userkey.pem \
-in $HOME/.globus/usercert.pem -name “My Certificate”

Formatwandlung eines Host Zertifikates vom .pkcs12 in das .pem Format

openssl pkcs12 -in host.domain.p12 -clcerts -nokeys -out host.domain.cert.pem
openssl pkcs12 -in host.domain.p12 -nocerts -nodes -out host.domain.key.pem

# These files should then be placed in /etc/grid-security and httpd.conf
# modified accordingly. host.domain.cert.pem can safely be world readable
# but host.domain.key.pem must only be readable by root!:
chown root.root host.domain.key.pem
chmod 0400 host.domain.key.pem

Formatwandlung eines Benutzer Zertifikates vom .pkcs12 in das .pem Format

openssl pkcs12 -in export.p12 -clcerts -nokeys -out $HOME/.globus/usercert.pem
openssl pkcs12 -in export.p12 -nocerts -out $HOME/.globus/userkey.pem

# The user certificate can safely be world readable, but userkey.pem
# must only be readable by you!
chmod 0400 $HOME/.globus/userkey.pem

Passwort des Private keys ändern

openssl rsa -in $HOME/.globus/userkey.pem -des3
# you will be prompted for the old passphrase, the new passphrase
# and to verify the new passphrase

Informationen aus dem Zertifikat anzeigen.

# viele Informationen
openssl x509 -text -in cert.pem

# Aussteller
openssl x509 -noout -in cert.pem -issuer

# subject
openssl x509 -noout -in cert.pem -subject

# in welchem Zeitraum ist es gültig?
openssl x509 -noout -in cert.pem -dates

# Der Hash wert des Zertifikates
openssl x509 -noout -in cert.pem -hash

# Der MD5 Fingerprint
openssl x509 -noout -in cert.pem -fingerprint

Zertifikat überprüfen

openssl verify cert.pem

Kategorien
Linux

Subversion und websvn auf Debian

Apache2 und PHP5 installation

apt install apache2 php5

Subversion Installation und Konfiguration

Subversion Packete

apt install subversion libapache2-svn
/etc/init.d/apache2 restart

Erstellen und veröffentlichen eines repositories

mkdir /var/svn-repos/
svnadmin create --fs-type fsfs /var/svn-repos/angststalt

Das Repository Verzeichniss benötigt die entsprechenden Rechte für Apache2 und die anderen Benutzer. Erstellen einer Gruppe und die Benutzer dieser hinzufügen.

groupadd subversion
adduser kuehnel
addgroup kuehnel subversion
chown -R www-data:subversion /var/svn-repos/*
chmod -R 770 /var/svn-repos/*

Das Repository ist ab jetzt via svn+ssh://hostname/var/svn-repos/

Subversion WebDAV

a2enmod dav
a2enmod dav_svn
htpasswd -c /etc/apache2/dav_svn.passwd kuehnel

DAV svn
SVNPath /var/svn-repos/angststalt
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
#SSLRequireSSL

WebSVN Einrichten

apt install enscript websvn

oll SVN jetzt konfiguriert werden: Ja
svn-Stammdepots: /var/svn-repos

Die gewählte Konfiguration liegt in der Datei
/etc/websvn/svn_deb_conf.inc

/etc/websvn/config.inc
ServerAdmin webmaster@example.com
ServerName svn.example.com
DocumentRoot /var/www/websvn/

Options FollowSymLinks
AllowOverride None
order allow,deny
allow from all
AuthType Basic
AuthName “Subversion Repository”
Require valid-user
AuthUserFile /etc/apache2/dav_svn.passwd

php_flag magic_quotes_gpc Off
php_flag track_vars On

Kategorien
Linux security

Spamassassin in die Datenbank

Spamassassin schreibt die Informationen zu den Spam EMails meistens in Dateien. Solche Daten können jedoch deutlich effizienter verwaltet werden wenn wir sie in eine MySQL Datenbank schreiben.
Wenn auf dem Server sowieso eine MySQL-Datenbank läuft haben diese Informationen in Dateien nichts zu suchen, besonders die Bayes Datenbank und das Whitelisting, da auf diese sehr entsprechend nach Informationen suchen.

Bayes Daten in die MySQL Datenbank

/etc/spamassassin/local.cf
bayes_auto_expire 0
bayes_expiry_max_db_size 150000

Ich gehe jetzt im weitern Verlauf davon aus, dass MySQL bereits läuft. Dennoch muss die Perl-Schnittstelle für den MySQL Datenbankzugriff zumeist noch Installiert werden. Das geht entwender per MCPAN und in Debian Systemen auch mit apt-get:

  • Vorraussetzungen
perl -MCPAN -e shell
install DBD::mysql
apt-get install libtie-cache-perl libdbd-mysql-perl
  • Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
  • Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
  • anlegen der notwendigen Tabellen
mysql -u spamassassin_usr spamassassin_db -p < /usr/share/doc/spamassassin/sql/bayes_mysql.sql
  • /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamassassin_db:localhost
bayes_sql_username spamassassin_usr
bayes_sql_password password
bayes_sql_override_username spamassassin

Dabei müssen Sie darauf achten, dass der Zugriff auf die alten bayes-Dateien deaktiviert wurde.

# bayes_path /var/spool/bayes_db/bayes
# bayes_file_mode 770

Eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:

/etc/init.d/spamassasin restart

Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:

mysql -u root -p
mysql> use spamassassin_db;
mysql> select COUNT(*) FROM bayes_vars WHERE username ='spamassassin';
+----------+
| COUNT(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

Um die alten bayes Einträge zu übernehmen, können diese mittels sa-learn ex-/importiert werden:

sa-learn --backup > bayes.db
sa-learn --restore bayes.db

Whitelisting

  • Vorraussetzungen
perl -MCPAN -e shell
install DBD::mysql
apt-get install libtie-cache-perl libdbd-mysql-perl
  • Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
  • Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
  • anlegen der notwendigen Tabellen
mysql -u root spamassassin_db -p < /usr/share/doc/spamassassin/sql/awl_mysql.sql
  • /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
use_auto_whitelist 1
user_awl_dsn DBI:mysql:spamassassin_db:localhost
user_awl_sql_username spamassassin_usr
user_awl_sql_password Passwort
user_awl_sql_table awl

Dabei müssen Sie darauf achten, dass der Zugriff auf die alte autowhiteliste deaktiviert wurde

#auto_whitelist_path /var/spool/spamassassin/auto-whitelist #auto_whitelist_file_mode 0666

eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:

/etc/init.d/spamassasin restart

Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:

mysql -u root -p
mysql> use spamassassin_db;
mysql> select count(*) from awl;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.01 sec)

Ein Blick in die Log-Datei von Spamassassin schadet auf keinen Fall. Wo diese liegt, kann man der Datei /etc/default/spamassassin entnehmen