Tuesday, January 31, 2012

Nagrania z linux.conf.au (LCA) 2012

Oto najciekawsze nagrania (moim zdaniem), które udostępniono na kanale YouTube.

Raport z prac nad jądrem w poprzednim roku 2011.



Prezentacja możliwości systemu plików btrfs.

Wednesday, January 25, 2012

Anonymous wzywają polskich członków do zaprzestania ataków DDoS

Od kilku dni w internecie, TV i radiu mówi się głównie tylko o akcie zwanym ACTA. Dużo się zadziało podczas aktywności polskich internautów przeciwko podpisania tego aktu. Po tym jak na stronie premiera został umieszczony apel Pani Barbary o wprowadzeniu stanu wojennego na terenie całego Internetu anonimowi wzywają polskich hakerów do zaprzestania ataków na strony polskiego rządu.



To nie codzienne wydarzenie, gdy sami anonimowi wzywają do zaprzestania ataków na serwery. Oto ich apel:

"Ataki na strony polskich władz MUSZĄ zostać zaprzestane
--------------------------------------------------------

Mówiliśmy to już wcześniej i powiemy jeszcze raz. Ataki na strony zarówno Polskiego rządu jak i Unii Europejskiej nie pomagają w walce z ACTA. Jesteśmy w stałym kontakcie z polskimi organizacjami pozarządowymi które poinformowały nas o tym, że ataki niszczą ponad trzy lata ich trudnej współpracy z rządem w tworzeniu prawodawstwa odpowiednio odnoszącego się do internetu i chroniącego podstawowe wolności internautów oraz możliwości negocjacji wstrzymania podpisu Polski pod ACTA. Jeśli potrzebujecie kolejnych dowodów przeczytajcie słowa wygłoszone przez Polskiego premiera Donalda Tuska:

  - Nie ustąpimy w żadnym wypadku wobec szantażu - oświadczył premier, odnosząc się do ataków na niektóre strony internetowe administracji państwowej. Szef rządu zapewnił, że jak na razie nie możemy mówić o zagrożeniach dla funkcjonowania państwa. - Nie wyobrażam sobie, aby polski rząd, polski parlament, polski premier ustępował przed kimś, kto mówi: "nie podpisuj, bo inaczej opublikujemy kompromitujące dane o twoich urzędnikach". Tego typu metody uważam za niedopuszczalne - powiedział Tusk.

Poinformował, że sprawdzane są zabezpieczenia stron, które zostały lub mogą zostać zaatakowane. Dodał, że jak na razie nie możemy powiedzieć o zagrożeniu dla funkcjonowania państwa ze względu na ataki na strony internetowe. Według niego są one raczej dokuczliwe i skuteczne propagandowo. - Nie ma żadnego powodu, żeby wzniecać alarm - uspokajał premier.

http://wiadomosci.gazeta.pl/wiadomosci/1,114884,11024567,Tusk__Dalem_upowaznienia_ambasador__by_podpisala_ACTA.html

Ataki DDOS zwróciły uwagę świata na toczącą się sprawę podpisania ACTA przez Polskę. Teraz tydiące Polaków wyszły na ulicę po to by manifestować swój przeciw. Nadszedł czas by pozwolić działać procesom politycznym i społecznym skierowanym przeciwko ACTA. Wszelkie ataki na strony polskiego rządu jak i Unii Europejskiej powinny zostać wstrzymane. Strony te służą przecież komunikacji krajowych i unijnych władz ze społeczeństwem. Jeśli lubisz DDOSować dla samego DDOSowania prosimy wybierz zamiast tego stronę swojej szkoły/uczelni.

Anonymous"

http://pastebin.com/1mDAceCF

Monday, January 9, 2012

Samba - monitorowanie dostępu do plików

Gdy udostępniasz ważne dane przez dysk/udział sieciowy przydatnym może okazać się monitorowanie operacji wykonywanych na nich. Mówiąc krótko, chodzi o wyjaśnienie rzekomych okoliczności, w których pliki "zniknęły". Oczywiście odzyskasz je z kopii ale niesmak niewyjaśnionych okoliczność pozostanie. Dlatego zdecydowałem się na logowanie dostępu do zasobów sieciowych Samby.
Do tego celu należy użyć modułu vfs_full_audit. Przedstawię przykładową konfigurację, które loguje udane otwarcie, usunięcie oraz tworzenie katalogów. Operacji jest bardzo dużo, pełna lista dostępna w opisie modułu.
Wpis dla konkretnego udziału:
[...]
   ...

   vfs objects = full_audit recycle
   full_audit:prefix = %I|%m|%u
   full_audit:success = open unlink rmdir write rename
   full_audit:failure = none
   full_audit:facility = LOCAL7
   full_audit:priority = NOTICE

Moduł nie loguje operacji nie udanych, oczywiście można to zmienić. Dwie ostatnie opcji mówią z jakim priorytetem ma traktować serwer logów te wpisy. Działania na plikach zapisywane są w /var/log/syslog, przynajmniej w systemie Debian. Przykładowy wpis wygląda mniej więcej tak:
Jan  9 08:38:20 prv smbd[25400]: 192.168.1.2|admin-laptop|admin|open|ok|r|gdata/doc/plan0911/SP0911x13+.xlsx
Jan  9 08:38:20 prv smbd[25400]: 192.168.1.2|admin-laptop|admin|open|ok|w|gdata/doc/plan0911/SP0911x13+.xlsx
Jan  9 08:44:10 prv smbd[25400]: 192.168.1.2|admin-laptop|admin|unlink|ok|gdata/doc/plan0911/~$SP0911x13+.xlsx

Tu widzimy jakie operacje zostały wykonane na pliku, został otwarty i usunięto (unlink) plik tymczasowy, oczywiście został on wcześniej utworzony i to również zostało odnotowane. Z bardziej przydatnych operacji należałoby wymienić write (zapis), i rename (zmiana nazwy) na wypadek jakby zagubiony katalog po prostu uzyskał inną nazwę przez innego użytkownika.
W opcji full_audit:prefix wymieniłem jakie dane identyfikujące wykonawcę tych operacji chcę znać, pełną listę możliwych informacji można znaleźć w smb.conf (5) - sekcja "VARIABLE SUBSTITUTIONS"

Ponadto dla wpisu vfs objects oprócz wartości  full_audit wpisałem również recycle. Moduł recycle dodaje dodatkową funkcjonalność, dla każdego udziału, który go zawiera tworzy katalog .recycle i przenosi tam pliki usuwane. Dzięki temu możemy odzyskać pliki usunięte w ciągu tego samego dnia, których nie ma jeszcze w kopii przyrostowej.
Oczywiście należy pamiętać, że nie wszystkie udziały mogą być warte przechowywania usuniętych plików (kopie zapasowe również będą je zawierać i zajmować więcej miejsca) oraz logowania wszystkich zdarzeń. Mi na razie wystarczą te trze, czyli dostęp do pliku (otworzył, usuną) oraz tworzenie katalogów.

Wednesday, December 28, 2011

Podsumowanie roku przez Google

Już coroczny przegląd statystyk wyszukiwania i tego co się wydarzyło w mijającym roku 2011.


Więcej na www.googlezeitgeist.com

Jest też podsumowanie tego co oglądano najczęściej na YouTube.


Lista najczęściej oglądanych dostępna na:

Monday, December 26, 2011

Konfiguracja maszyny wirtualnej na KVM

KVM jest coraz atrakcyjniejszym rozwiązaniem oferującym wirtualizację, do tego jest standardowo w jadrze systemu Linux, więc nic nie musimy dodatkowo instalować.

Do pełnej wirtualizacji lepiej nadają się systemy uniksowe, jeżeli chcesz wirtualizować systemy z rodziny Windows niezbędne będzie użycie sterowników parawirtualizowanych dla systemu Wondows jako gościa.

Dlatego KVM świetnie nadaje się do wyrtualizacji serwerów Linux. Jeżeli chcesz postawić serwer WWW w bezpiecznym środowisku, czy zbudować wirtualną sieć z serwerami Linux, KVM jest świetnym rozwiązaniem.

W końcu, co najważniejsze, to zanosi się na to, że KVM ma szansę stać się w najbliższej przyszłości numerem 1 wśród rozwiązań wirtualizacyjnych dla platformy Linux. Więcej informacji na ten temat można znaleźć na stronie Open Virtualization Alliance oraz na stronie projektu www.linux-kvm.org.

Przedstawię w jaki sposób używać KVM. Ponieważ używam dystrybucji Debian, będzie to sposób konfiguracji charakterystyczny dla tego systemu, tzw. "Denian's way". Co prawda określenie to odnosi się głównie do konfiguracji sieci, ale może również kojarzyć się z nieużywaniem specjalnych narzędzi tworzonych przez Red Hat, takich jak Virsh.

Pierwsze co musimy przygotować to wirtualne karty sieciowe dla naszych gości. Do tego trzeba zbudować most, tworzący wirtualny przełącznik, którego co najmniej jeden port będzie rzeczywistym interfejsem sieciowym. Dzięki niemu będziemy przekazywać połączenia między siecią wirtualną a rzeczywistą. Oczywiście sposobów konfiguracji może być wiele, my zakładamy, że host gości będzie miał połączenie z internetem.

Do stworzenia mostu musimy mieć zainstalowaną paczkę bridge-utils, chyba że w naszym systemie dostępne jest już polecenie brctl. Sam most będziemy tworzyć poprzez modyfikację pliku /etc/network/interfaces, a nie brctl.
Natomiast do stworzenia wirtualnych interfejsów, które mamy zamiar później dołączyć do mostu
być może potrzebna jeszcze będzie paczkę vtun, jeżeli jeszcze jej nie mamy. Po instalacji tej paczki należy ręcznie zamontować jej moduł: modprobe tun. W przyszłości system podczas startu załaduje go sam. Do zarządzania tymi interfejsami będzie nam jeszcze potrzebne narzędzie tunctl, które zawiera paczka uml-utilities.

Teraz możemy już przystąpić do konfiguracji interfejsów, więc odpalamy w vim'e plik /etc/network/interfaces i z przykładowej konfiguracji:
auto lo 
iface lo inet loopback 
allow-hotplug eth0 
iface eth0 inet dhcp 
auto eth0
tworzymy coś takiego:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). 
# The loopback network interface
auto lo
iface lo inet loopback 
# The primary network interface
allow-hotplug eth0 
iface eth0 inet manual 
# RouterOS
iface tap0 inet manual
pre-up tunctl -b -u grzesiek
pre-up ifconfig tap0 up
post-down tunctl -d tap0 
# Fedora 16
iface tap1 inet manual
pre-up tunctl -u grzesiek -t tap1
pre-up ifconfig tap1 up
post-down tunctl -d tap1 
# CentOS 6
iface tap2 inet manual
pre-up tunctl -u grzesiek -t tap2
pre-up ifconfig tap2 up
post-down tunctl -d tap2 
# CentOS 6 x86_64
iface tap3 inet manual
pre-up tunctl -u grzesiek -t tap3
pre-up ifconfig tap3 up
post-down tunctl -d tap3 
iface br0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 172.16.16.101
broadcast 10.0.0.255
network 10.0.0.0
bridge_ports eth0 tap0 tap1 tap2 tap3
bridge_maxwait 0
bridge_stp off
bridge_fd 0 
auto eth0
auto tap0
auto tap1
auto tap2
auto tap3
auto br0
To moja przykładowa konfiguracja na laptopie. Zmieniamy konfigurację eth0 na manual, natomiast całą konfiguracje wpisujemy dla br0, naszego nowego mostu. Jak widzimy do tego mostu należą eth0, tap0, tap1, tap2, tap3. Każdy interfejs tapX jest oddzielny dla każdego hosta, w ich konfiguracji należy zmienić nazwę użytkownika, z jakim prawami jest tworzony nowy interfejs. W moim przypadku jest to "grzesiek".

Teraz należy zresetować sieć skryptem /etc/init.d/networking i sprawdzić czy istnieją wszystkie interfejsy tap (polecenie ifconfig) oraz czy poprawnie został stworzony most i dodane do niego interfejsy. Dla konfiguracji, którą przedstawiłem wynik polecenia brctl show powinien być następujący:


bridge name bridge id STP enabled interfaces
br0 8000.72a5b61e39bf no eth0
tap0
tap1
tap2
tap3

Teraz możemy sobie wybrać jakąś lokalizacje na przechowywanie obrazów i stworzyć obraz przykładowym poleceniem: qemu-img create -f raw routeros.raw 800M.
To polecenie stworzy obraz dysku o nazwie routeros.raw i rozmiarze 800 MB.
Następnie dla wygody tworzymy skrypt, który skonfiguruję zaporę dla wirtualnych hostów, aby przekazywać im połączenie internetowe:
#!/bin/sh
iptables -t nat -A POSTROUTING  -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING  -s 10.0.0.0/24 -d 0/0 -j MASQUERADE
Nie zapomnij włączyć przekazywania pakietów, odkomentuj linię net.ipv4.ip_forward=1 w pliku /etc/sysctl.conf i wydaj polecenie sysctl -p. Reguły te przekazują połączenie przez interfejs bezprzewodowy do sieci wirtualnej. Możemy dla wygody zapisać ten skrypt pod nazwą network.sh w katalogu, w którym będziemy przechowywać obrazy wirtualnych hostów i uruchamiać przed korzystaniem z nich. Oczywiście można dodać go do /etc/rc.local aby system robił to automatycznie.
Kolejnym krokiem jest stworzenie skryptu dla każdego hosta, tu przykładowy dla RouterOS:
#!/bin/sh
# -boot d z cdrom
kvm -hda /virt/routeros.raw -cdrom /virt/iso/mikrotik-5.8.iso -boot c -m 256 -net nic,macaddr=DE:AD:BE:EF:24:13 -net tap,ifname=tap0 -enable-kvm -smp 1 -daemonize & #-nographic 
Skrypt zapisujemy pod nazwą routeros.sh i za jego pomocą uruchamiamy wirtualny host. Watro wyjaśnić znaczenie poszczególnych opcji:
-hda - wskazuje na dysk host
-cdrom - wskazuje na obraz płyty w wirtualnym napędzie
-boot - decyduje o kolejności botowania, c oznacz dysk z opcji -hda, z oznacz obraz z -cdrom
-m - ilość pamięci przeznaczonej dla hosta
-net nic,macaddr - definiuje adres MAC interfejsu hosta
-net tap,ifname - wskazuje wirtualny interfejs przeznaczony dla danego hosta
-smp - ilość rdzeni przeznaczony dla hosta
-daemonize - uruchamia hosta w trybie demona, nie wyświetla jego terminalu w bieżącym, dzięki temu host może pracować jako serwer i nie blokować terinala
-nographic - nakazuje nie wyświetlać okna z monitorem hosta
Jeżeli pierwszy raz uruchamiamy hosta z pustym dyskiem i chcemy zainstalować system z obrazu to opcję -boot ustawiamy na d, po instalacji na c. gdy już skonfigurujemy ustawiania sieci w hoście i uzyskamy dostęp zdalny możemy użyć opcji -nographic, aby nie wyświetlał się zbędny ekran serwera.
Gdyby maszyna wirtualna się nie uruchomiła należy sprawdzić, czy mamy załadowane moduły kvm oraz dla procesorów Intel kvm_intel, a dla AMD kvm_amd. Oczywiście jeżeli procesor wspiera wirtualizację wszystko powinno działać bez zarzutu.

Wednesday, November 2, 2011

Dzień z życia (Life in a Day)

W 2010 roku na portalu YouTube ruszył projekt, którego celem było nakręcenie filmu dokumentalnego o jednym dniu życia na ziemi. Dniem tym był 24 lipiec 2010 r. - tysiące użytkowników youtube.com z całego świata mogło nagrać swój dzień (dokładnie 24 lipca) i przesłać go do projektu Life in a Day.

Z 4500 godzin przesłanych nagrań powstał 90-minutowy film dokumentalny. To pierwszy film tego typu, od 31 października 2011 r. dostępny jest już na YouTube.

O filmie: http://www.filmweb.pl/film/Dzie%C5%84+z+%C5%BCycia-2011-593899

Pełen film dostępny pod adresem http://youtu.be/JaFVr_cJJIY



Tuesday, November 1, 2011

Obsługa HTTP Pipelining w Chrome 17

Pipelining to technologia przyśpieszająca działanie protokołu HTTP, została wprowadzona wraz z wersją HTTP/1.1. Pozwala na niesekwencyjne wysyłanie zapytań do serwera w ramach jednej sesji TCP. Dla odróżnienia Keep-Alive daje już duże przyśpieszenie, a pozwala na sekwencyjne wysyłanie zapytań w ramach jednej sesji. Apache wspiera obie metody. Z kolei Firefox wspiera, ale domyślnie jest to wyłączone. Opera jest obecnie jedyną przeglądarką, która to wspiera domyślnie.

Teraz Chrome będzie wspierać tą funkcję. Aby lepiej zrozumieć jej znaczenie polecam zapoznać się z stroną: http://www.igvita.com/2011/10/04/optimizing-http-keep-alive-and-pipelining/

Najzabawniejsze jest to, że technika Pipelining istnieje od 1999 w RFC 2616.

http://code.google.com/p/chromium/issues/detail?id=8991