čtvrtek 22. září 2011

Test Linux Desktop

Fedora 15 LovelockLinux Mint 11 Katya base Ubuntu NattyLinux Mint 11 Katya base Ubuntu NattyGnome 3 LiveCDGnome 3 LiveCDLinux Mint 11 Katya base Ubuntu Natty Fedora 15 LovelockFedora 15 LovelockFedora 15 LovelockFedora 15 LovelockFedora 15 LovelockMandriva 2011 Mandriva 2011Mandriva 2011Ubuntu 11.04 NattyUbuntu 11.04 NattyUbuntu 11.04 NattyUbuntu 11.04 Natty Debian 6.0.2 SqueezeDebian 6.0.2 SqueezeDebian 6.0.2 SqueezeopenSUSE 11.4 CaladonopenSUSE 11.4 CaladonopenSUSE 11.4 Caladon

Test Linux Desktop, a set on Flickr.

Via Flickr:
Nastal čas, čistě uživatelsky instalovat a letmo otestovat pár známých Linux distribucí platformy x86_64. Preferováno Gnome.

Testováno na zapůjčeném HW - Lenovo ThinkPad T61

Linux Mint 11 Katya base Ubuntu Natty
Gnome3 Live DVD (F15)
Fedora 15 Lovelock
Ubuntu 11.04 Natty
Debian 6.0.2 Squeeze
openSUSE 11.4 Caladon

středa 21. září 2011

Apache Tomcat - Remove version string

Pokud někde na produkci provozujeme Apache Tomcat, je vhodné kvůli penetračním testům a potencionálním útočníkům nesdělovat verzi tomcatu. Vypnout tuto volbu někde v konfiguraci jsem nenašel. Je třeba vybalit z catalina.jar soubor ServerInfo.properties a v něm upravit - umazat verzi serveru a posleze zase soubor zabalit do jar.

Tomcat 5.x

cd CATALINA_HOME/server/lib
jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties

joe org/apache/catalina/util/ServerInfo.properties
server.info=Apache Tomcat/5.5.33
na
server.info=Apache Tomcat

jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties
rm -rf org


Tomcat 6.x

cd CATALINA_HOME/lib

Další bezpečnostní konfigurace jsou sepsané např. https://www.owasp.org/index.php/Securing_tomcat

P.S. u PHP se daná volba vypíná pomocí volby v php.ini
expose_php = Off

pondělí 19. září 2011

ESXi 5.0 + FreeBSD 8.2 + VMware Tools 8.6.0 build-425873

Kolega v práci instaloval nedávno zveřejněný ESXi 5.0 A tak jsem hnedle koukal jaká verze FreeBSD je podporovaná. Potěšilo mě, že je podporováno aktualní FreeBSD 8.2. Rychle jsem nainstaloval amd64 port.

Doposud FreeBSD a vmware tools provozuji s portem open-vm-tools, přesněji tento port. Nyní jsem chtěl vyzkoušet vmware tools, které jsou součástí ESXi 5.0.

Pro funkčně fungujjící instalacní script bylo třeba doinstalovat perl a compat6x, což ukazuje na poněkud postarší binárky.

cd /usr/ports/lang/perl5.12/
make install clean

cd /usr/ports/misc/compat6x
make install clean

mount /cdrom
cp
/cdrom/vmware-freebsd-tools.tar.gz /usr/tmp/

tar xvyf vmware-freebsd-tools.tar.gz
cd vmware-tools-distrib
./vmware-in
stall.pl -d

...
Making sure services for VMware Tools are stopped.

Stopping VMware Tools services in the virtual machine:
Guest operating system daemon: done


No X install found.

Starting VMware Tools services in the virtual machine:
Switching to guest configuration: done
Guest memory manager: done
Guest operating system daemon: done
The configuration of VMware Tools 8.6.0 build-425873 for FreeBSD for this
running kernel completed successfully.

You must restar
t your X session before any mouse or graphics changes take
effect.

You can now run VMware Tools by invoking "/usr/local/bin/vmware-toolbox-cmd"
from the command line or by invoking "/usr/local/bin/vmware-toolbox" from the
command line during an X server session.

Please remember to configure your network by adding:
ifconfig_vxn0="dhcp"
to the /etc/rc.conf file and start the network with:
/etc/netstart
to use the vmxnet interface using DHCP.

Enjoy,


--the VMware team

Found VMware Tools CDROM mounted at /cdrom. Ejecting device /dev/acd0 ...

Již dříve jsem si poznamenal něco málo o status VMWare. S tím, že open-vm-tools vytváří status Unmanaged. Moc jsem toho o těchto stavech nedohledal.

Dnes jsem si ověřil, instalci vmware tools, které jsou součástí ESXi 5.0. A ty mají tento stav Running (Current) což je zase novinka.

Dle mého soudu je vhodnější používat port open-vm-tools-nox11, protože systém o daném SW ví a je možno jej snadno aktualizovat např. pomocí portupgrade.

pátek 2. září 2011

pfSense CARP Cluster

V práci jsem dostal za úkol otestovat funkcionalitu firewalu pfSense verze 1.2.3 a zejména jeho Hardware Redundancy (CARP) a to ještě IPSec tunnel mezi router A a B. Tento firewal hojně používám, ale CARP jsem ještě nekonfiguroval. Stanovil jsem si cíl a tím bylo postavit za pomoci virtualizace celkem 4 routery, vždy dva a dva, které jsem umístil do jednotlivých DMZ rozsahů s veřejnými IP adresami.

Nejprve poznamenám, co že je to ten CARP. Ze zakoupené knihy jsem vyčel historii protokolu CARP - Common Address Redundancy Protocol, který vznikl jako svobodné řešení failover, jež vzniklo díky projektu OpenBSD. Společnost Cisco má svůj protokol VRRP a HSRP. Bohužel patenty znemožňují jejích implementaci ve svobodných otevřený systémech. CARP je tedy znám hlavně v *BSD systémech.



Mé kroky k zprovoznění pfSense Hardware Redundancy (CARP) vedly logicky na dokumentaci projektu pfSense. Zde je stručný popis failover firewallu. Dále je tu klikací tutorial, který objasní dané řešení. Zprovoznil jsem již zmíněné routery v ESXi 4.1, ktré vyžaduji 3 IP od ISP (veřejné adresy), dále pak potřebujeme 3 IP z LAN. Vždy dvě IP jsou přiřazeny jednotlivým routerům a jedna IP tvoří onen CARP interface, který zajišťuje přehození provozu z MASTER na BACKUP a případně naopak. Jednou z důležitých součástí tohoto řešení je pfsync, kterým si firewaly předávají informace jako FW Rule, NAT, IPSec, Virtual IP atd. Vše je patrné v tutorialu. Po zprovoznění funkční synchronizace, vytvoříme CARP interface, které přiřadíme do oddělených VHID Group. Na konzoli firewalu se nám objeví carpX device.

# ifconfig carp0
carp0: flags=49 metric 0 mtu 1500
inet 80.250.16.10 netmask 0xffffff80
carp: MASTER vhid 1 advbase 1 advskew 0
# ifconfig carp1
carp1: flags=49 metric 0 mtu 1500
inet 192.168.0.1 netmask 0xffffff00
carp: MASTER vhid 2 advbase 1 advskew 0


Po vytvoření CARP device na FW A se do pár sekund konfigurace přenese na FW B. Vše zajiťuje pfsync mechanizmus. Popisovat jednotlivé kroky není třeba, vše je jasně vidět v tutoriálu.

Dalším úkolem bylo nastavení IPSec tunelu mezi dvěma faiover firewall clustery (úžasná věta). Nastavením VPN / IPSec se nám zapne podpora IPSec, tím mám hlavně na mysli aktivace programu Racoon, který je soužástí ditribuce pfSense. Podpora IPSec je v *BSD díky implementaci KAME.net. Racoon zajišťuje výměnu klíčů mezi routery pomocí protokolu ISAKMP.

Nastavení VPN IPSec politik se opět přenese na druhý firewall v clusteru. Obdobná konfigurace proběhne i na druhé straně tunelu. A ejhle již např. ping ICMP jde z LAN A do DMZ A, kde se zabalí do ESP a předá na druhou stranu tunelu, kde se opět ESP otevře a vydá svůj poklad z LAN A na druhém konci tunelu.

Ohledně ESXi bylo nutno vytvořit a povolit v port groups nastavení, dle doporučení. Pozor, je to jistý bezpežnostní ústupek.

Pro otestování průchodů tunelu jsem si zprovoznil dva Ubuntu servery, které jsem posadil do LAN za failover routery. Mám oblíbený nástroj nesoucí jméno TTCP, který změří rychlost přenosu tunelem.

nasloucháme:

ubu-a:root:~> ttcp -v -r -s -f M -l 25600
ttcp-r: buflen=25600, nbuf=2048, align=16384/0, port=5001 tcp
ttcp-r: socket
ttcp-r: accept from 192.168.2.10
ttcp-r: 52428800 bytes in 68.72 real seconds = 0.73 MB/sec +++
ttcp-r: 52428800 bytes in 0.57 CPU seconds = 87.72 MB/cpu sec
ttcp-r: 8981 I/O calls, msec/call = 7.84, calls/sec = 130.68
ttcp-r: 0.0user 0.5sys 1:08real 0% 0i+0d 416maxrss 0+6pf 8662+13csw
ttcp-r: buffer address 0xd94000

spojíme se s nasluchačem:

ubu-b:root:~> ttcp -v -t -s -f m -l 25600 192.168.1.10
ttcp-t: buflen=25600, nbuf=2048, align=16384/0, port=5001 tcp -> 192.168.10.100
ttcp-t: socket
ttcp-t: connect
ttcp-t: 52428800 bytes in 68.45 real seconds = 5.84 Mbit/sec +++
ttcp-t: 52428800 bytes in 0.03 CPU seconds = 13333.33 Mbit/cpu sec
ttcp-t: 2048 I/O calls, msec/call = 34.22, calls/sec = 29.92
ttcp-t: 0.0user 0.0sys 1:08real 0% 0i+0d 414maxrss 0+8pf 455+0csw
ttcp-t: buffer address 0x2468000


na routeru pfhaA je možno sledovat ESP šifrovaný provoz:

tcpdump -i em1 host 80.250.16.10 and host 193.179.144.106
13:11:04.453352 IP 193.179.144.106 > 80.250.16.10: ESP(spi=0x07d761dc,seq=0x1aaf8), length 116
13:11:04.453696 IP 80.250.16.10 > 193.179.144.106: ESP(spi=0x06061ce4,seq=0xd580), length 116
13:11:04.468895 IP 193.179.144.106 > 80.250.16.10: ESP(spi=0x07d761dc,seq=0x1aaf9), length 116
13:11:04.469151 IP 80.250.16.10 > 193.179.144.106: ESP(spi=0x06061ce4,seq=0xd581), length 116


Zde je právě probíhající vyměna klíčů o kterou se stará Racoon

13:12:31.622854 IP 193.179.144.106.isakmp > 80.250.16.10.isakmp: isakmp: phase 1 I agg
13:12:31.638247 IP 80.250.16.10.isakmp > 193.179.144.106.isakmp: isakmp: phase 1 R agg
13:12:40.712942 IP 193.179.144.106.isakmp > 80.250.16.10.isakmp: isakmp: phase 1 I agg
13:12:40.713083 IP 80.250.16.10.isakmp > 193.179.144.106.isakmp: isakmp: phase 1 R agg