poniedziałek, 10 czerwca 2013

Konfiguracja Nginx z php-fpm na CentOS


    Kontynuując temat z poprzedniego wpisu, tym razem podobna konfiguracja ale oparta o serwer Nginx - konfiguracje php-fpm+apc+memcached zostawiamy bez zmian.

niedziela, 9 czerwca 2013

Konfiguracja Apache z php-fpm na CentOS


    Zapewne większość osób siedząca choć trochę w IT miała styk z PHP - ma sporo zarówno zalet jak i wad. By "dobrze" pisać w PHP trzeba mieć już trochę doświadczenia, z czego wiele osób nie zdaje sobie sprawy. Na pewno jest to coś, co każdy początkujący webmaster przerabiał instalując serwer Apache wraz z mod_php. Taka konfiguracja jest ekstremalnie prosta, oraz oczywiście niewydajna przy zastosowaniach bardziej poważnych. Czemu tak jest, to temat na inną okazje.

sobota, 1 czerwca 2013

Debugowanie serwera NFS


    Czy pamiętacie pierwsze wersje NFS-a? Miały sporo błędów, z których najgorszy był taki który w losowym momencie potrafił zawiesić jądro. Wyrobiło to złą opinie o NFS, ale na szczęście te czasy odeszły już do lamusa.

    Inny problem przy współdzielonym systemie plików (pomiędzy wiele maszyn) jest taki, że serwer NFS loguje bardzo mało informacji. Nie dowiemy się z niego która maszyna jakie operacje wykonywała.

Poziom logowania zwiększamy np takimi poleceniami:

# echo $(( 0x10 | 0x0400 )) > /proc/sys/sunrpc/nfsd_debug
# echo $(( 0x0008 | 0x0100 )) > /proc/sys/sunrpc/rpc_debug

Wyłączamy:

# echo 0 > /proc/sys/sunrpc/nfsd_debug
# echo 0 > /proc/sys/sunrpc/rpc_debug

Po włączeniu logowania jądro zapisuje komplet informacji (zazwyczaj do /var/log/messages), czyli wszystkie wywołania systemowe (wykonywane poprzez RPC) oraz adresy ip klientów.

Przy takim poziomie logowania, log może oczywiście bardzo szybko przyrastać obciążając dodatkowo maszynę pod względem operacji I/O ;)

niedziela, 26 maja 2013

MikroTik Network Sniffing

    Snifowaliście kiedyś połączenia w sieci gdzie role bramki pełni MikroTik? Mi się ostatnio zdarzyło, więc kilka informacji ku pamięci ;]

Sposobów jest kilka, jednak najlepszy i najbardziej godny polecenia jest tylko jeden. W skrócie, chodzi o to, że ruter wysyła pod wskazany adres ip (port 37008) wybrane pakiety, osadzając je w protokole TZSP (TaZmen Sniffer Protocol). Konfiguracja na MikroTik-u wygląda tak:

> tool sniffer set streaming-server=10.1.1.5 streaming-enabled=yes filter-address1=8.8.8.8/32:21-22 filter-address2=10.0.0.0/8:0-65535 interface=all
> tool sniffer start

Czyli chcemy by podsłuchane pakiety były wysyłane do hosta 10.1.1.5 i dodatkowo, interesuje nas ruch wychodzący z podsieci 10.0.0.0/8 do hosta 8.8.8.8 na porty od 21 do 22.

Drobny problem polega na tym, że tcpdump nie obsługuje protokołu TZSP a nie zawsze mamy możliwość odpalenia np Wireshark-a (czyli czegoś okienkowego) w danej podsieci (np. jesteśmy podłączeni via vpn i nie ma możliwości nawiązania do naszej maszyny bezpośrednio połączenia). Mimo wszytko możemy użyć tutaj tcpdump-a by zapisać złapane pakiety do pliku, np:

# tcpdump -i eth0 -U -w /root/packet-dump.pcap 'udp and port 37008'

Następnie kopiujemy plik i otwieramy go w Wireshark-u, który bez problemu czyta protokół TZSP.