úterý 23. července 2013

Řešení problému: Wireshark nevidí síťová rozhraní

Úvod

Po nainstalování Wiresharku a jeho spuštění v Ubuntu, s největší pravděpodobností neuvidíte žádná síťová rozhraní. Je to způsobeno tím, že běžný uživatel nemá přímo přístup na síťovou kartu. Spuštění jako root není bezpečné. Je tedy potřeba to vyřešit jinak. Budeme Wireshark spouštět s patřičnými „schopnostmi“, ale ne jako root.

Postup

Pokud ještě nemáme Wireshark, tak jej nainstalujeme:
sudo apt-get install wireshark
 Dále je potřeba balík ibcap2-bin, který upravuje přístup pro Wireshark.
sudo apt-get install libcap2-bin
 Vytvoříme novou skupinu nazvanou wireshark.
sudo groupadd wireshark
Přidáme sebe (uživatele) do nové skupiny. Místo USERNAME napište vlastní uživatelské jméno.
sudo usermod -aG wireshark USERNAME
 Změníme vlastníka skupiny.
sudo chgrp wireshark /usr/bin/dumpcap
Změníme oprávnění skupiny.
sudo chmod 755 /usr/bin/dumpcap
Nastavíme patřičné schopnosti pro dumpcap.
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
Hotovo. Nyní spusťte Wireshark a měli byste vidět patřičná rozhraní v seznamu Interface List (eth0, atd...)

 Vyzkoušeno v Lubuntu 12.04, což odpovídá Ubuntu 12.04 LTS.

Zdroj: debbase

pondělí 22. července 2013

Zabezpečené FTP pomocí SSL nebo TLS

Úvod

Původní návrh protokolu FTP nepočítá s žádným typem zabezpečení při vzájemné komunikaci klient-server. Znamená to tedy, že přenášené heslo a následně i přenášená data jsou velmi snadno zachytitelná a tedy i zneužitelná. Používání samotného FTP bez dalšího rozšíření je velmi riskantní.

Jak tedy zajistit zabezpečený přenos dat, např. skrz Internet? Shrnutí možností je např. v tomto článku na root.cz. Osobně bych vybíral pouze mezi SFTP (obsaženo v rámci OpenSSH) a FTPS (FTP + SSL/TLS vrstva). Pokud máme server kam se připojují uživatelé, kteří potřebují i shell a jsou pro nás důvěryhodní, tak je to jasné a zvolíme SFTP.
Na druhou stranu, pokud jsme doteť na serveru poskytovali standardní FTP přístup pro různý druh uživatelů, kterým nechceme umožnit nic jiného, než jen stahovat a ukládat data, pak je FTPS jasná volba.

V tomto článku je tedy popsáno, jak doplnit klasický FTP server o zabezpečenou "nadstavbu" pomocí protokolu SSL nebo TLS.

Instalace

Instalaci jsem prováděl na distribuci Raspbian určené pro zařízení Raspberry Pi, ale nevidím důvod proč by tento návod neměl fungovat na klasickém Debianu, nebo Ubuntu.

Nejprve nainstalujeme FTP deamona, pokud ještě nemáte. Já jsem použil vsftpd které je myslím hodně rozšířené a dostatečně prověřené.
sudo apt-get install vsftpd
Dále potřebujeme implementaci protokolů SSL a TLS. Nejběžnější je volně šiřitelné OpenSSL. V Raspbianu je myslím už obsaženo. Pro jistotu:
sudo apt-get install openssl
Nyní si můžeme vytvořit vlastní SSL certifikát. Není to sice nutnost, ale proč toho nevyužít. Certifikáty jsou umístěny v /etc/ssl/private.
Pokud složka zatím neexistuje, vytvoříme ji takto:
mkdir -p /etc/ssl/private
A změníme oprávnění
chmod 700 /etc/ssl/private
Pomocí OpenSSL vygenerujeme certifikát takto:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Jen ve zkratce co je v příkazu: platnost 1 rok, použité šifrování je RSA s délkou 2048 bitů. Pro další podrobnosti doporučuji další článek na root.cz.

Nyní se postupně objeví série položek které je potřeba "nějak rozumně" vyplnit.
Country Name (2 letter code) [AU]: CZ
State or Province Name (full name) [Some-State]:
Czech Republic
Locality Name (eg, city) []:
Město
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Název společnosti
Organizational Unit Name (eg, section) []:
Název oddělení.
Common Name (eg, YOUR name) []:
Celé jméno
Email Address []:
Váš email
Ted je na řadě konfigurace vsftpd. Konkrétně úprava souboru vsftpd.conf.
sudo nano /etc/vsftpd.conf
Do souboru přidejte (např. na konec) následující:
# Zapne SSL
ssl_enable=YES

# Povoluje anonymnim uzivatelum pouzivat zabezpecene SSL.
allow_anon_ssl=YES

# Vsichni neanonymni uzivatele jsou povinni pouzivat SSL pri prenosu.
force_local_data_ssl=YES

# Vsichni neanonymni uzivatele jsou povinni pouzivat SSL pri zadavani hesla.
force_local_logins_ssl=YES

# Povoluje pripojeni pomoci protokolu TLS v1. TLS v1 je preferovano.
ssl_tlsv1=YES

# Povoluje pripojeni pomoci protokolu SSL v2. TLS v1 je preferovano.
ssl_sslv2=NO

# Povoluje pripojeni pomoci protokolu SSL v3. TLS v1 je preferovano.
ssl_sslv3=NO

# Vypne znovuuziti SSL (vyzadovano v WinSCP)
require_ssl_reuse=NO

# Vyber SSL sifry, kterou vsftpd bude pouzivat pro 
#sifrovani SSL spojeni (vyzadovano ve FileZille)
ssl_ciphers=HIGH

# Cesta k ulozenym RSA certifikatum.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Pokud necháme nastaveno force_local_logins_ssl=YES a force_local_data_ssl=YES bude pro přihlášení i přenos souborů použito výhradně TLS. Pokud bude mít uživatel klienta, který TLS nepodporuje, nelze se přihlásit. Pokud u těchto dvou možností změníme hodnoty na NO, umožníme klientům spojení i jinak, než přes TLS, tedy např SSL v2 a v3. Klienti, jako je WinSCP a FileZilla nemají problém ani s jedním.

Restartujeme vsftpd.
sudo /etc/init.d/vsftpd restart

Připojení ve Windows

Jako jednoduchého klienta lze doporučit FileZillu . Zde by mělo fungovat rychlé přihlášení v horní liště programu. Klient ale měl problém rozpoznat typ a verzi šifrovacího protokolu, proto je lepší vytvořit ve Správci míst nové připojení, viz. obrázek č. 1.
Obrázek č.1: Správce míst ve FileZille.
Při prvním přihlášením se vám zobrazí podrobnosti o certifikátu který jsme vygenerovali dříve.

Někdy se stane, že si klient úplně nerozumí se serverem v otázce SSL/TLS zahájení spojení. U WinSCP je nutné v možnostech přímo nastavit explicitní šifrování SSL/TLS jinak nebude přihlášení fungovat. Používaný port je stále 21.

Připojení v Linuxu

Jelikož je FileZilla opensource, nevidím důvod ji nepoužít i v GNU/Linuxu. Osobně vyzkoušeno v Lubuntu 12.04 s verzí 3.5.3 bez problémů.
Pro nainstalování použijeme:
sudo apt-get install filezilla

Řešení problémů

Během přihlášení hlásí FTP klient 
530 Login incorrect
Řešení: otevřít konfigurační soubor
sudo nano /etc/vsftpd.conf
a zde změnit řádek
pam_service_name=vsftpd
na
pam_service_name=ftp
Uložíme (Ctrl+X a poté Y) a provedeme restart procesu:
sudo /etc/init.d/vsftpd restart

Seznam změn:
  • 15-3-2015 - přidáno řešení problémů
  • 9-11-2014 - délka šifry navýšena na 2048 bitů.

Zdroj: HowtoForge