Strony

wtorek, 11 grudnia 2012

Shrink VMware Virtual Disk Files (.vmdk) Debian

Download VMware Virtual Disk Development Kit
http://communities.vmware.com/community/vmtn/developer/forums/vddk
Użycie oprogramowania na maszynie Windows:
vmware-vdiskmanager.exe -k "d:\vm\debian\debian.vmdk"
Przed operacją "shrinkowania" dysku na maszynie wirtualnej (Debian Squeeze) należny wykonać następujące czynności:
apt-get clean
cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill;shutdown -h now
Spowoduje to usunięcie zbędnych plików i wyłączenie maszyny

Następnie wykonujemy shrink dysku Debiana VMDK pod Windowsem:
vmware-vdiskmanager.exe -k "d:\vm\debian\debian.vmdk"
Efekt:
Przed: 1,5GB
Po: 1GB
ZIP: 280MB

poniedziałek, 10 grudnia 2012

Install VMware Tools on Debian Squeeze

apt-get update
apt-get install make gcc linux-headers-$(uname -r)

tar -C /tmp -zxvf VMwareTools-*.tar.gz

cd /tmp/vmware-tools-distrib
./vmware-install.pl

środa, 5 grudnia 2012

SSLExplorer VPN over SSL OpenVPN ALS ADITO

Po restarcie usługa SSLExplorer nie podnosi się.

Objawy:
Serwisy nie nasłuchują na porcie 80 i 443 tym samym brak możliwości nawiązania połączenia.

Dotyczy:
OpenVPN ALS v0.9.1 - adito-0.9.1
SSL-Explorer v1.0.0_RC17 - sslexplorer-1.0.0_RC17

Rozwiązanie:
Należy zmodyfikować plik konfiguracyjny:
/opt/sslexplorer/conf/webserver.properties
wszystkie znaki "\!\!" należy zamienić na "\!"

W logach występują błędy:
/opt/sslexplorer/logs/sslexplorer.log
04-12-2012 20:35:07 [WebServer] WARN  ThreadedServer - Failed to start: main@192.168.1.50:443
04-12-2012 20:35:07 [WebServer] ERROR Main - Failed to start Jetty. Multiple exceptions
org.mortbay.util.MultiException[java.lang.IllegalArgumentException: ]
at org.mortbay.http.HttpServer.doStart(HttpServer.java:732)
at org.mortbay.util.Container.start(Container.java:71)
at com.sslexplorer.server.Main$5.run(Main.java:965)
java.lang.IllegalArgumentException:
at com.sun.net.ssl.internal.ssl.ProtocolVersion.valueOf(ProtocolVersion.java:120)
at com.sun.net.ssl.internal.ssl.ProtocolList.(ProtocolList.java:36)
at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.setEnabledProtocols(SSLServerSocketImpl.java:182)
at com.sslexplorer.server.jetty.CustomJsseListener.newServerSocket(CustomJsseListener.java:142)
at org.mortbay.util.ThreadedServer.open(ThreadedServer.java:476)
at org.mortbay.util.ThreadedServer.start(ThreadedServer.java:502)
at org.mortbay.http.SocketListener.start(SocketListener.java:202)
at org.mortbay.http.HttpServer.doStart(HttpServer.java:762)
at org.mortbay.util.Container.start(Container.java:71)
at com.sslexplorer.server.Main$5.run(Main.java:965)
04-12-2012 20:35:08 [WebServer] INFO  Main - Shutting down the server.

Błędna konfiguracja pliku:
/opt/sslexplorer/conf/webserver.properties
ssl.supportedCiphers=SSL_RSA_WITH_RC4_128_MD5\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!SSL_RSA_WITH_RC4_128_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_RSA_WITH_AES_128_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_DHE_RSA_WITH_AES_128_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_DHE_DSS_WITH_AES_128_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!SSL_RSA_WITH_3DES_EDE_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!SSL_DH_anon_WITH_RC4_128_MD5\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_DH_anon_WITH_AES_128_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!SSL_DH_anon_WITH_3DES_EDE_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_KRB5_WITH_RC4_128_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_KRB5_WITH_RC4_128_MD5\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_KRB5_WITH_3DES_EDE_CBC_SHA\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLS_KRB5_WITH_3DES_EDE_CBC_MD5
ssl.supportedProtocols=SSLv2Hello\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!SSLv3\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!TLSv1

Poprawna konfiguracja:
ssl.supportedCiphers=SSL_RSA_WITH_RC4_128_MD5\!SSL_RSA_WITH_RC4_128_SHA\!TLS_RSA_WITH_AES_128_CBC_SHA\!TLS_DHE_RSA_WITH_AES_128_CBC_SHA\!TLS_DHE_DSS_WITH_AES_128_CBC_SHA\!SSL_RSA_WITH_3DES_EDE_CBC_SHA\!SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA\!SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA\!SSL_DH_anon_WITH_RC4_128_MD5\!TLS_DH_anon_WITH_AES_128_CBC_SHA\!SSL_DH_anon_WITH_3DES_EDE_CBC_SHA\!TLS_KRB5_WITH_RC4_128_SHA\!TLS_KRB5_WITH_RC4_128_MD5\!TLS_KRB5_WITH_3DES_EDE_CBC_SHA\!TLS_KRB5_WITH_3DES_EDE_CBC_MD5
ssl.supportedProtocols=SSLv2Hello\!SSLv3\!TLSv1

Test:
# /etc/init.d/sslexplorer start
Starting SSL-Explorer...

# netstat -lnp | grep java
tcp        0      0 192.168.1.50:80  :::*                    LISTEN      2437/java
tcp        0      0 192.168.1.50:443 :::*                    LISTEN      2437/java

Projekty:
http://sourceforge.net/projects/openvpn-als/
http://sourceforge.net/projects/sslexplorer/
http://sourceforge.net/projects/sslexplorer-pam/
http://sourceforge.net/projects/aditoagentclien/

Źródła:
http://openvpn-als.sourceforge.net/
http://doc.ubuntu-fr.org/ssl-explorer
http://en.wikipedia.org/wiki/SSL-Explorer:_Community_Edition
http://www.r71.nl/kb/technical/331-adito-openvpn-als-a-great-vpn-appliance
http://lars.werner.no/?page_id=153
http://www.debian-administration.org/articles/444
http://www.debian-administration.org/articles/142
http://sourceforge.net/projects/openvpn-als/forums/forum/824507/topic/2858590

http://www.youtube.com/watch?v=GH38WNcfegY

piątek, 9 listopada 2012

VMWare Workstation - base and differential disk vmdk

Sposób tworzenia (klonowania) wirtualnych maszyn korzystających z jednego dysku bazowego oraz dysków różnicowych dla każdej z maszyn.

Przykład dla Windows XP, lecz można tą technikę zastosować do każdego systemu operacyjnego uwzględniając procedury po klonowaniu OS (np.: NewSID dla Windows: http://technet.microsoft.com/en-us/sysinternals/bb897418.aspx)

Tworzymy maszynę bazową "WindowsXPbase" o ustalonej konfiguracji. Dysk VMDK może być w jednym pliku (Store virtual disk as a single file).







Na "WindowsXPbase" instalujemy system (dobra praktyka mówi, aby jeden dysk VMDK był przeznaczony pod jedną partycję) i wstępnie konfigurujemy nasz bazowy system.

Po instalacji i konfiguracji wyłączamy maszynę "WindowsXPbase" a plik dysku WindowsXPbase.vmdk kopiujemy do katalogu wyżej. Resztę usuwamy.

Odczytujemy nr CID dysku "WindowsXPbase", można to zrobić przy pomocy Total Commandera (F3) - Ta funkcja podglądu nie wczytuje całego pliku, co w przypadku np 6GB plików dysku nie spowoduje wczytania całego pliku do ramu :)

Możemy też użyć narzędzi dsfok-tools ze strony
http://members.ozemail.com.au/%7Enulifetv/freezip/freeware/.

W celu odczytania CID wykonujemy eksport ustawień dysku za pomocą dsfo.exe do pliku WindowsXPbase_config.exe
dsfo.exe WindowsXPbase.vmdk 512 1024 WindowsXPbase_config.txt
Numer dysku WindowsXPbase.vmdk
CID=ef33191c
Tworzymy kolejną maszynę "WindowsXPdifferential" o takich samych parametrach jak poprzednia.


Eksportujemy konfigurację:
dsfo.exe WindowsXPdifferential.vmdk 512 1024 WindowsXPdifferential_config.txt
OK, 1024 bytes, 0.000s, MD5 = 4515b65e9d48cb2a1ba452b183528eb7
Wprowadzamy zmiany w konfiguracji (CID, createType, parentFileNameHint):

Przed
#Disk DescriptorFile
version=1
encoding="windows-1250"
CID=fffffffe
parentCID=ffffffff
isNativeSnapshot="no"
createType="monolithicSparse"
Po
# Disk DescriptorFile
version=1
encoding="windows-1250"
CID=fffffffe
parentCID=ef33191c
isNativeSnapshot="no"
createType="twoGbMaxExtentSparse"
parentFileNameHint="..\WindowsXPbase.vmdk" 
Importujemy konfigurację:
dsfi.exe WindowsXPdifferential.vmdk 512 1024 WindowsXPdifferential_config.txt
OK, written 1024 bytes at offset 512

Gotowe.

Jak odpalimy maszynę, system zostanie załadowany z dysku znajdującego się piętro wyżej "..\WindowsXPbase.vmdk", a wszelkie zmiany będą zapisywane w pliku maszyny wirtualnej "WindowsXPdifferential.vmdk"

wtorek, 6 listopada 2012

fix rrd data


Naprawa błędnych dane w bazie rrd spowodowanych nieprawidłowym odczytem wartości przez skrypt.

1. wykonać eksport danych do xml'a (rrdtool dump)
2. podmienić nieprawidłowe wartości (sed)
3. wykonać import danych (rrdtool restore)

Wykres wygenerowany z pikami - przed naprawą:


Wykres wygenerowany po naprawie pliku rrd


Skrypt automatyzujący pracę:
fix_script_rrd.sh
#!/bin/sh

cp /usr/local/pnp4nagios/var/perfdata/server/SPEED_NET.rrd /root/scripts/rrd_export_testy/SPEED_NET_server.rrd-$(date +%Y-%m-%d-%s)
mv /usr/local/pnp4nagios/var/perfdata/server/SPEED_NET.rrd /root/scripts/rrd_export_testy/SPEED_NET_server.rrd
cp /usr/local/pnp4nagios/var/perfdata/server/SPEED_NET.rrd /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.rrd
rrdtool dump /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.rrd > /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml

sed -i 's/-6.4146433246e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-2.2227638513e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-1.2606894794e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-6.3459103635e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-5.5899984061e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-5.0475658794e+08/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-2.5594901404e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-4.7378915353e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-1.2606858468e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-1.0086951488e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-4.1772191908e+08/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-1.8516738435e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-1.8025172614e+08/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-1.8024471851e+08/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml
sed -i 's/-2.5663505765e+09/0/g' /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml

rrdtool restore /root/scripts/rrd_export_testy/SPEED_NET_server_BEFORE.xml /root/scripts/rrd_export_testy/SPEED_NET_server_AFTER.rrd
rrdtool dump /root/scripts/rrd_export_testy/SPEED_NET_server_AFTER.rrd > /root/scripts/rrd_export_testy/SPEED_NET_server_AFTER.xml

cp -f /root/scripts/rrd_export_testy/SPEED_NET_server_AFTER.rrd /usr/local/pnp4nagios/var/perfdata/server/SPEED_NET.rrd

wtorek, 16 października 2012

SSH Keys - ssh: Exited: String too long


W celu wygenerowania pary kluczy do autoryzacji w usłudze ssh zainstalowałem OpenSSH keygen:
openssh-keygen - 5.8p2-2 - OpenSSH keygen.

Po wygenerowaniu pary kluczy przekopiowałem klucz publiczny na zdalny serwer
Niestety próba połączenia zwróciła błąd:
ssh -i /root/.ssh/id_rsa  root@remotehost
ssh: Exited: String too long

Rozwiązanie:
Klucze trzeba wygenerowac za pomocą dostępnego w OpenWRT dropbearkey

localhost
dropbearkey -t rsa -f /root/.ssh/id_rsa
dropbearkey -y -f /root/.ssh/id_rsa | grep ssh-rsa > /root/.ssh/id_rsa.pub
scp /root/.ssh/id_rsa.pub root@remotehost:/root

Remotehost
cat /root/id_rsa.pub >> /etc/dropbear/authorized_keys
chmod 600 /etc/dropbear/authorized_keys

localhost
ssh -i /root/.ssh/id_rsa root@remotehost

BusyBox v1.15.3 (2011-11-11 18:03:51 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

2011-11-12 - r28934
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 Backfire (10.03.x, latest version. Always.) -------
  * 1/3 shot Kahlua    In a shot glass, layer Kahlua
  * 1/3 shot Bailey's  on the bottom, then Bailey's,
  * 1/3 shot Vodka     then Vodka.
 ----------( by obsy, http://eko.one.pl/ )----------
Booted from internal flash
root@remotehost:~$


Do czego można to wykorzystać?
Np. Backup
tar czf - /overlay | ssh -i /root/.ssh/id_rsa root@backupserver "cat > /mnt/backupdir/backup-host1-$(date +%Y-%m-%d-%s).tgz"

wtorek, 15 maja 2012

Backup and Restore ACL NTFS with SetACL

Przeniesienie uprawnień NTFS (DACL) pomiędzy zasobami:


Backup uprawnień NTFS z server1
SetACL.exe -on "\\server1\c$\test" -ot file -actn list -lst "f:sddl;w:d,o,g" -rec cont -bckp "d:\tmp\acl-ntfs.txt"

Edytuj plik "acl-ntfs.txt"
Zmień ścieżki UNC z "\\?\UNC\server1\c$\test" na "\\?\UNC\server2\c$\test"


Restore uprawnień NTFS na server2
SetACL.exe -on "\\server2\c$\test" -ot file -actn restore -bckp "d:\tmp\acl-ntfs.txt" -log "log.txt"

Jeśli chcesz wykonać backup i restore uprawnień na zasobie sieciowym (SACL) to w sekcji -lst trzeba dodać "s", czyli:
-lst "f:sddl;w:d,s,o,g"
 
Strona projektu:
http://sourceforge.net/projects/setacl/
http://helgeklein.com/

Źródła:
http://bog.no/index.php/artikler/2-how-to-backup-ntfs-acl