Zobrazují se příspěvky se štítkemSecurity. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemSecurity. Zobrazit všechny příspěvky

čtvrtek 18. listopadu 2021

Zabbix 6.0.0alpha6 - HashiCorp Vault

Nová verze Zabbix 6.0 LTS disponuje novou fukcionalitu pro bezpečné ukládání tajemství např. hesla. Secrets se ukládaji do aplikace Vault od společnosti HashiCorp. Pro vyzkoušení jsem si nainstaloval Zabbix 6.0.0alpha6 a Vault jsem zprovoznil pomoci Docker.

git clone https://github.com/misterpki/docker-vault
cd docker-vault
docker-compose -f docker-compose.yml up -d 

Na http://192.168.42.7:8200 se můžeme přihlásit do web gui. Použijeme TOKEN, který je přednastaven v Dockeru. Tato instalace je vhodná jen pro testovaní nikoliv pro produkci, protože Vault neběží na SSL/TLS.

V dokumentaci Zabbixu je Storage of secrets podrobně popsáno. Dále je nutné provést úpravu konfiguračních souboru zabbix serveru a frontendu.

vi /etc/zabbix/zabbix_server.conf
VaultToken=vault-plaintext-root-token
VaultURL=http://192.168.42.7:8200

vi /etc/zabbix/web/zabbix.conf.php
$DB['VAULT_URL']        = 'http://192.168.42.7:8200';
$DB['VAULT_TOKEN']      = 'vault-plaintext-root-token';

Do Vault je třeba založit secret pro Zabbix a ten posléze nastavit v makrech Zabbix šablony nebo hosta. To je možné provést z cmd nebo z web gui Vault.

Pro ukázku jsem si vybrat dvě metriky, které využívají secret. Jedním je Item type SSH, kde se přihlásíme na server pomocí SSH a získáme datum. A druhý Item type Database, kde se pomocí nakonfigurovaného UnixODBC připojíme k databázi zabbix a zjistíme jeji velikost. Obě hesla nebudou uložena v databázi Zabbixu jako makra, ale hesla si stáhnou z HashiCorp Vault.

Vault po přihlášení

Nastavený secret zabbix

Historie změn

Odtajněný pohled na secret ve formátu JSON

Metrika SSH - date

Metrika DBSIZE - ODBC

Makro Vault na Hostu

Makro Vault v šabloně  
Zabbix Latest data dvou metrik

Pokud to s HashiCorp Vault myslíme vážně a provozujeme jej produkčně má smysl nastavit monitorování pomocí šablony HashiCorp Vault by HTTP.

pondělí 12. ledna 2015

OSSIM - installation step failed

Instaloval jsem OSSIM verzi 4.14.0, přesněji komponentu Sensor. A narazil jsem na chybu - "installation step failed", která toho moc nenapoví :-(

Grub výběr typu instlace OSSIM - Sensor
 OSSIM je postavené na Debianu a kombinuje řadu Open Source projektů, jako je OpenVAS, Suricata, Snort, NetFlow, OSSEC a další. Instalaci jsem prováděl do ESXi a tak jsem zkousel měnit vlastnosti virtuálky. Zkoušel jsem instalovat i jako OSSIM - All in One, ale stále stejná chyba.

Installation step failed ...
 Instalátor se zeptá na lokalizaci, klávesnici a pak už jen nastavení sítě a hesla na roota a pak se již vše instaluje automatizovaně (Preseed), přesněji se nedá do instalačního procesu jakkoliv vstoupit. Pokoušel jsem se provést instalaci v textovém režimu, potlačením framebufferu.

V grubu se pomocí [Tab] upraví  položka menu, kam se přidá následující.

debian-installer/framebuffer=false

Ale i textová instalace zkončila stejnou chybou.

Installation step failed ... v textovém módu.
Má instalace byla prováděna na veřejné IP adrese. A zde je onen problém. Instalaci jsem provedl v rozsahu privátní sitě 192.168.0.2/24 a ejhle instalace korektně doběhla. 

pondělí 8. prosince 2014

SSHFP v praxi

Podpora SSHFP DNS záznamů již existuje delší dobu. Po přečtení článku od Ondřeje Caletky jsem jej chtěl používat. Ale Active24 v té době tyto záznamy neumělo. Psal jsem na podporu, zda plánují tyto DNS záznamy podporovat. A odpověď byla velmi kladná.

Mile mě překvapilo, že se můj dotaz se zrealizoval a Active24 nově umožňuje vytvářet tyto DNS záznamy - SPF (navíc k TXT) - SSHFP - TLSA.


Použití je velmi snadné dle zmíněného článku.

Vypsání otisku SSH klíčů
ssh-keygen -r server.smejdil.cz
DNS dotaz na funkční záznamy
dig +dnssec server.smejdil.cz SSHFP
Smazání hosta ze známých klíčů
ssh-keygen -f "/home/user/.ssh/known_hosts" -R server.smejdil.cz
Nastavení SSH klienta pro funkční validování
vi ~/.ssh/config
VerifyHostKeyDNS yes
HostKeyAlgorithms ssh-rsa,ssh-dss 

pátek 21. listopadu 2014

OpenVAS & Metasploit Integration

Kdo se alespoň trochu zabývá bezpečností určitě narazil na Vulnerability Scaner - Open Vulnerability Assessment System (OpenVAS). Další hodně známým produktem je Metasploit. Oba produkty jsou zdarma k dispozici. Metasploit v komunitní edici.

Obě aplikace jsou k dispozici v distribuci Kali Linux. Takže zprovoznění obou není nikterak složité.


OpenVAS je složen z několika komponent. Viz obrázek. Běžnou administraci provádíme ve Web GUI, které se jmenuje Greenbone Security Assistant

https://kali.smejdil.cz:9392

Může nastat situace, kdy máme za úkol scanovat celou síť obsahující stovky počítačů. Pak už je klikání v GSA patřičně otravné.

Jistou variantou jak si klikání usnadnit je použít modul openvas, který se nachází v Metasploit. Stačí znát uživatele a heslo s oprávněním vytvářet targets a tasks.

msfconsole
msf > load openvas
msf > openvas_connect malyl password 127.0.0.1 9390
[*] Connecting to OpenVAS instance at 127.0.0.1:9390 with username malyl...
[+] OpenVAS connection successful


Pak si např. pomocí bash for cyklu vyrobíme soubor s přikazy.

targets.rc
openvas_target_create web1.smejdil.cz 192.168.42.10 "Web static"
openvas_target_create web2.smejdil.cz 192.168.42.20 "Web PHP53"
openvas_target_create web3.smejdil.cz 192.168.42.30 "Web PHP55"
openvas_target_create db1.smejdil.cz 192.168.42.40 "DB PostgreSQL"
openvas_target_create db2.smejdil.cz 192.168.42.50 "DB MySQL"
openvas_target_create mail1.smejdil.cz 192.168.42.60 "Mail Postfix, Courier"

...


tasks.rc
openvas_task_create web1.smejdil.cz 192.168.42.10 5 0
openvas_task_create web2.smejdil.cz 192.168.42.20 5 1
openvas_task_create web3.smejdil.cz 192.168.42.30 5 2
openvas_task_create db1.smejdil.cz 192.168.42.40 5 3
openvas_task_create db2.smejdil.cz 192.168.42.50 5 4
openvas_task_create mail1.smejdil.cz 192.168.42.60 5 5

...


Pak už jen pustíme připravenou dávku, která nám připraví OpenVAS k práci.

msf > resource targets.rc
...
msf > resource tasks.rc

Jistou další variantou je použití příkazové řádky OpenVAS-CLI neboli OMP.

OMP  command  line client for the Open Vulnerability Assessment System (OpenVAS)

Je jasné, že modul openvas v metasploit přímo využívá právě OMP.

úterý 29. dubna 2014

Certifikát od PostSignum JSignPdf


Již po dlouhé době jsem se konečně dokopal k vytvoření kvalifikovaného certifikátu od certifikační autority PostSignum. Užití certifikátu je dnes velmi široké:

Kancelářský balík LibreOffice umí podepisovat jím vzniklé dokumenty. Ovšem exportované PDF dokumenty již podepsané nejsou. Po krátkém hledání jsem našel Java aplikaci JSignPdf. Exportované PDF dokumenty je tedy velmi snadné podepsat.

čtvrtek 27. června 2013

Metasploit db_nmap

Většina adminů někdy použila mnou oblíbený program nmap. Tento nástroj slouží ke scanování sítě a dokáže zjistit, jaké služby na kterém počítači běží. Pokud chceme výsledky scanu uložit a např. porovnávat v čase, je třeba použít db_nmap, což je program, který je součástí Frameworku Metasploit.

Metasploit je produktem firmy Rapid7, která tento nástroj tvoří a prodává. Je to program pro penetrační testy. Metasploit má několik verzí nebo spíše edicí. Placená verze umožňuje pravidelně aktualizovat databáze chyb případně i exploitů a funkcionalita je hodně rozsáhlá.

Pro naše potřeby programu db_nmap nám postačí  "Metasploit Framework - Free Open Source Development Platform", která je např. snadno instalovatelná ve FreeBSD jako port. Celý framework je postaven na jazyce Ruby.

Před samotnou instalací doporučuji instalovat Vámi preferovanou verzi databáze PostgreSQL.

cd /usr/ports/databases/postgresql92-server/ && make install clean

cd /usr/ports/security/metasploit && make install clean

Po instalaci je možné již pustit samotnou konzoli.

[root@fbsd ~]# msfconsole
Call trans opt: received. 2-19-98 13:24:18 REC:Loc

     Trace program: running

           wake up, Neo...
        the matrix has you
      follow the white rabbit.

          knock, knock, Neo.

                        (`.         ,-,
                        ` `.    ,;' /
                         `.  ,'/ .'
                          `. X /.'
                .-;--''--.._` ` (
              .'            /   `
             ,           ` '   Q '
             ,         ,   `._    \
          ,.|         '     `-.;_'
          :  . `  ;    `  ` --,.._;
           ' `    ,   )   .'
              `._ ,  '   /_
                 ; ,''-,;' ``-
                  ``-..__``--`

                             http://metasploit.pro


       =[ metasploit v4.6.2-1 [core:4.6 api:1.0]
+ -- --=[ 1103 exploits - 621 auxiliary - 178 post
+ -- --=[ 300 payloads - 29 encoders - 8 nops

[*] Processing /root/.msf4/msfconsole.rc for ERB directives.
resource (/root/.msf4/msfconsole.rc)> db_connect -y /usr/local/share/metasploit/config/database.yml
[*] Rebuilding the module cache in the background...
resource (/root/.msf4/msfconsole.rc)> workspace -a SmEjDiL

[*] Added workspace: SmEjDiL
msf >

Z ukázky je vidět, že konzoje již využívá databázi pro ukládání výsledků scanů. Velmi podrobný a snadno pochopiletný postup, jak inicializovat databázi je popsán zde. Snad jen poznámka dríve byla podpora více databázi MySQL, SQLite a ta byla ukončena a podporována je pouze PostgreSQL. Metasploit je též součástí Linuxové distribuce Backtrack linux, kde je možná i nějaká modifikovaná verze.

Můžeme začít scanovat do DB

msf > db_status
[*] postgresql connected to msf_database
msf > db_nmap 192.168.42.0/24


Příkazem hosts si vypíšeme jednotlive výsledky, např. takto.

msf > hosts -R 81.95.98.2 -c address,name,os_name,os_flavor,updated_at,

Hosts
=====

address     name                os_name  os_flavor  updated_at
-------     ----                -------  ---------  ----------
81.95.98.2  gds39d.active24.cz  Linux    2.6.X      2013-06-26 19:24:57 UTC

RHOSTS => 81.95.98.2


Příkazem services si vypíšeme objevené služby na daném hostu.

msf > services -R 81.95.98.2

Services
========

host        port  proto  name   state  info
----        ----  -----  ----   -----  ----
81.95.98.2  25    tcp    smtp   open   Postfix smtpd
81.95.98.2  80    tcp    http   open  
81.95.98.2  443   tcp    https  open  

RHOSTS => 81.95.98.2


Pokud nechceme používat jen nmap Metasploit disponuje např. celou řadou scaneru. Zajímá mě jaké verze Windows se v mé síti nacházejí. Pěkný návod jak nato je např. zde.

msf > use auxiliary/scanner/smb/smb_version
msf auxiliary(smb_version) > set RHOSTS 192.168.42.40-50
RHOSTS => 192.168.42.40-100
msf auxiliary(smb_version) > set THREADS 11
THREADS => 11
msf auxiliary(smb_version) > run


Výsledkem je např. toto.

msf> hosts -c address,os_name,os_flavor,os_sp,purpose

Hosts
=====

address        os_name            os_flavor            os_sp  purpose
-------        -------            ---------            -----  -------

192.168.42.40  Microsoft Windows  7 Professional 7601  b1     client
192.168.42.42  Microsoft Windows  XP                   SP3    client


V minulosti jsem si koupil tuto knihu, která je pro msf3, ale i tak se z ní dá hodně čerpat.

Bezpečnosti zdar :-)

úterý 6. listopadu 2012

SSH anonymně pomocí Tor


Pokud používáme v síti Tor a Privoxy viz můj postarší příspěvek. A chceme být anonymní i skrze SSH, budeme potřebovat aplikaci proxy-connect.

Na FreeBSD nainstaluju z portu.

cd /usr/ports/net/proxy-connect && make install clean

SSH se konektí skrze Tor.

ssh username@server.domena.cz -o ProxyCommand="/usr/local/sbin/proxy-connect -4 -S localhost:9050 %h %p"
nebo

ssh -l username -2 1.2.3.4 -o ProxyCommand="/usr/local/sbin/proxy-connect -4 -S localhost:9050 %h %p"


Další možností je:

Add to ~/.ssh/config

Host remote.outside.net
    ProxyCommand /usr/local/sbin/proxy-connect -S socks:1080 %h %p

čtvrtek 1. prosince 2011

Netflow Analyzer and pfflowd pfSense

UPDATE: 1.12.2011

Po nějaké době jsem chtěl opět použít NetFlow Analyzer a koukám, že tvůrci nezaháleli a maji novější verzi 9.5. Instalace probíhala obdobně jako u předchozí verze. V routeru se systémem pfSense je novější verze pfflowd, která podporuje i netflow protokol verze 9, ale pro funkční používání je třeba zapnout verzi 5. Při použití poslední verze se děje to, že se vytváří neskutečně mnoho nějakých zařízení. Po rozdílech mezi verzi 5 a 9 jsem moc nekoukal. Hlavní je že Analzer funguje jak má a umožňuje sledovat provoz protékající skrze router.

About NetFlow Analyzer
Version : 9.5
Build Number : 9500
License Info : Professional Plus - Unlimited Interfaces
License Type : Trial - Expires On 2011-12-31
Licensed to : Evaluation User
Database Used : MYSQL
Interfaces Managed : 3



Po čase provozování větší LAN např. o 50-100 stanicích, je již potřeba vědet co a jak kde v síti komunikuje. Né že by si někdo hrál na velkého bratra, ale je třeba mít možnost dohledat co se v síti dělo. K sledování stavových informací IP toku dat slouží protokol Netflow. Který přenáší stavové informace src, dst, srcport, dscport atd. Protokol podporuje velké množstvi síťových zařízení jako jsou Switche a Routery.

Jako firewall používám pfSence, na kterém je možno zprovoznit pfflowd, který posílá UDP Netflow datagramy na server, kde běží Netflow Analyzer, což Java je aplikace, která poslouchá na portu 9996 a datagramy analyzuje a výsledky ukládá do MySQL databáze. Na portu 8080 daná aplikace umožnuje přihlášení k webovému interface, který poskytuje nahlížení na zaznamenaná data.

Aplikaci pfflowd je možno nainstalovat např. na jakýkoliv FreeBSD server nebo router.

Instalace Netflow Analyzeru lze stáhnout zde ManageEngine_NetFlowAnalyzer_8500.bin. Instalace preferuje GUI, ale je možná i v negrafickém režimu. Je to placená aplikace. Ale pro vyzkoušení existuje 30 denní evauation verze. Testoval jsem Linuxovou verzi pod Ubuntu 10.04 LTS a na žádný probém jsem nenarazil. Instalace je typická tím, že si sebou nese JRE i samotnou databázi MySQL.

About NetFlow Analyzer
Version : 8.5
Build Number : 8500
License Info : Professional Plus - Unlimited Interfaces
License Type : Trial - Expires on 2010-9-9
Licensed to : Evaluation User
Database Used : MYSQL
Interfaces Managed : 1

pondělí 21. listopadu 2011

OpenSSL library error follows - values mismatch

Řešil jsem standartní výměnu SSL certifikátu u webserveru Apache. Po domluvě s osobou, co certifikační řízení řešil u CA Thawte jsem mu vytvořil nové CSR dle zvyklostí.

openssl genrsa -des3 -out www.domena.cz.key 2048
openssl req -new -key www.domena.cz.key -out www.domena.cz.csr
openssl rsa -in www.domena.cz.key -out www.domena.cz.key-decrypt


Posléze jsem certifikáty přenesl na webserver a restartoval jej a ejhle, Apache nenaběhl s hláškou:

[Mon Nov 21 12:36:16 2011] [error] mod_ssl: Init: (www.domena.cz:443) Unable to configure RSA server private key (OpenSSL library error follows)
[Mon Nov 21 12:36:16 2011] [error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch


Je vhodné vždy prověřit, zda je modulus stejny u klíče (key), certifikátu (crt) a požadavku (csr)!!!

openssl x509 -noout -text -in www.domena.cz.crt -modulus
openssl rsa -noout -text -in www.domena.cz.key -modulus
openssl req -noout -text -in www.domena.cz.csr -modulus

Muj problem byl v tom, že mi pán zaslal jiný cert, než bylo domluveno :-(

středa 16. listopadu 2011

Feitian ePass PKI token

Kolega nalezl tento USB token Feitian ePass PKI token na jednom francouském shopu. Již dříve jsem po obdobném HW toužil. Pátral jsem zda by jej nechtělo koupit více lidí, ale ve finále měl danej shop pouze dva kousky. Celkově dva USB tokeny s poštovným stály 78,53€.

K čemu taková USB fleška je :-) ? Vypadá sice jako fleška, ale uvnitř je čtečka Smard Card - Feitian R-310 a Feitian PKI smartcard (FTCOS / PK-01C). Na token je možno uložit certifikát nebo ssh klíč. Výhodou je, že se dá RSA klíč přímo generovat na daném zařízení s tím, že privátní klíč nikdy token neopustí, což je jedna z klíčových vlastností .

Spolu s tokenem bylo dodáno i malé 92M CD s dokumentací. Aktuální ISO obraz je dostupný zde.

Hnedle co jsem jej dostal do ruky, strčil jsem jej do USB.

Nov 14 13:35:44 ntb kernel: [19615.418112] usb 5-1: New USB device found, idVendor=096e, idProduct=0503
Nov 14 13:35:44 ntb kernel: [19615.418115] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Nov 14 13:35:44 ntb kernel: [19615.418117] usb 5-1: Product: SCR301
Nov 14 13:35:44 ntb kernel: [19615.418119] usb 5-1: Manufacturer: Feitian
Nov 14 13:35:44 ntb mtp-probe: checking bus 5, device 5: "/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-1"
Nov 14 13:35:44 ntb mtp-probe: bus: 5, device: 5 was not an MTP device

Pro práci s tokenem budeme v Linux/UNIX systémech potřebovat free software OpenSC. Výrobcem tokenu je spolešnost Feitian. Ovladač FTCOS/PK-01C v OpenSC se jmenuje "entersafe", více je popsáno zde.

Nejprve jsem si instaloval tyto balíky v distribuci LMDE. K OpenSC je ječtě třeba ovladač čtečky atd. pcsc+ccid.

sudo aptitude install opensc
sudo aptitude install libccid
sudo aptitude install libacsccid1
sudo aptitude install pcsc-tools
sudo aptitude install pcscd


Kominikace s čtečkou mi nějak nefungovala, proto jsem si manuálně zkompiloval aktuální verzi. Popis instalace pěkně zdokumentován na GOOZE.

Ověření instlace je dokumentováno zde. LMDE verze.

opensc-tool --verbose --info
opensc 0.12.1 [gcc 4.6.1]
Enabled features: zlib openssl pcsc(libpcsclite.so.1)


Aktuální manuálně kompilovaná verze.

opensc 0.12.2 [gcc 4.6.1]
Enabled features: zlib readline openssl pcsc(libpcsclite.so.1)

Vypíšeme si čtečky --list-readers, -l Lists all configured readers

opensc-tool -l
# Detected readers (pcsc)
Nr. Card Features Name
0 Yes Feitian SCR301 00 00

Inicializace karty je opět pěkně zdokumentována zde.

Vypíšeme si ATR ma kartě --atr, -a Prints the ATR bytes of the card

opensc-tool --atr
Using reader with a card: Feitian SCR301 00 00
3b:9f:95:81:31:fe:9f:00:65:46:53:05:30:06:71:df:00:00:00:80:6a:82:5e


Vypíšeme si seriové číslo karty. --serial Prints the card serial number

opensc-tool --serial
Using reader with a card: Feitian SCR301 00 00
29 15 33 21 10 23 08 11 ).3!.#..

Preventivě smažeme kartu, na které od výrobve stejně nic není. Prověříme tím komunikaci čtečky s smart card.

pkcs15-init -vE
Using reader with a card: Feitian SCR301 00 00
Connecting to card in reader Feitian SCR301 00 00...
Using card driver entersafe.
About to erase card.


Dále si na kartě inicializujeme profil, nastavíme pin a puk

pkcs15-init --create-pkcs15 --profile pkcs15+onepin --use-default-transport-key --pin 1234 --puk 654321 --label "Jan Novak"

Pomocí dump si vypíšeme co Smard Card obsaduje.

pkcs15-tool --dump
Using reader with a card: Feitian SCR301 00 00
PKCS#15 Card [
Jan Novak]:
Version : 0
Serial number : 2915332110230811
Manufacturer ID: EnterSafe
Last update : 20111115124249Z
Flags : EID compliant

PIN [User PIN]
Object Flags : [0x3], private, modifiable
ID : 01
Flags : [0x32], local, initialized, needs-padding
Length : min_len:4, max_len:16, stored_len:16
Pad char : 0x00
Reference : 1
Type : ascii-numeric
Path : 3f005015


Můžeme do karty importovat existující RSA klíč, který musíme nejprve dešifrovat.

openssl rsa -in ~/.ssh/id_rsa -outform pem > id_rsa.pem
Enter pass phrase for /home/novak/.ssh/id_rsa:
writing RSA key


Posléze jej uložíme na Smard Card.

pkcs15-init --store-private-key id_rsa.pem --auth-id 01 --pin 1234

Lepší možnost je si klíč generovat přímo na token.

pkcs15-init --generate-key 2048-rsa --auth-id 01 --pin 1234

Veřejný klíč si vygenerujeme následovně. Návod opět zde. Vypíšeme si nejprve informaci o veřejném klíčí na smard card.

pkcs15-tool --list-public-keys
Using reader with a card: Feitian SCR301 00 00
Public RSA Key [Public Key]
Object Flags : [0x2], modifiable
Usage : [0x4], sign
Access Flags : [0x0]
ModLength : 2048
Key ref : 0
Native : no
Path : 3f0050153000
ID : c70982******a14eb3

pkcs15-tool --read-ssh-key c70982
******a14eb3

Using reader with a card: Feitian SCR301 00 00
2048 65537 259843
******67908u
ssh-rsa AAAAB3Nz
******
Bw2Tfg

Pak se již můžeme přihašovat na vzdálený server pomocí Secure Shell.

ssh -v -I /usr/lib/opensc-pkcs11.so server.domena.cz

Provider tokenu je možno zavést do patřičného souboru.

vim ~/.ssh/ssh_config
PKCS11Provider /usr/lib/pkcs11/opensc-pkcs11.so


Alternativy USB tokenu, u kterých se o Linuxu moc nepíše, ale funkční pod OpenSC budou.
Tyto alternativy jsem si zde uvedl jen proto, že jsem na rychlo hledal, zda se da nějaký USB token koupit v čechach. Patrně nebudou fungovat pod Linuxem.

pondělí 24. října 2011

ESET NOD32 Antivirus pro Linux Desktop

Antivir pro Linux Desktop není zrovna mou oblíbenou tematikou. Obecně je to asi zbytečnost. Ovšem, pokud se ve firemním prostředí používa centrální správa antiviru ESET - ERA, je žádoucí mít pod kontrolou i Linuxové Desktopy. ESET NOD32 Antivirus 4 Business Edition pro Linux Desktop je právě ten kus uzavřeného SW, který jsem byl nucen na firemní Notebook nainstalovat. Ještě malá poznámka k ERA server. Pokud používáme na Desktopu firewall, tak stačí povolená odchozí komunikace. Antivir, pokud je tak nastaven sám kontaktuje ERA server.

Instalaci jsem prováděl a testoval na dvouch obdobných OS distribucích Linux Ubuntu 10.04.3 LTS 64bit a Linux Mint Debian Edition 32bit, dále jen LMDE.


Instalace je vesměs triviální. Stáhneme si instalační archív. Je třeba se rozhodnout jakou verzi použijeme. Buť pro Domácí užití nebo pro Firemní s přívlastkem "be" (Business Edition). Tato be verze umožňuje napojení na ERA. Instalace se skládá z dvou částí esets_daemon a esets_gui. Grafický klient je startován po zalogování. Najdeme jej v Gnome: Aplikace / Systemové nástroje / ESET NOD32 Antivirus. Startování je nastaveno v Systém / Předvolby / Aplikace spouštěné při přihlášení.

Seznam stažených verzi:

../Eset_Nod/v4.0.66.0
ls -1
ueavbe.i386.cs.linux
ueavbe.i386.en.linux
ueavbe.x86_64.cs.linux
ueavbe.x86_64.en.linux

Nastavíme práva pro zpuštění instalačního archivu. V případě, že používáte Linux Mint Debian - (LMDE) je třeba provést jeden link, testovano na 32bitove verzi. Na 64bitove může být jiná cesta. Ubuntu 10.04.3 64bit problémy nepsalo.

LMDE

sudo mkdir /usr/lib/gconv
sudo ln -s /usr/lib/i386-linux-gnu/gconv/UTF-16.so /usr/lib/gconv/UTF-16.so

chmod 700 ueavbe.i386.cs.linux
sudo ./ueavbe.i386.cs.linux

Klikací instalace ala windows. Možné nastavení.

Vzdalena sprava: era.domena.cz
port 2222
Heslo: eset32era

BEAST attack on TLS

Již dříve jsem si sem poznamenával něco o SSL Tunningu na serverech, jako reakce na clánek na root.cz. Nově jsem na SSL Labs narazil na BEAST attack.

Zde je doporučené nastaveni OpenSSL - mod_ssl. Ukázkové video o útoku.

SSLProtocol -all +SSLv3 +TLSv1
SSLCipherSuite RC4-SHA:ALL:!NULL:!aNULL:!eNULL:!ADH:!LOW:!EXP:!MD5
SSLHonorCipherOrder On

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

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

úterý 2. srpna 2011

IE vs Apache SSL virtual a binarni data

Jelikož již po několikáte dohledávám jistý problém s jedním skutečně nepovedeným prohlížečem. Musim si to sem již zapsat.

Problem spočívá v tom, že pokud máme někde na Apache virtual s SSL a chceme aby web poskytoval např. nějaké swf soubory, IE je stáhne, ale nabízí k uložení. Dle mě je to dlouholetá a neopravená chyba, někdo tvrdí, že vlastnost. Podotýkám, že ve všech prohlížečích se to chová správně.

Je třeba u daného apache virtuálu nastavit např. následující.


SetEnvIf User-Agent ".*MSIE.*" IE_browser=yes
Header set Pragma public env=IE_browser
Header set Cache-control max-age=0 env=IE_browser *


Jelikož hojně používám mod_macro je záhodno danou definici uložit např. do macro.conf a posléze jen na správném míste použít Use M_IESSL

Teď už si to snad budu pamatovat a preventivně nastavovat všude tam, kde je SSL.

pondělí 1. listopadu 2010

SSHd StrictModes

Dnes jsem narazil na takový zajímavý problém. U jednoho systémového uživatele jsem změnil práva na jeho domacím adresáři. Tak aby do daného adresáže mohla zapisovat skupina ve které je chmod g+w /home/tester/ Po nastavení práv přestalo fungovat oveřování pomocí ssh klíče.

Tuto funkcionalitu má na svědomí defaultní bezpečnostní volba SSHD daemona a tou je StrictModes yes. Bezpečnost vždy na prvním místě. Ale někdy je třeba ustoupit.

v logu se objevovalo Authentication refused: bad ownership or modes for directory /home/tester/

vim /etc/ssh/sshd_config
StrictModes no

root:> /etc/init.d/ssh restart
* Restarting OpenBSD Secure Shell server sshd [ OK ]

Popis jednotlivých voleb je např. zde.

čtvrtek 21. října 2010

PFX - PKCS and Apache

Dostal se mi pod ruce certifikat v souboru s priponou .pfx. Pátral jsem a vyplivla ho zjevně nějaká M$ CA a tak jsem hledal jak to překonvertit pro Apache.

How do I export or import a PKCS#12 certificate?

openssl pkcs12 -in cert.pfx -out cert.pem -nodes

Soubor cert.pfx je zaheslován, takže potřebujeme i heslo pro úspěčnou konverzi. Konverzí získáme soubor cert.pem, který obsahuje balast řádky typu.

Bag Attributes
1.3.6.1.4.1.311.17.2:
localKeyID: 01 00 00 00
Microsoft CSP Name: Microsoft Software Key Storage Provider
friendlyName: le-LMCZWebServer-aee00472-b103-45d9-a25c-b0da2fb35820
Key Attributes:


a

Bag Attributes
localKeyID: 01 00 00 00
friendlyName: LukasMaly.NET
subject=/CN=test.smejdil.cz
issuer=/DC=cz/DC=smejdil/CN=Test


Nás budou zajímat jen sekce

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

Které si vykopírujeme např. do souborů test.smejdil.cz.crt a test.smejdil.cz.key. Dané soubory můžeme přidat do konfigurace Webserveru Apache např. s modulem mod_ssl.

PKCS#12 je standard z rodiny PKCS a PFX Tento formát se již nepoužívá, je to starší implementace, kterou Microsoftu stale používá. Dle české wiki je PFX předchůdcem standardu PKCS#12.

Zde je ještě zajímavé povídání s nadpisem "PFX - How Not to Design a Crypto Protocol/Standard"

pondělí 20. září 2010

CiscoVPN a Ubuntu 10.04.1

Pro připojení do práce jsem doposud používal VPNC, které je pěkně integrované v Gnome do NetworkManager. Ale zhruba po hodině připojení spojení zamrzne. Patrně se po nějaké době reinicializuje spojení a to klient nějak neustojí. Na rychlé úkony se to použít dál Ale pokud má být spojení realizováno celý den, je to nepoužitelne :-(

Proto jsem se rozhodl používat klienta od společnosti Cisco, který je i pro Linux.

#
# CiscoVPN on Ubuntu 10.04
#
wget -q vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz

1. Rozbalíme VPN Client
tar xzf vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz

2. Download patch
wget -q fixes.patch

3. Vstoupíme do adresáře vpnclient
cd vpnclient

4. Aplikujeme patch
patch < ../fixes.patch patching file frag.c patching file interceptor.c patching file IPSecDrvOS_linux.c patching file linuxcniapi.c patching file linuxkernelapi.c patching file Makefile 5. Nainstalujeme klienta pomoci scriptu sudo ./vpn_install 6. VPN client vyžaduje nahrát patřičný modul kernelu sudo /etc/init.d/vpnclient_init start 7. Upravíme si konfigurační soubor a umístíme jej do adresáře Profile sudo cp myVPN.pcf /etc/opt/cisco-vpnclient/Profiles/ 8. Vytvoříme VPN spojení dle profilu sudo vpnclient connect myVPN


V konfiguračním souboru je třeba nastavit username heslo a group heslo, případně i další volby. Zde je nástroj na dešifrování group hesla, pokud jej neznáte.

20100922 Na ntb s 64bitovym Ubuntu 10.04.1 a s kernelem 2.6.32-24-generic mi návod sice funguje, ale již dvakrát mi celej system vythnul pri navázaném VPN spojení. Modul v kernelu dělá zjevně paseku. Našel jsem návod, ale zatím mi to šlo zkompilovat, a uvidim doma zda se to bude chovat lépe při navázaném spojení.