Tag Archives for linux

poweradmin und fail2ban

fuer den dns server powerdns gibt es die administrationsoberflaeche “poweradmin“. die auswahl solcher tools ist nicht sonderlich gross… das duerfte die einfachste sein. irgendwann wirds soweit sein, dass boese buben das webinterface entdecken und versuchen einzubrechen. mit fail2ban kann man da ein bischen gegensteuern und nach fehlgeschlagenen loginversuchen die ip per iptables zu sperren.

in der datei “inc/config.inc.php” muessen dazu diese werte gesetzt sein:

$syslog_use = true;
$syslog_ident = 'poweradmin';

das ergibt dann bei fehlgeschlagenen logins im syslog eintraege wie diesen:

Feb  2 05:36:02 host poweradmin: Failed authentication attempt from [xx.xxx.xx.x]

weiter muss eine datei namens “/etc/fail2ban/filter.d/poweradmin.conf” angelegt werden mit folgendem inhalt:

[Definition]
failregex = poweradmin\: Failed authentication attempt from \[<HOST>\]
ignoreregex =

und die “/etc/fail2ban/jail.conf” erweitert um folgenden eintrag:

[poweradmin]
enabled  = true
port     = http,https
filter   = poweradmin
logpath  = /var/log/syslog
maxretry = 3

und nach einem…

/etc/init.d/fail2ban restart

…sollte das auch schon funktionieren.

20160203071936 by sd
shorturl: https://sd.vc/49i
tags: , , , ,
Leave a comment

postfix: recieved header entfernen

um bei mails, welche das eigene mailsystem verlassen, ein paar header aus der mail zu entfernen, die niemanden in der boesen weiten welt was angehen, in der datei /etc/postfix/main.cf einfuegen:

header_checks = regexp:/etc/postfix/header_checks

und die datei /etc/postfix/header_checks mit folgendem inhalt anlegen:

/^Received: .*\(Authenticated sender:.*/ IGNORE
/^Received: .*\.internal\.domain\.tld.*/ IGNORE

die erste zeile schmeisst die header weg, die durch die authentifizierung beim smtp versand hinzugefuegt werden. (falls beim fuer smtp auth zustaendigen postfix in der main.cf der paramaeter “smtpd_sasl_authenticated_header = yes” gesetzt ist).

die zweite zeile schmeisst alle recived header weg, die von internen mailservern hinugefuegt wurden. schliesslich geht die struktur niemanden was an.

20160124001455 by sd
shorturl: https://sd.vc/498
tags: , , ,
Leave a comment

neues vom contao checker (nun richtig)

weil das noch nicht ganz richtig war, hier nochmal etwas angepasst:

# erstmal backup machen
cd /var/www/sites/kundexy
mysqldump -p -h <dbserver> <database> > backupdb-$(date +%Y%m%d%H%M).sql
tar -czvf backup-$(date +%Y%m%d%H%M).tar.gz <verzeichniswebseite/> --exclude files/cloud
# dann update laden und installieren
cd verzeichniswebseite
curl -L https://download.contao.org/3.5.6 | tar --strip-components=1 -xzp
chown <user>.<group> <../verzeichniswebseite/> -R
# und wenn alles danach noch funktioniert, den kram wieder loeschen:
rm core-3.2.16.tar.gz
rm ../201412211004.sql # ersetzen mit dem aktuellen dateinamen
rm ../201412211004.tar.gz # ersetzen mit dem aktuellen dateinamen
# feddich!

20160124000529 by sd
shorturl: https://sd.vc/497
tags: , ,
Leave a comment

dnssec, bind, powerdns

tagelang habe ich mich mehr oder weniger erfolgreich erfolglos mit der dnssec implementierung in bind herumgschlagen. mittendrin kam ein kommentar von jonne, welches mich dann doch inspirert hat, mal powerdns anzuschauen. und was soll ich sagen? vergesst die wakeligen pakete in debian fuer bind und die dnssec-tools und nehmt powerdns. (natuerlich nicht den alten in debian stable, sondern ein aktuelles paket welches sich ohne grosse abhaengigkeiten installieren laesst.)

den folgenden absatz habe ich erst nach dem eigenen, in rekordzeit erstelltem test-setup gelesen:

In addition, the PowerDNS Authoritative Server is the leading DNSSEC implementation, hosting the majority of all DNSSEC domains worldwide. The Authoritative Server hosts at least 30% of all domain names in Europe, and around 90% of all DNSSEC domains in Europe.

und ganz ehrlich… ich weiss aus eigener erfahrung auch genau warum.

moeglicherweise gibts demnaechst auf diesem kanal ein kleines howto dafuer.

20151109230744 by sd
shorturl: https://sd.vc/48r
tags: , , , ,
Leave a comment

otrs5 patchlevel update

da sich seit dem upgrade von 4 auf 5 ein paar kleinigkeiten geaendert haben… hier nochmal mein braindump fuer das patchlevel update von z.b. 5.0.1 auf 5.0.2

apt-get install -y libmime-base64-urlsafe-perl libauthen-sasl-perl libxml-libxml-perl libxml-libxslt-perl
cd /opt
wget http://ftp.otrs.org/pub/otrs/otrs-5.0.2.tar.gz
/etc/init.d/cron stop
/etc/init.d/postfix stop
/etc/init.d/apache2 stop
cd /opt/otrs/
su - otrs
bin/Cron.sh stop
bin/otrs.Daemon.pl stop
logout
mysqldump -p otrs > otrsdbbackup.sql
cd /opt
mv otrs otrs-old
tar -xzf otrs-5.0.2.tar.gz 
mv otrs-5.0.2 otrs
cp /opt/otrs-old/Kernel/Config.pm /opt/otrs/Kernel/
cp /opt/otrs-old/Kernel/Config/GenericAgent.pm /opt/otrs/Kernel/Config/
cp /opt/otrs-old/Kernel/Config/Files/ZZZAuto.pm /opt/otrs/Kernel/Config/Files/
cp /opt/otrs-old/var/log/TicketCounter.log /opt/otrs/var/log/
cd /opt/otrs/var/cron
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd /opt/otrs/
bin/otrs.SetPermissions.pl --web-group=www-data
su - otrs
bin/otrs.Console.pl Maint::Database::Check
bin/otrs.Console.pl Maint::Config::Rebuild
bin/otrs.Console.pl Maint::Cache::Delete
logout
/etc/init.d/apache2 start
/etc/init.d/postfix start
/etc/init.d/cron start
su - otrs
bin/otrs.Daemon.pl start
bin/Cron.sh start
logout

und dann noch im backend unter “admin” -> “paket-verwaltung” die installierten pakete in einer neuen bzw kompatiblen version installieren.

20151105220727 by sd
shorturl: https://sd.vc/48m
tags: , ,
Leave a comment

upgrading OTRS from 4 to 5

…so wie es fuer meine installation funktioniert(e). in diesem falle von 4.0.13 auf 5.0.1.

zu hilfe genommen habe ich:

http://otrs.github.io/doc/manual/admin/5.0/en/html/upgrading.html
https://ww.sd.vc/wp/2014/12/10/otrs-4-patchlevel-update/

eine art braindump fuers naechste update 😉

apt-get install -y libmime-base64-urlsafe-perl libauthen-sasl-perl libxml-libxml-perl libxml-libxslt-perl
cd /opt
wget http://ftp.otrs.org/pub/otrs/otrs-5.0.1.tar.gz
/etc/init.d/cron stop
/etc/init.d/postfix stop
/etc/init.d/apache2 stop
cd /opt/otrs/
su - otrs
bin/Cron.sh stop
bin/otrs.Scheduler.pl -a stop
logout
mysqldump -p otrs > otrsdbbackup.sql
cd /opt
mv otrs otrs-old
tar -xzf otrs-5.0.1.tar.gz 
mv otrs-5.0.1 otrs
cp /opt/otrs-old/Kernel/Config.pm /opt/otrs/Kernel/
cp /opt/otrs-old/Kernel/Config/GenericAgent.pm /opt/otrs/Kernel/Config/
cp /opt/otrs-old/Kernel/Config/Files/ZZZAuto.pm /opt/otrs/Kernel/Config/Files/
cp /opt/otrs-old/var/log/TicketCounter.log /opt/otrs/var/log/
cd /opt/otrs/var/cron
for foo in *.dist; do cp $foo `basename $foo .dist`; done
cd /opt/otrs/
bin/otrs.SetPermissions.pl --web-group=www-data
/opt/otrs/bin/otrs.CheckModules.pl
cat scripts/DBUpdate-to-5.mysql.sql | mysql -p -f -u root otrs
su - otrs
bin/otrs.Console.pl Maint::Database::Check
scripts/DBUpdate-to-5.pl
cd /opt/otrs/
bin/otrs.Console.pl Maint::Config::Rebuild
bin/otrs.Console.pl Maint::Cache::Delete
logout
/etc/init.d/apache2 start
/etc/init.d/postfix start
/etc/init.d/cron start
su - otrs
/opt/otrs/bin/otrs.Daemon.pl start
/opt/otrs/bin/Cron.sh start
logout

und dann noch im backend unter “admin” -> “paket-verwaltung” die installierten pakete in einer neuen bzw kompatiblen version installieren.

20151021205202 by sd
shorturl: https://sd.vc/489
tags: ,
1 comment

logical volume verkleinern

notiz fuer mich selbst… ultrakurzanleitung. bitte nicht verwenden, wenn man sich nicht sicher ist, was man da macht. datenverlust droht!

fsck -f /dev/vg0/hostname-disk
resize2fs /dev/vg0/hostname-disk 8G
lvreduce --size 8G /dev/vg0/hostname-disk

20150610224942 by sd
shorturl: https://sd.vc/46b
tags:
Leave a comment

postfix – mal schnell was debuggen

wenn man auf bei einem gut frequentierten postfix “mal schnell was debuggen” muss, dann will man nicht laenger als noetig das debugging angeschaltet haben. das logfilze explodiert sonst sprichwoertlich.

sondern… mal will vielleicht nur die kommunikation mit einem bestimmten client/server debuggen. dann macht man das so:

postconf -e "debug_peer_list = ip.ip.ip.ip" && postfix reload

…dann verschickt man seine testmail und schaltet das anschliessend wieder ab:

postconf -e "debug_peer_list =" && postfix reload

20150522060145 by sd
shorturl: https://sd.vc/464
tags: , ,
Leave a comment

postfix: hostname des mailservers als absender- oder empfaengerdomain

mir kam schon ein paar mal ein postfix unter, der komische sachen mit email headern gemacht hat. da stand z.b. sowas drin:

To: “irgendwas@domain.tld”@mein.mailserver.tld

das kann z.b. auftreten, wenn man amavis als contentfilter in der master.cf eingebunden hat. dann sollte man in der master.cf beim eintrag des smtp-servers von amavis folgende option mitgeben:

-o local_header_rewrite_clients=

ursache dafuer ist der standardwert “local_header_rewrite_clients=permit_inet_interfaces”, der zutrifft, wenn die mails von amavis auf localhost:10025 wieder rein kommen.

20150418092747 by sd
shorturl: https://sd.vc/45m
tags: , ,
Leave a comment

openfire, java und ssl/tls

ohne gross darauf einzugehen warum, weshalb… einfach als gedaechtnisstuerze fuer mich.

wenn man unter debian wheezy diese beiden pakete installiert hat:

openjdk-6-jdk
openjdk-7-jre

…dann ist standardmaessig java 6 die default version. ich weiss nicht, wie man das normalerweise und richtig macht. hier musste es schnell gehen und mir ist nur eingefallen:

update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-amd64/bin/java 1100

und so siehts dann aus, wenn man “update-alternatives –config java” aufruft:

20150220_wheezy_java

weiter gehts mit den ciphers, die java standardmaessig zur verfuegung stellt. manche sachen wie z.b. SSLv2, SSLv3, RC4 und irgendwelche “weak ciphers” will man ja nicht haben. um das abzustellen, fuegt man diese zeile (eine zeile!) in die datei /etc/java-7-openjdk/security/java.security ein bzw editiert diese, sofern schon vorhanden:

jdk.tls.disabledAlgorithms=SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_RC4_128_MD5, SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA, SSL_DH_DSS_WITH_DES_CBC_SHA, SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DH_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, SSL_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_RC4_128_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA, SSL_FORTEZZA_DMS_WITH_NULL_SHA, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA, SSL_RSA_EXPORT1024_WITH_RC4_56_SHA, SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_FIPS_WITH_DES_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_RSA_WITH_IDEA_CBC_SHA, SSL_RSA_WITH_NULL_MD5, SSL_RSA_WITH_NULL_SHA, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_WITH_RC4_128_MD5, SSL_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, SSL_DHE_DSS_WITH_RC4_128_SHA, TLS_DHE_PSK_WITH_RC4_128_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_PSK_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_RC4_128_SHA, TLS_PSK_WITH_RC4_128_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT1024_WITH_RC4_56_SHA, TLS_RSA_PSK_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA

und da man auch keine schluessel kleiner 1024 akzeptieren will, auch noch diese zeile:

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

openjdk hats irgendwie auch nicht so mit der validierung von remote zertifikaten, weshalb das mit dem TLS dialback nicht funktioniert. deshalb muss man in der datei /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/security/java.security auch noch diese zeile auskommentieren: (mit einem # anfang versehen)

security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg

und dann noch die sache mit dem importieren eines von einer CA signierten zertifikates… dazu brauchts:

– das zertifikat selbst (jabber-signed.pem)
– den key (jabber-private.pem)
– die “certificate chain” der CA auch im PEM format (hier chain1.pem und chain2.pem)
– ImportKey.java von agentbob

los gehts…

in der datei “ImportKey.java” von agentbob diese zeilen den eigenen gegebenheiten anpassen:

[..]
String keypass = "changeit";
[..]
String defaultalias = "private-key";
[..]
String keystorename = "keystore";

und dann die ImportKey.java mit diesem befehl kompilieren:

javac ImportKey.java

und so fortfahren:

/etc/init.d/openfire stop
cd /etc/openfire/security
cp truststore truststore.org
cp keystore keystore.org
keytool -importcert -alias chain1 -keystore truststore -file chain1.pem
keytool -importcert -alias chain2 -keystore truststore -file chain2.pem
openssl pkcs8 -topk8 -nocrypt -in jabber-private.pem -inform PEM -out jabber-private.der -outform DER
openssl x509 -in jabber-signed.pem -inform PEM -out jabber-signed.der -outform DER
java ImportKey jabber-private.der jabber-signed.der
/etc/init.d/openfire start

in der admin webgui steht bei dem key nun “pending verification”… stimmt garnicht. hab ich einfach ignoriert. genauso wird angezeigt.. “One or more certificates are missing. Click here to generate self-signed certificates” ..stimmt auch nicht. hab ich auch einfach ignoriert.

ich denke, das wars. mit dem “IM Observatory” auf xmpp.net kann man anschliessend testen, ob nun alles so ist, wie man sich das erhofft… voila:

20150220_protocols

20150220_ciphers

20150221160013 by sd
shorturl: https://sd.vc/44r
tags: , ,
Leave a comment