poniedziałek, 18 kwietnia 2011

VSFTPD

Konfiguracja vsftpd ( Very Secure FTP Server )
28 lip

Jest to prawdopodobnie najbezpieczniejszy i najszybszy UNIX’owy serwer FTP. Jego zaletami są m.in. prostota konfiguracji, bezpieczeństwo i szybkość (transfer jest o wiele większy niż w przypadku innych serwerów ftp). Dodatkowo warto wspomnieć, że w jego kodzie nie znaleziono „błędów krytycznych”. Używany jest m.in. na serwerach ftp.redhat.com, ftp.openbsd.org, ftp.suse.com, ftp.ximian.com, ftp.kde.org, ftp.debian.org, ftp.gnome.org, ftp.gnu.org i inne, co potwierdza tezę, że vsftpd jest zaufanym i dojrzałym narzędziem. Sama nazwa mówi za siebie – „vs” jest skrótem od Very Secure. Jeżeli chcesz mieć bezpieczny, wydajny i stabilny serwer FTP, powinieneś spróbować vsftpd.

Instalacja
# apt-get update
# apt-get install vsftpd

Konfiguracja
vsftpd pozwala nam na odpalenie wielu serwerów FTP jednocześnie na różnych portach, dzięki temu zyskujemy możliwość odpalenia serwera anonimowego osobno konfigurowalnego obok serwera produkcyjnego. Zmiana konfiguracji jednego lub wyłączenie nie zakłóci pracy drugiego. Postaram się przedstawić taką konfigurację w tym wpisie.

Standardowy plik konfiguracyjny vsftpd znajduje się w /etc/vsftpd.conf . Od razu po instalacji znajdziemy w nim sporo już gotowych ustawień, jednak polecałbym wykasować jego zawartość i stworzyć go od nowa. Oto niektóre z najważniejszych opcji jakie możemy wykorzystać podczas budowania własnego configa.

# Poziom z którego zostaje uruchomiony serwer
nopriv_user=

# Uruchamianie serwera w trybie standalone
listen=

# Określenie portu, na którym serwer ma nasłuchiwać (domyślnym jest port 21)
listen_port=

# Zabronienie na logowanie się użytkownikom anonimowym, domyślnie jest to YES
anonymous_enable=

# Zezwolenie na logowanie się użytkownikom lokalnym, domyślnie jest to NO
local_enable=

# Zezwolenie na zapis w katalogu użytkownika lokalnego
write_enable=

# Umask (w większości serwerów używany jest 022)
local_umask=

# Umask dotyczący anonimowych
anon_umask=022

# limit szybkości podawany jest w bajtach na sekundę, jeśli jest ustawiony na 0 to brak jakiegokolwiek limitu.
local_max_rate=

# Włączenie logowania
xferlog_enable=

# Ścieżka do pliku z logami
xferlog_file=/var/log/vsftpd.log

# Maksymalna liczba połączonych użytkowników
max_clients=

# Maksymalna liczba użytkowników mogących się połączyć z tego samego adresu IP
max_per_ip=

# Banner, który będzie wyświetlany podczas logowania. W jego stworzeniu może być pomocny program app-misc/figlet.
banner_file=/etc/vsftpd/vsftpd.banner

# Ograniczenie użytkownikom do poruszania się jedynie w obrębie katalogu domowego
chroot_local_user=

# Katalog dla chroot’a
secure_chroot_dir=/var/chroot/vsftpd

# Dodanie użytkowników, którzy mogą poruszać się poza katalogiem domowym
chroot_list_enable=YES

# Dodajemy użytkownika z przywilejami poruszania się poza katalogiem domowym np:
# echo „użytkownik” >> /etc/vsftpd/chroot.list
chroot_list_file=/etc/vsftpd/chroot.list

# Serwer nie będzie pytał o hasło, podczas logowania na anonymous:
no_anon_password=

# Pozwalamy na download plików, które będą miały ustawione prawa do odczytu (readable):
anon_world_readable_only=

# Zabraniamy na upload plików:
anon_upload_enable=

# Ukrywamy prawdziwych użytkowników oraz grup dla plików lub katalogów
# (vsftpd zamieni je na nazwy użytkownika odpowiedzialnego za anonimowy ftp):
hide_ids=

# Pozwala na tworzenie katalogów
anon_mkdir_write_enable=

# Pozwala na kasowanie i zmienianie nazw katalogów przez anonimowych
anon_other_write_enable=

# Pozwala ograniczyć transfer dla anonimowych
anon_max_rate=

# Maxymalny czas bezczynności
idle_session_timeout=300

# Jeżeli jest ustawione na YES pozwala na ściąganie metodą ASCII
ascii_download_enable=

# Jeżeli jest ustawione na YES pozwala na wysyłanie metodą ASCII
ascii_upload_enable=NO

# Sam decydujesz czy mogą się łączyć Aktywnie czy Pasywnie
connect_from_port_20=NO

# Ustawione na NO zablokuje polecenia PORT i ustawi serwer w tryb pasywny (lepiej YES)
port_enable=YES

# Ustawione na YES loguje polecenia FTP wydawane przez użytkowników
log_ftp_protocol=NO

# Pozwala ograniczyć możliwość wydawania komand do minimum(możemy zabronić ściągania, sprawdzania wielkości plików itp), pełna lista możliwość tutaj -> http://www.nsftools.com/tips/RawFTP.htm
cmds_allowed=

# Ciekawą opcją jest także `user_config_dir`, która pozwala przyporządkować dowolnemu użytkownikowi w systemie konkretne opcje. Mogą to być np. takie opcje jak listen_address, banner_file, max_per_ip, max_clients, xferlog_file, vsftpd_log_file, itp. Definiujemy więc ścieżkę do takiego katalogu, oraz tworzymy go w systemie. Po zdefiniowaniu tej opcji w pliku konfiguracyjnym, vsftpd będzie automatycznie szukał pliku, który nosi taką samą nazwę jak użytkownik systemowy. Na przykład dla użytkownika `tomek` takim plikiem będzie /usr/local/etc/vsftpd/user_conf/tomek, w tym właśnie pliku będziemy ustawiać konkretne opcje dla tego użytkownika.
user_config_dir=/usr/local/etc/vsftpd/user_conf/

# Opcja ta pokazuje informację o procesie systemowym vsftpd, inaczej mówiąc pokazuje co dany użytkownik robi po połączeniu się z naszym serwerem
setproctitle_enable=YES

Przykładowe pliki vsftpd.conf
Przykład nr 1
Poniższa konfiguracja serwera FTP umożliwia łączenie użytkowników do swoich katalogów domowych. Mogą oni pobierać i wysyłać na swoje konta dane z prędkością do 5 KB/s w każdą stronę. Po poprawnym zalogowaniu się do swoich kont nie będą mogli wychodzić poza swój katalog domowy ze względów bezpieczeństwa. Istnieje możliwość dodania użytkowników którzy będą mogli poruszać się poza swoim katalogiem domowym. Zabronione jest również logowanie się anonimowych użytkowników.

nopriv_user=ftp
listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
local_max_rate=5120
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
max_clients=500
max_per_ip=2
banner_file=/etc/vsftpd/vsftpd.banner
chroot_local_user=YES
secure_chroot_dir=/var/chroot/vsftpd
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list

Przykład nr 2
Poniższy przykład pozwala na logowanie się użytkowników anonimowych, serwer działa na porcie 2121. Anonimowi oraz normalni mogą pobierać i wysyłać na swoje konta dane bez ograniczeń. Wszyscy mają zakaz opuszczania własnego katalogu. Dla anonimowych będzie to /var/ftp . Maksymalna ilość połączeń wynosi 5 a dla jednego IP jest to 2. Pliki zakazane na serwerze to *.mp3 i *.avi a katalog files. A pliki niewidoczne dla userów do *.doc i *.xls

nopriv_user=ftp
listen=YES
listen_port=2121
anonymous_enable=YES
local_enable=YES
ftpd_banner="Serwer vsFTPd wita"
xferlog_enable=YES
xferlog_file=/var/log/xferlog.log
xferlog_std_format=YES
chroot_local_user=YES
secure_chroot_dir=/var/ftp
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=NO
hide_ids=YES
local_umask=022
anon_umask=022
#limity liczby równoczesnych połączeń
max_clients=5
max_per_ip=2
idle_session_timeout=120
data_connection_timeout=900
deny_file={*.mp3,files/,*.avi}
hide_file={*.doc,*.xsl}

Przykład nr 3
Konto z możliwością logowania się tylko anonimowo. Można jedynie pobierać pliki bez ingerencje w nie.

listen=YES
anonymous_enable=YES
ftp_username=ftp
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=YES
anon_max_rate=0
idle_session_timeout=300
ascii_download_enable=NO
ascii_upload_enable=NO
connect_from_port_20=NO
port_enable=YES
hide_ids=NO
log_ftp_protocol=NO
syslog_enable=NO
max_per_ip=0
# cmds_allowed=
local_root=/usr/share/empty
nopriv_user=nobody
ftpd_banner=(vsFTPd 1.2.0)

Uruchamianie
Jeżeli posiadamy tylko jeden plik konfiguracyjny to możemy po prostu wydać polecenie /etc/init.d/./vsftpd start
Jeżeli posiadamy parę plików konfiguracyjnych to musimy każdy osobno załadować :
vsftpd /etc/vsftpd.conf.annonymus
vsftpd /etc/vsftpd.conf.normalny
vsftpd /etc/vsftpd.conf.bartek

To tyle;]

Tar - pakownie/rozpakowywanie

Kompresja tar.gz, bz i inne

Narzędzia i sposoby do pakowania i rozpakowywania archiwów:

Jedną z najczęściej wykonywanych przez nas czynności jest na pewno rozpakowywanie plików ściągniętych z internetu. Zazwyczaj są to pliki programów z rozszerzeniem tar.gz i tar.bz2 również zip oraz rar.
Poniżej podstawowe polecenia przy pakowaniu i rozpakowywaniu tych plików.
1. Rozpakowanie plików *.tar.gz:
- tar -xvzf nazwa_pliku.tar.gz
-x - extract,
-v - verbose (wypisywanie nazw wszystkich plików),
-z - archiwum skompresowane programem gzip,
-f - plik.
2. Rozpakowywanie plików typu *.bz2:
- tar -xvjf nazwa_pliku*tar.bz2
-xvf - jak wyżej,
-j - oznacza archiwum bz2.
3. Pakowanie ogólnie wygląda tak:
- tar -czf backup.tar.gz /katalog/do/spakowania,
- tar -cjf backup.tar.bz2 /katalog/do/spakowania.
4. Rozpakowywanie plików *.zip
- unzip nazwa_pliku.zip.
Pakowanie: zip -r backup.zip /katalog/do/spakowania.

Teraz parę praktycznych przykładów wykorzystania. Do testów wybrałem sobie katalog perl posiadający skrypty perla oraz zawierający jeszcze inny katalog również ze skryptami.
Załózmy, że często wykonujemy kopię tego samego katalogu i jest on zawsze nadpisywany, a chcemy aby za każdym razem archiwum było tworzone z aktualna datą. Mozemy oczywiści ją podawać ręcznie, ale gdy polecenie chcemy umieścić w skrypcie t może byc problem. Rozwiążemy go następująco:
tar -cvzf `date +'%d%m%y'`.tar.gz /home/rambix/perl.
Teraz inna sytuacja.
Co jakiś czas archiwizujemy sobie jakis katalog np. może to być /home, ale nie chcemy aby jakieś katalogi w nim się znajdujące ze wzgledu na ich rozmiar były pakowane (np. zawierające filmy muzyke itp.). Na przykładzie mojego katalogu perl, który zawiera jeszze katalog other robimyto tak:
tar -cvzf perl.tar.gz perl --exclude perl/other.

piątek, 15 kwietnia 2011

Polonizacja Debi@na

apt-get install locales

w okienku tore sie nam pojawi zaznaczamy
[*] pl_PL ISO-8859-2

i dajemy ok w nastepnym okienku ustawiamy kursor na
pl_PL


i ok

teraz instalujemy konfiguratora do localesow
apt-get install localeconf


na pytanie
Manage locale configuration files with debconf?

odpowiadamy [Yes]
na pytanie
Replace existing locale configuration files?

odpowiadamy [Yes]
z listy wybieramy
pl_PL ISO-8859-2

nastepnie [OK]
i zaznaczamy
[*] LC_COLLATE
[*] LC_CTYPE
[*] LC_MESSAGES
[*] LC_MONETARY
[*] LC_NUMERIC
[*] LC_TIME

nastepnie [OK]
na kolejnych ekranach powinno byc zaznaczone
pl_PL ISO-8859-2

jesli nie jest to zaznaczamy w/w pozycje
i 7 razy naciskamy klawisz [Enter]

jesli mamy juz w systemie locales i localeconf mozemy je przekonfigurowac piszac
dpkg-reconfigure locales
dpkg-reconfigure localeconf


aby dopelnic calosci przydalo by sie zainstalowac jaks czcionke pod konsole w standardzie ISO-8859-2 a wiec
apt-get install fonty

z listy wybieramy
iso2 (?rodkowa Europa)

środa, 13 kwietnia 2011

SCP

Copy the file "foobar.txt" from a remote host to the local host

$ scp your_username@remotehost.edu:foobar.txt /some/local/directory

Copy the file "foobar.txt" from the local host to a remote host

$ scp foobar.txt your_username@remotehost.edu:/some/remote/directory

Copy the directory "foo" from the local host to a remote host's directory "bar"

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

Copy the file "foobar.txt" from remote host "rh1.edu" to remote host "rh2.edu"

$ scp your_username@rh1.edu:/some/remote/directory/foobar.txt \
your_username@rh2.edu:/some/remote/directory/

Copying the files "foo.txt" and "bar.txt" from the local host to your home directory on the remote host

$ scp foo.txt bar.txt your_username@remotehost.edu:~

Copy multiple files from the remote host to your current directory on the local host

$ scp your_username@remotehost.edu:/some/remote/directory/\{a,b,c\} .

$ scp your_username@remotehost.edu:~/\{foo.txt,bar.txt\} .

scp Performance

By default scp uses the Triple-DES cipher to encrypt the data being sent. Using the Blowfish cipher has been shown to increase speed. This can be done by using option -c blowfish in the command line.

$ scp -c blowfish some_file your_username@remotehost.edu:~

It is often suggested that the -C option for compression should also be used to increase speed. The effect of compression, however, will only significantly increase speed if your connection is very slow. Otherwise it may just be adding extra burden to the CPU. An example of using blowfish and compression:

$ scp -c blowfish -C local_file your_username@remotehost.edu:~

środa, 6 kwietnia 2011

Statystyki interfejsów sieciowych - vnstat

Statystyki interfejsów sieciowych
25 marca 2011, Morfeusz888

Wiadomo, przez serwer przepływają ogromne ilości danych i dobrze jest mieć na nie wgląd. Ile danych wchodzi, ile wychodzi, jaka jest średnia prędkość. Jeżeli pracownicy skarżyli by się, że internet zwolnił, zawsze możemy sprawdzić, czy nie szwankuje któryś interfejs na serwerze albo czy wina leży gdzieś indziej. W tym artykule przedstawię Wam aplikację vnstat. Poznamy, proces instalacji oraz podstawy jej wykorzystania. Zapraszam do lektury.

Dla odmiany pokaże, jak monitorować statystyki na systemie Ubuntu Server.
Po pierwsze instalacja.

Program znajduje się w standardowym repozytorium dla Ubuntu. W takim razie nie pozostaje nam nic innego, jak wklepać polecenie:

sudo apt-get install vnstat

podać hasło do roota i czekać, aż się wszystko pobierze i po instaluje. Pierwszy krok mamy za sobą. Coś za łatwo idzie. Prawda ? :)
Konfiguracja

Vnstat został podczas instalacji automatycznie dodany do usług, które startują wraz z systemem. Teraz musimy utworzyć bazę danych dla każdego z interfejsów sieciowych. Składnia wygląda tak:

vnstat -u -i interfejs

Mówiąc bardziej po ludzku, aby utworzyć bazę danych dla interfejsu eth0 wpisujemy

vnstat -u -i eth0

i zatwierdzamy enterem. Stanie się on automatycznie domyślny interfejsem dla programu. To polecenie wykonujemy jeszcze z poziomu roota.

Jeżeli serwer posiada więcej, niż jeden interfejs sieciowy to postępujemy analogicznie jak dla powyższego przykładu, czyli:

vnstat -u -i eth1
vnstat -u -i eth2

Tyle by było z konfiguracji.
Przeglądamy statystyki.

Jeżeli ktoś byłby bardzo napalony i zaraz po utworzeniu bazy wpisał vnstat, to dostanie komunikat, że statystyki nie zostaną wyświetlone, gdyż program posiada za mało danych. Musimy odczekać, tak najlepiej godzinę,abyśmy nie musieli oglądać jedno znakowych cyfr i potem dziwić się dlaczego tak mało danych przelatuje przez serwer.

Jak podglądać statystyki? Niech jako przykład posłuży nam ten interfejs eth0.

Vnstat umożliwia nam pokazywanie statystyk z różnych przedziałów czasowych. A mianowicie.

* vnstat -q – pokazuje ogólnie to co się w bazie znajdujemorfeusz888_vnsta1
Rys 1. Działanie polecenia vnstat -q
* vnstat -h – pokazuje statystyki z ostatnich 12 godzinmorfeusz888_vnstat2
Rys 2. Działanie polecenia vnstat -h
* vnstat -d – pokazuje statystyki z ostatnich dnimorfeusz888_vnstat3
Rys 3. Działanie polecenia vnstat -d
* vnstat -m – pokazuje statystyki z ostatnich miesięcymorfeusz888_vnstat4
Rys 4. Działanie polecenia vnstat -m
* vnstat -w -pokazuje statystyki z ostatnich tygodnimorfeusz888_vnstat5
Rys 5. Działanie polecenia vnstat -w
* vnstat -t – wyświetla dni, w których interfejsy przesłały najwięcej danychmorfeusz888_vnstat6
Rys 6. Działanie polecenia vnstat -t
* vnstat -s – pokazuje krótkie informacje na temat statystykmorfeusz888_vnstat7
Rys 7. Działanie polecenia vnstat -s
* vnstat -l – pokazuje obciążenie danego interfejsu z czasie rzeczywistym
* vnstat –help – więcej poleceń tego typu

Pewnie się teraz zastanawiacie, co znaczą te dziwne literki typu rx itd. Aby było mi łatwiej tłumaczyć, posłużę się statystykami z dni.

morfeusz888_vnstat3
Rys 8. Przykładowe statystyki z dni

Kolumna day, wiadomo co oznacza, nie trzeba tłumaczyć. Kolumna z podpisem rx informuje nas, ile danych przez ten interfejs zostało otrzymanych. Kolumna tx – ile zostało wysłanych danych i avg. rate – jaka była średnia prędkość przysyłanych danych. Total, to wiemy – wszystko.
Ale ja chce obrazki.

Jeżeli kogoś nie satysfakcjonuje taka interpretacja, obco czuje się wśród tych cyferek w trybie tekstowym, to może sobie zainstalować graficzną nakładkę poprzez www. Jedyny problem to taki, że musi być zainstalowany serwer www oraz php. Ja z racjitego, że na Ubuntu Server podczas instalacji machnąłem już sobie LAMP-a, to nie muszę tego robić. Pokażę, jak to pobrać i zainstalować.

Po pierwsze musimy pobrać archiwum. Wpisujemy w konsoli

wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz

Po pobraniu paczuszki należy ją wypakować. Wpisujemy:

tar -xvf vnstat_php_frontend-1.5.1.tar.gz

Gitara. Paczka jest wypakowana. Teraz wypadałoby zmienić jej nazwę na jakąś bardziej przyjazną:

mv vnstat_php_frontend-1.5.1 vnstatwww

Ok. Teraz kopiujemy folder do katalogu www serwera. W moim przypadku jest var/www.

sudo cp -r /home/ubuntuserver/vnstatwww /var/www/

Teraz dla potrzeb musimy wymedytować plik config.php. Wpisujemy

sudo nano /var/www/vnstatwww/config.php

Plik zawiera 72 linii kodu, z czego większość to komentarze. Nas najbardziej interesują linie:

* $language = ‘en’ ; – język interfejsu
* $iface_list = array(’eth0 ‘, ‘eth1 ‘, ’sixxs’); – interfejsy, jakie mają być wyświetlane

Język domyślnie jest jako holenderski, więc ja od razu zmieniłem na angielski. Nie ma języka polskiego. Zaś w iface dodałem następny interfejs eth1. Tutaj możemy śmiało dodawać tyle interfejsów, ile jest na serwerze.

Aby zobaczyć statystyki w trybie graficzny, w przeglądarce wpisujemy (jeżeli sprawdzamy to zdalnie) adres ip/vnstatwww czyli u mnie to jest http://192.168.0.11/vnstatwww/

Naszym oczom ukażą się statystyki

TrueCrypt

TrueCrypt — prawdziwe szyfrowanie
12 maja 2007, lipiec

Super opis
http://dyski.cdrinfo.pl/artykuly/truecrypt5/index.php



We wcześniejszym tekście opisywałem program Cryptsetup, który pozwalał nam na sprawne zaszyfrowanie naszych danych. Ktoś może zapytać: “Więc po co tracić czas i opisywać to samo, tylko wykonane w innym programie?”. Moja odpowiedź brzmi: “Po to, żeby użytkownik miał alternatywę i sam mógł zdecydować, którego programu chciałby użyć.” Ponadto TrueCrypt jest zdecydowanie łatwiejszy w użyciu, o czym przekonasz się w trakcie pracy z tym programem. Jeżeli jesteś zainteresowany odkrywaniem wspaniałych możliwości tego programu, zapraszam do lektury!

Autor: Marcin Lipiec

Krótkie przedstawienie funkcji programu

TrueCrypt jest darmowym programem, który szyfruje informacje “w locie” (ang. on-the-fly). W chwili pisania tekstu najnowsza wersja jest oznaczona numerkiem 4.3. Za pomocą TrueCrypt możesz zaszyfrować cały dysk, oddzielną partycję lub stworzyć szyfrowany folder. TrueCrypt nie tylko szyfruje całe zawartości plików, ale również ich nazwy i nazwy folderów w których się znajdują. Nie jest możliwe jest także odczytanie rozmiaru zaszyfrowanego folderu/dysku/partycji. W tym tekście pokażę jak zaszyfrować dowolny folder, znajdujący się na Twojej partycji. TrueCrypt dostępny jest zarówno na Windowsa i Linuksa.

Zalety TrueCrypt:

* tworzy zaszyfrowany wirtualny dysk i montuje go jak prawdziwy,
* szyfruje cały dysk, wybraną partycje/katalog a nawet USB,
* szyfrowanie następuje automatycznie, w locie i jest niewidzialne dla użytkownika,
* nie ma możliwości odczytania rozmiaru zaszyfrowanej partycji/katalogu,
* wykorzystuje m.in. takie algorytmy jak: AES-256, Serpent, Twofish,
* umożliwia stworzenie ukrytego wolumenu,
* tworzone wolumeny w żaden sposób nie różnią się od zwykłych danych,
* łatwy w obsłudze,
* wirtualne dyski tworzone przez TrueCrypt są całkowicie niezależne od systemu operacyjnego,
* klucze identyfikacyjne mogą być przechowywane na pendrivie.
* i wiele więcej…

Zabezpieczenie szyfrowanych danych może odbywać się na trzy sposoby:

* za pomocą wybranego przez Ciebie hasła,
* za pomocą specjalnego klucza,
* jednocześnie z użyciem hasła i klucza.

Ale co to jest ten klucz? Kluczem może być dowolny plik z Twojego dysku twardego np.: *.avi, *.mpg czy *.txt lub cały folder zawierający kilka plików. Uwaga! Lepiej być ostrożnym w używaniu jako klucza pliku tekstowego, ponieważ jeżeli zmienisz jego zawartość, zmieni się klucz, tym samym nie będziesz w stanie odszyfrować swoich danych. Co się stanie jak zgubisz klucz? Już nigdy nie odzyskasz swoich danych. Dlatego nie polecam wykorzystywania do identyfikacji tylko samego klucza. Najlepszą metodą jest użycie i klucza i hasła. W takim przypadku, gdy na przykład zgubimy klucz, mamy możliwość jego zmiany po wprowadzeniu odpowiedniego hasła i odwrotnie, jeżeli zapomnimy hasło, mamy możliwość jego zmiany po wskazaniu odpowiedniego klucza. Oczywiście żadne rozwiązanie nie jest idealne, ponieważ zawsze istnieje ryzyko, że zapomnisz hasło i zgubisz klucz.
Krótkie porównanie TrueCrypt i DM-Crypt

W rzeczywistości trudno stwierdzić, który z tych programów jest lepszy. Po żmudnym przeglądzie opisu opcji i rozważaniach stwierdziłem, że połączenie obu tych programów byłoby najlepszym rozwiązaniem. Oba programy pozwalają na stworzenie tzw. “kontenera” — kontener jest to szyfrowany plik, który działa tak jak katalog, więc możesz umieszczać w nim swoje pliki (przydatne rozwiązanie na przykład wtedy, gdy nie chcesz szyfrować całej partycji). Świetną zaletą obu programów jest również możliwość szyfrowania danych w czasie nagrywania ich na płytę CD lub DVD. Przy zmianie jądra Linuksa na nowszą wersję, będziesz musiał ponownie instalować moduł TrueCrypt, w przeciwieństwie do DM-Crypta. Z drugiej strony — w TrueCrypt możemy wykorzystać jednocześnie kilka algorytmów do szyfrowania! Działa on również na Windows, więc jeśli korzystasz z obu systemów, TrueCrypt będzie zdecydowanie lepszym wyborem. Jeżeli chcecie znaleźć bardzo szczegółowe informacje, zapraszam na stronę http://czytelnia.ubuntu.pl/index.php/2007/04/03/szyfrowane-systemy-plikow/. Znajdziesz tam świetny opis tych i innych programów.
Jak wybrać ten najlepszy klucz?

Osobiście nie polecam wybierania jako klucza plików czy folderów z naszego dysku. Najlepszą, więc metodą będzie użycie specjalnego generatora wbudowanego w TrueCrypt. RNG — Random Number Generator, bo taką nosi on nazwę, tworzy nam losowe dane o maksymalnej długości 320 bajtów i zapisuje je do wskazanego przez nas pliku. Jak odbywa się generowanie losowych danych? Jeżeli chodzi o Linuksa, RNG wykorzystuje dotego /dev/random lub /dev/urandom, czyli szumy powstałe przy używaniu urządzeń podłączonych do naszego komputera takie jak klawiatura czy myszka.
Jak działa TrueCrypt?

Cały proces szyfrowania jest zupełnie niewidzialny. W momencie kopiowania danego pliku na szyfrowany dysk, jego niewielkie kawałki (jeśli jest on zbyt duży np. film) kopiowane są najpierw do pamięci RAM a dopiero później zapisywane są w docelowym miejscu. Odszyfrowanie odbywa się na tej samej zasadzie, najpierw plik częściami kopiowany jest do pamięci RAM, następnie przekazywany jest użytkownikowi. TrueCrypt nigdy nie zapisuje nie zaszyfrowanych danych na dysku, zawsze dane szyfrowane są najpierw w RAM. Jest to bardzo wygodne rozwiązanie i zabezpiecza nas przed przypadkowym przechwyceniem plików.
Pobieramy TruceCrypt

Nowe wersje programu TrueCrypt znajdziesz zawsze na http://www.truecrypt.org. Aby TrueCrypt mógł działać poprawnie potrzebujemy także narzędzia jakim jest dmsetup. Dmsetup jest narzędziem, które umożliwia pracę z logicznymi dyskami zmapowanymi za pomocą sterownika device-mapper. Najnowszą wersję dmsetupa znajdziesz na http://sources.redhat.com/dm/. Gdy już masz wszystko pobrane, najpierw instalujemy narzędzie dmsetup:

tar zxvf device-mapper.twoja_wersja
cd device-mapper.twoja_wersja
./configure
make
make install

Jeżeli wszystko poszło bez problemów, instalujemy TrueCrypt:

tar zxvf truecrypt-twoja_wersja
cd truecrypt-twoja_wersja

Wchodzimy do katalogu Linux i instalujemy:

cd linux
./build.sh

Checking build requirements...
Building kernel module... Done.
Building truecrypt... Done.

Skrypt najpierw sprawdzi czy nasz system spełnia wymagania, może również zapytać nas o podanie paru informacji jeśli nie jest w stanie sam określić położenia określonych plików. Uwaga! Jeśli chcesz poprawnie zainstalować TrueCrypt, musisz mieć jądro 2.6.5 lub nowsze.

Następnie uruchamiamy:

./install.sh

Checking installation requirements...
Testing truecrypt... Done.

Install binaries to [/usr/bin]: wciskamy [Enter]
Install man page to [/usr/share/man]: wciskamy [Enter]
Install user guide and kernel module to [/usr/share/truecrypt]: [Enter]
Allow non-admin users to run TrueCrypt [y/N]:
jeżeli chcesz aby oprócz root'a
inni użytkownicy mogli także
korzystać z TrueCrypt wybierz y, jeśli nie N

Installing kernel module... Done.
Installing truecrypt to /usr/bin... Done.
Installing man page to /usr/share/man/man1... Done.
Installing user guide to /usr/share/truecrypt/doc... Done.
installing backup kernel module to /usr/share/truecrypt/kernel... Done.

Jeżeli wszystko przebiegło tak jak powyżej, możesz przejść dalej.
Generujemy klucz

Aby wygenerować klucz, wydajemy komendę:

truecrypt --keyfile-create key.txt możesz wybrać
inną nazwę klucza, rozszerzenie jest także dowolne

Is your mouse connected directly to computer where TrueCrypt is running?:
wpisz "Y", zostaniesz poproszony
o poruszanie myszką :)

Jeżeli wszystko poszło ok, dostaniesz komunikat: Keyfile created.
Tworzenie wirtualnego wolumenu

Aby utworzyć nowy wolumen, musimy zastanowić się nad jego nazwą oraz nad jego typem. Do wyboru mamy dwa typy: normalny(normal) i ukryty(hidden). Typ ukryty różni się od normalnego tym, że jest po prostu ukryty (także dane są rozmieszczane w inny sposób — więcej informacji znajdziesz na stronie TrueCrypt).

W konsoli wpisujemy:

truecrypt -c domowy.txt - tworzymy wolumen o nazwie domowy.txt,
uwaga rozszerzenie jakie wybierzesz jest zupełnie dowolne,
ja wybrałem *.txt, ponieważ dla napastnika trudniej
będzie odgadnąć, że ten plik to wolumen

Volume type:
1) Normal
2) Hidden
Select [1]: wybieramy jedynkę

Filesystem:
1) FAT
2) None
Select [1]: wybieramy dwójkę, ponieważ stworzymy
inny system plików na wolumenie
niż FAT, domyślnie FAT

Enter volume size (bytes - size/sizeK/sizeM/sizeG): 10M -
wybieramy wielkość
wolumenu, ja wpisałem 10 Mega

Hash algorithm:
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: wybieramy hash, ja polecam SHA-1,
domyślnie RIPEMD-160

Encryption algorithm:
1 ) AES
2 ) Blowfish
3 ) CAST5
4 ) Serpent
5 ) Triple DES
6 ) Twofish
7 ) AES-Twofish
8 ) AES-Twofish-Serpent
9 ) Serpent-AES
10 ) Serpent-Twofish-AES
11 ) Twofish-Serpent
Select [1]: wybieramy algorytm, domyślnie wybrany AES

Enter password for new volume 'domowy.txt':
wciskamy [Enter] jeżeli chcemy
aby hasła nie było
Re-enter password: ponownie wciskamy tylko [Enter]

Enter keyfile path [none]: tutaj wpisujemy ścieżkę do klucza,
jeżeli klucza nie mamy, zostawiamy puste
Enter keyfile path [finish]: zostajemy ponownie zapytani o ścieżkę
do klucza, w przypadku kiedy mamy kilka kluczy
podajemy następną ścieżkę, jeżeli wpisaliśmy
już wszystkie klucze, zostawiamy puste i [Enter]

TrueCrypt will now collect random data.

Is your mouse connected directly to computer where TrueCrypt is running?:
wciskamy "Y" jeżeli mamy podłączoną
myszkę do komputera, na potrzebny artykułu wpisz
"n" tak dla ciekawości, żeby
zobaczyć co się stanie

Please type at least 320 randomly chosen characters and then press Enter:

zostajemy poproszeni o wpisanie przynajmniej
320 przypadkowych znaków, jeżeli wpiszemy ich za
mało, program poinformuje nas ile
znaków jeszcze zostało do wpisania

Teraz zacznie się tworzenie wolumenu, czas trwania zależy od Twojego procesora i wielkości wolumenu jaką wpisałeś. Po zakończeniu otrzymasz komunikat: Volume created. W katalogu administratora powinien znajdować się plik “domowy.txt”. Możesz go otworzyć w edytorze tekstu, gratuluję jeżeli uda Ci się coś z niego odczytać.
Mapowanie wolumenu i tworzenie odpowiedniego systemu plików

Ponieważ w trakcie tworzenia wolumenu nie wybraliśmy jego dokładnego systemu plików, musimy teraz utworzyć system plików na wolumenie, ponieważ TrueCrypt do montowania używa linuksowego narzędzia mount, które wymaga podania typu plików.

Wpisujemy:

truecrypt /root/domowy.txt -k /root/key.txt
Enter password for '/root/domowy.txt':
jeżeli wcześniej nie podaliśmy
hasła do wolumenu to wciskamy tylko[Enter]

Ok. Aby sprawdzić czy mapowanie się udało wpisz: truecrypt -vl wyświetli informację o zmapowanych urządzeniach. Jeżeli nie wyświetli się żadna informacja, to znaczy, że coś poszło nie tak.

Teraz tworzymy system plików: mkfs.ext3 /dev/mapper/truecrypt0 — możesz wybrać dowolny system plików
System plików został stworzony.
Montowanie utworzonych wolumenów

Teraz, gdy już mamy utworzony system plików na wolumenie i jest on zmapowany, możemy go podmontować pod wybrany przez nas katalog.

W tym celu wykonujemy polecenia:

truecrypt -d /dev/mapper/truecrypt0
odmapowuje wolumen
mkdir szyfrowane -
tworzymy katalog szyfrowane, to właśnie pod niego będziemy podmontowywać
truecrypt /root/domowy.txt -k /root/key.txt /root/szyfrowane
podmontowuje wolumen pod szyfrowane katalogi

Gotowe! Od tej pory wszystkie dane zapisywane w katalogu “szyfrowane” będą szyfrowane.

A co zrobić kiedy chciałbyś zaszyfrować istniejący już katalog? Metoda ta jest trochę “łopatologiczna”. Po prostu przenieś chwilowo zawartość katalogu, który chcesz zaszyfrować, w inne miejsce, następnie podmontuj wolumen pod ten katalog i przywróć zawartość katalogu(skopiuj jego zawartość z powrotem). Pamiętaj, abyś w takiej sytuacji nadał odpowiedni rozmiar wirtualnemu wolumenowi, w przeciwnym przypadku nie pomieści on wszystkich danych. Rozmiar wolumenu powinien być nieco większy od rozmiaru katalogu.
Automatyczne montowanie po restarcie

Jak już pewnie się domyśliłeś, po restarcie komputera musisz ponownie zamontować wirtualny wolumen. Przyznam się, że jest prosty sposób, aby to zrobić. Przeglądając forum na stronie domowej projektu TrueCrypt natknąłem się na dwa sposoby:

* umieszczamy wpis w /etc/init.d lub w /etc/rc.d,
* tworzymy w katalogu domowym użytkownika plik .profile i odpowiednio go edytujemy.

My zajmiemy się sposobem drugim. Dlaczego? Przyczyna jest prosta. Załóżmy, że zabezpieczyłeś wirtualny wolumen nie tylko kluczem, ale i hasłem albo tylko hasłem. W takim wypadku wywołując program przez skrypty startowe zawarte w folderze init.d czy rc.d musiałbyś wywołać program z parametrem -p i podać hasło, co nie jest najmądrzejszym rozwiązaniem. W takiej sytuacji niepowołany użytkownik mógłby je przypadkowo odczytać.

Być może w Twoim katalogu domowym istnieje już plik .profile, jeśli nie:

touch .profile - tworzy pusty plik .profile

I dodaj do niego linijkę: truecrypt /root/domowy.txt -k /root/key.txt /root/szyfrowane
Zapisz zmiany i wyjdź z edytora. Teraz za każdym razem kiedy się zalogujesz truecrypt zapyta Cię o hasło (którego nie masz, ponieważ w tym przykładzie jesteśmy identyfikowani za pomocą klucza, więc wciskasz tylko [Enter]) i wirtualny wolumen zostaje zamontowany.
Czy mogę przechowywać klucz na pendrivie?

Tak, taka opcja jest możliwa i uwierz mi, nie jest to trudne. Pierwszą rzeczą jaką będziemy musieli wykonać jest automatyczne montowanie pendriva podczas startu systemu.Aby tego dokonać musimy edytować plik /etc/fstab. W tym celu w katalogu /mnt tworzymy katalog pendrive:

mkdir /mnt/pendrive

Musisz zorientować się pod jaką partycją masz pendrive. Włóż pendrive w USB i wykonaj polecenie dmesg > wynik.txt. Na końcu tego pliku powinieneś zobaczyć linijkę podobną to tej:


usb 1-1: configuration #1 chosen from 1 choice
uba: uba1

Jak widzisz, u mnie pendrive ukrywa się pod partycją /dev/uba1. U Ciebie może to być /dev/sda*.
Teraz należy zmodyfikować plik /etc/fstab. Dodajemy w nim linijkę:

/dev/uba1 /mnt/pendrive auto defaults 0 0

Wpisz: mount /mnt/pendrive.

Następnie przenosimy klucz na pendrive i edytujemy plik .profile zmieniając ścieżkę do klucza na /mnt/pendrive. Gotowe!
Teraz system sam montuje wirtualny wolumin po restarcie. Jakie są wady automatycznego montowania? Załóżmy, że masz młodsze (ciekawskie) rodzeństwo i nie chcesz, aby miało dostęp do niektórych części twojego systemu (bez względu czy pracujesz na Windowsie czy Linuksie). Jeżeli używasz autoryzacji tylko za pomocą klucza, a klucz masz zapisany gdzieś na dysku, po włączeniu komputera dane są już odszyfrowane. “Ale przecież ja przechowuję mój klucz na pendrivie”. A co będzie jeśli zapomnisz wyciągnąć pendriva po pracy?
Podsumowanie

W przyszłości projektanci TrueCrypt planują poszerzyć jego możliwości:

* zbudowanie wersji dla Mac OS,
* dodanie zewnętrznego modułu autoryzacji (będzie możliwość odszyfrowywania danych przez Internet),
* zbudowanie oficjalnego GUI (Graphical User Interface) dla TrueCrypt,
* i wiele więcej…

A czy istnieją jakieś nieoficjalne graficzne nakładki na TrueCrypt? Owszem, istnieją. Polecam zapoznanie się ze stroną http://code.google.com/p/truecryptgui/wiki/CurrentStatus. W celu zaczerpnięcia większej wiedzy zapraszam również na forum TrueCrypt.

czwartek, 31 marca 2011

Block squid Streaming

Step By Step Configuration Squid To block Streaming media Online

Config File squid configuration in /etc/squid/squid.conf

Edit File in squid.conf above line in ACL Zone.
################## ACL for Radio / Video Stream ###########################
acl StreamingRequest1 req_mime_type -i ^video/x-ms-asf$
acl StreamingRequest2 req_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl StreamingRequest3 req_mime_type -i ^application/x-mms-framed$
acl StreamingRequest4 req_mime_type -i ^audio/x-pn-realaudio$
acl StreamingReply1 rep_mime_type -i ^video/x-ms-asf$
acl StreamingReply2 rep_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl StreamingReply3 rep_mime_type -i ^application/x-mms-framed$
acl StreamingReply4 rep_mime_type -i ^audio/x-pn-realaudio$
################## ACL for Radio / Video Stream ###########################

Edit File in squid.conf above line in http_access Zone.
#################### Rules to block Radio / Video Stream #################
http_access deny StreamingRequest1 all
http_access deny StreamingRequest2 all
http_access deny StreamingRequest3 all
http_access deny StreamingRequest4 all

http_reply_access deny StreamingReply1 all
http_reply_access deny StreamingReply2 all
http_reply_access deny StreamingReply3 all
http_reply_access deny StreamingReply4 all
#################### Rules to block Radio / Video Stream #################