<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;D0YERXo_fSp7ImA9WxFaGE0.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926</id><updated>2010-07-22T15:25:04.445+02:00</updated><title>Adam Michał Ziaja - techblog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://az.linux.pl/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://az.linux.pl/" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/adamziaja" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="adamziaja" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0QBQXY4eyp7ImA9WxFSGU4.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-5550894028533604208</id><published>2010-04-22T14:25:00.003+02:00</published><updated>2010-04-22T14:29:10.833+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-22T14:29:10.833+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><title>Usuwanie KDE, GNOME itd.</title><content type="html">Aby usunąć KDE, pod Debianem wydajemy polecenie &lt;blockquote&gt;apt-get remove `aptitude search ~skde | egrep "^i" | awk '{ if($2 ~/A/){ print $3} else print $2}'`&lt;/blockquote&gt; analogicznie żeby usunąć GNOME &lt;blockquote&gt;apt-get remove `aptitude search ~sgnome | egrep "^i" | awk '{ if($2 ~/A/){ print $3} else print $2}'`&lt;/blockquote&gt; aby po prostu wyświetlić pakiety z KDE wpisujemy &lt;blockquote&gt;aptitude search ~skde | egrep "^i" | awk '{ if($2 ~/A/){ print $3} else print $2}'&lt;/blockquote&gt; prosto miło i przyjemnie :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-5550894028533604208?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2010/04/usuwanie-kde-gnome.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/5550894028533604208?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/5550894028533604208?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2010/04/usuwanie-kde-gnome.html" title="Usuwanie KDE, GNOME itd." /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CU4FQ306fyp7ImA9WxBaEUQ.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-7817354714038894985</id><published>2010-03-21T18:23:00.003+01:00</published><updated>2010-03-21T18:51:52.317+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-21T18:51:52.317+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Wardriving" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="WiFi" /><title>Konfiguracja GPS Navibe GM720 do pracy z Kismet</title><content type="html">Navibe GM720 to stosunkowo tani GPS, kupiłem go na allegro.pl za około 100zł. Jego instalacja na stosunkowo nowym kernelu, w moim przypadku &lt;blockquote&gt;2.6.32-bpo.2-686&lt;/blockquote&gt; jest banalnie prosta, podłączamy GPS do dowolnego portu USB &lt;blockquote&gt;# lsusb&lt;br /&gt;Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port&lt;/blockquote&gt; następnie sprawdzamy czy moduł się załadował &lt;blockquote&gt;# lsmod | grep pl2303&lt;br /&gt;pl2303                 11572  1&lt;br /&gt;usbserial              21859  3 pl2303&lt;br /&gt;usbcore                98194  7 pl2303,usbserial,uvcvideo,btusb,ehci_hcd,uhci_hcd&lt;/blockquote&gt; jeśli nie &lt;blockquote&gt;insmod pl2303&lt;/blockquote&gt; następnie &lt;blockquote&gt;dpkg-reconfigure gpsd&lt;/blockquote&gt; i jako urządzenie podajemy &lt;blockquote&gt;/dev/ttyUSB0&lt;/blockquote&gt; restartujemy gpsd &lt;blockquote&gt;/etc/init.d/gpsd restart&lt;/blockquote&gt; sprawdzamy czy wszystko działa jak należy &lt;blockquote&gt;# telnet localhost 2947&lt;br /&gt;r&lt;/blockquote&gt; i powinny wyświetlić się logi z GPS, następnie edytujemy plik konfiguracyjny Kismet &lt;blockquote&gt;# nano /usr/local/etc/kismet.conf&lt;/blockquote&gt; i edytujemy część poświęconą GPS &lt;blockquote&gt;[...]&lt;br /&gt;# Do we have a GPS?&lt;br /&gt;gps=true&lt;br /&gt;# Do we use a locally serial attached GPS, or use a gpsd server?&lt;br /&gt;# (Pick only one)&lt;br /&gt;gpstype=gpsd&lt;br /&gt;# gpstype=serial&lt;br /&gt;# What serial device do we look for the GPS on?&lt;br /&gt;gpsdevice=/dev/ttyUSB0&lt;br /&gt;# Host:port that GPSD is running on. This can be localhost OR remote!&lt;br /&gt;gpshost=localhost:2947&lt;br /&gt;# Do we lock the mode? This overrides coordinates of lock "0", which will&lt;br /&gt;# generate some bad information until you get a GPS lock, but it will&lt;br /&gt;# fix problems with GPS units with broken NMEA that report lock 0&lt;br /&gt;gpsmodelock=false&lt;br /&gt;# Do we try to reconnect if we lose our link to the GPS, or do we just&lt;br /&gt;# let it die and be disabled?&lt;br /&gt;gpsreconnect=true&lt;br /&gt;[...]&lt;/blockquote&gt; i gotowe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-7817354714038894985?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2010/03/gps-navibe-gm720-kismet-linux.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/7817354714038894985?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/7817354714038894985?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2010/03/gps-navibe-gm720-kismet-linux.html" title="Konfiguracja GPS Navibe GM720 do pracy z Kismet" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0cGQXk_cCp7ImA9WxNbF08.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-116217807872742517</id><published>2009-11-17T21:43:00.006+01:00</published><updated>2009-11-20T13:43:40.748+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-20T13:43:40.748+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Wardriving" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="WiFi" /><title>Konfiguracja GPS po Bluetooth do pracy z Kismet</title><content type="html">Kismet to program komputerowy pozwalający na pasywne wykrywanie bezprzewodowych sieci lokalnych. Umożliwia sniffing i posiada pewne cechy systemu IDS dla sieci 802.11. Kismet działa z dowolnymi kartami WiFi jednak karta musi obsługiwać tryb monitora. Kismet pozwala na przechwytywanie ramek warstwy drugiej 802.11b, 802.11a oraz 802.11g.&lt;br /&gt;Jeśli posiadamy więc GPS z Bluetooth i chcielibyśmy go podłączyć do programu Kismet w celu logowania pozycji gdzie znaleziono dana sieć to musimy wykonać następujące czynności, na początek wyszukujemy urządzenia&lt;blockquote&gt;hcitool scan&lt;/blockquote&gt;wynik powinien być podobny do&lt;blockquote&gt;00:0B:0D:23:47:24       MAINNAV-GPS&lt;/blockquote&gt;w moim przypadku jest to GPS MAINNAV MG-950DL DataLogger, następnie edytujemy plik&lt;blockquote&gt;/etc/bluetooth/rfcomm.conf&lt;/blockquote&gt;i dopisujemy&lt;blockquote&gt;rfcomm0 {&lt;br /&gt;# Automatically bind the device at startup&lt;br /&gt;bind yes;&lt;br /&gt;&lt;br /&gt;# Bluetooth address of the device&lt;br /&gt;device 00:0B:0D:23:47:24;&lt;br /&gt;&lt;br /&gt;# RFCOMM channel for the connection&lt;br /&gt;channel 1;&lt;br /&gt;&lt;br /&gt;# Description of the connection&lt;br /&gt;comment "MAINNAV-GPS";&lt;br /&gt;}&lt;/blockquote&gt;gdzie&lt;blockquote&gt;00:0B:0D:23:47:24&lt;/blockquote&gt;to adres urządzenia uzyskany w wyniku wpisania pierwszej komendy, następnie powinniśmy wykonać reboot lub wydać komendę&lt;blockquote&gt;rfcomm bind rfcomm0&lt;/blockquote&gt;w kolejnym kroku wydajemy komendę&lt;blockquote&gt;dpkg-reconfigure gpsd&lt;/blockquote&gt;i jako urządzenie podajemy&lt;blockquote&gt;/dev/rfcomm0&lt;/blockquote&gt;restartujemy gpsd&lt;blockquote&gt;/etc/init.d/gpsd restart&lt;/blockquote&gt;sprawdzamy czy wszystko działa jak należy&lt;blockquote&gt;# telnet localhost 2947&lt;br /&gt;# r&lt;/blockquote&gt;powinien się wyświetlić log podobny do&lt;blockquote&gt;$GPRMC,000000,V,5015.2810,N,01751.2797,E,0.0000,0.000,000000,,*38&lt;br /&gt;$GPRMC,213558,V,5015.2810,N,01751.2797,E,0.0000,0.000,171109,,*3F&lt;br /&gt;$GPGSA,A,1,,,,,,,,,,,,,,,,*32&lt;br /&gt;$GPRMC,000000,V,5015.2810,N,01751.2797,E,0.0000,0.000,000000,,*38&lt;br /&gt;$GPRMC,213559,V,5015.2810,N,01751.2797,E,0.0000,0.000,171109,,*3E&lt;br /&gt;$GPGSA,A,1,,,,,,,,,,,,,,,,*32&lt;/blockquote&gt;jeśli tak się stało, oznacza to, że GPS działa już po Bluetooth, teraz mała uwaga, wysoce zalecam instalacje najnowszej wersji Kismeta, aktualnie jest to Kismet-2009-06-R1, ponieważ znacznie różni się od poprzednich wersji, łącznie z plikiem konfiguracyjnym&lt;blockquote&gt;/usr/local/etc/kismet.conf&lt;/blockquote&gt;który powinien tak wyglądać w części z GPS&lt;blockquote&gt;[...]&lt;br /&gt;# Do we have a GPS?&lt;br /&gt;gps=true&lt;br /&gt;# Do we use a locally serial attached GPS, or use a gpsd server?&lt;br /&gt;# (Pick only one)&lt;br /&gt;gpstype=gpsd&lt;br /&gt;# gpstype=serial&lt;br /&gt;# What serial device do we look for the GPS on?&lt;br /&gt;gpsdevice=/dev/rfcomm0&lt;br /&gt;# Host:port that GPSD is running on.  This can be localhost OR remote!&lt;br /&gt;gpshost=localhost:2947&lt;br /&gt;# Do we lock the mode?  This overrides coordinates of lock "0", which will&lt;br /&gt;# generate some bad information until you get a GPS lock, but it will&lt;br /&gt;# fix problems with GPS units with broken NMEA that report lock 0&lt;br /&gt;gpsmodelock=false&lt;br /&gt;# Do we try to reconnect if we lose our link to the GPS, or do we just&lt;br /&gt;# let it die and be disabled?&lt;br /&gt;gpsreconnect=true&lt;br /&gt;[...]&lt;/blockquote&gt;od najnowszej wersji Kismet ma również standardowo włączony GPS, we wcześniejszych wersjach trzeba edytować &lt;span style="font-style:italic;"&gt;kismet.conf&lt;/span&gt; i dostosować go do powyższego wycinku z pliku konfiguracyjnego.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-116217807872742517?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/11/gps-bluetooth-kismet.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/116217807872742517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/116217807872742517?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/11/gps-bluetooth-kismet.html" title="Konfiguracja GPS po Bluetooth do pracy z Kismet" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkQESXo6cCp7ImA9WxNbE0Q.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-6459542011158921546</id><published>2009-11-16T17:40:00.003+01:00</published><updated>2009-11-16T17:51:48.418+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-16T17:51:48.418+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Synchronizacja czasu</title><content type="html">Wraz z rozwojem Internetu zwiększa się ilość spraw i transakcji obsługiwanych drogą elektroniczną. Wymusza to konieczność uporządkowania zdarzeń i ich rejestrację zgodną z chronologią czasu. Elektroniczne systemy bilingowe, elektroniczna bankowość, obsługa giełd i sklepów to jedynie wybrane przykłady e-biznesu w których czas jest krytyczny dla prawidłowego funkcjonowania całych rozwiązań.&lt;br /&gt;Niestety współczesne zegary komputerowe nie należą do dobrych mierników czasu i dlatego ich synchronizację coraz częściej powierza się publicznym serwerom czasu dostępnym w Internecie.&lt;br /&gt;Automatyczna synchronizacja czasu pod Debianem jest bardzo prosta, na początek instalujemy pakiet ntpdate&lt;blockquote&gt;apt-get install ntpdate&lt;/blockquote&gt;następnie edytujemy plik konfiguracyjny&lt;blockquote&gt;nano /etc/default/ntpdate&lt;/blockquote&gt;i zamieniamy jego zawartość (aktualna wersja 1:4.2.4p6+dfsg-2, w przyszłości format pliku może ulec zmianie) na&lt;blockquote&gt;# The settings in this file are used by the program ntpdate-debian, but not&lt;br /&gt;# by the upstream program ntpdate.&lt;br /&gt;&lt;br /&gt;# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,&lt;br /&gt;# so you only have to keep it in one place.&lt;br /&gt;NTPDATE_USE_NTP_CONF=no&lt;br /&gt;&lt;br /&gt;# List of NTP servers to use  (Separate multiple servers with spaces.)&lt;br /&gt;# Not used if NTPDATE_USE_NTP_CONF is yes.&lt;br /&gt;NTPSERVERS="ntp1.tp.pl ns1.net.icm.edu.pl ntp.coi.pw.edu.pl ntp.us.edu.pl ntp.nask.pl"&lt;br /&gt;&lt;br /&gt;# Additional options to pass to ntpdate&lt;br /&gt;NTPOPTIONS=""&lt;/blockquote&gt;w dowolnym momencie możemy również synchronizować zegar ręcznie po przez wydanie komendy&lt;blockquote&gt;ntpdate ntp.icm.edu.pl&lt;/blockquote&gt;oczywiście możemy wybrać dowolne serwery czasu, ich lista znajduje się na oficjalnej stronie &lt;a href="http://support.ntp.org/bin/view/Servers/WebHome#Finding_A_Time_Server" target="blank"&gt;www.ntp.org&lt;/a&gt; żeby sprawdzić czy nasz system synchronizuje zegar automatycznie należy sprawdzić logi systemowe&lt;blockquote&gt;cat /var/log/syslog | grep ntpdate | tail -5&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-6459542011158921546?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/11/synchronizacja-czasu.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/6459542011158921546?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/6459542011158921546?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/11/synchronizacja-czasu.html" title="Synchronizacja czasu" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkcGRHs8fyp7ImA9WxNbEk0.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-5280255568770347047</id><published>2009-11-14T14:06:00.002+01:00</published><updated>2009-11-14T14:07:05.577+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-14T14:07:05.577+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Wardriving" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><category scheme="http://www.blogger.com/atom/ns#" term="WiFi" /><category scheme="http://www.blogger.com/atom/ns#" term="Cracking" /><title>Przygotowanie ZyDAS ZD1211 do pracy z aircrack-ng suite</title><content type="html">ZyDAS ZD1211 jest kartą WiFi, którą standardowo dostajemy przy zakupie Neostrady z routerem Livebox (Sagem F@st 3202) w Telekomunikacji Polskiej. Karta idealnie współpracuje z programami ze stajni aircrack-ng w tym obsługuje wstrzykiwanie pakietów (injection). Na początek instalujemy firmware&lt;blockquote&gt;wget http://kent.dl.sourceforge.net/sourceforge/zd1211/zd1211-firmware-1.4.tar.bz2&lt;br /&gt;tar jxvf zd1211-firmware-1.4.tar.bz2&lt;br /&gt;mv zd1211-firmware /lib/firmware/zd1211&lt;br /&gt;rm zd1211-firmware-1.4.tar.bz2&lt;/blockquote&gt;następnie&lt;blockquote&gt;wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2&lt;br /&gt;tar xfj compat-wireless-2.6.tar.bz2&lt;br /&gt;cd compat-wireless-*&lt;br /&gt;wget http://www.zlaten.biz/tmp/zd1211rw-inject+dbi-fix-2.6.26.patch&lt;br /&gt;wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch&lt;br /&gt;patch -Np0 -i zd1211rw-inject+dbi-fix-2.6.26.patch&lt;br /&gt;patch -Np1 -i mac80211.compat08082009.wl_frag+ack_v1.patch&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;make unload&lt;br /&gt;modprobe zd1211rw&lt;/blockquote&gt;przypadku wystąpienia błędu&lt;blockquote&gt;make: *** /lib/modules/2.6.30-2-686/build: No such file or directory.  Stop.&lt;/blockquote&gt;pod Debianem wpisujemy&lt;blockquote&gt;apt-get install linux-headers-$(uname -r)&lt;/blockquote&gt;na koniec pozostaje przetestowanie wstrzykiwania pakietów&lt;blockquote&gt;airmon-ng start wlan0&lt;br /&gt;aireplay-ng -9 mon0&lt;/blockquote&gt;jeśli wynikiem powyższych komend jest&lt;blockquote&gt;# aireplay-ng -9 mon0&lt;br /&gt;14:03:53  Trying broadcast probe requests...&lt;br /&gt;14:03:53  Injection is working!&lt;/blockquote&gt;to znaczy, że wszystko przebiegło poprawnie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-5280255568770347047?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/11/zydas-zd1211-aircrack-ng-suite.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/5280255568770347047?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/5280255568770347047?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/11/zydas-zd1211-aircrack-ng-suite.html" title="Przygotowanie ZyDAS ZD1211 do pracy z aircrack-ng suite" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYMQX84fCp7ImA9WxNbEk0.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-3848317216800958335</id><published>2009-11-12T14:09:00.004+01:00</published><updated>2009-11-14T13:53:00.134+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-14T13:53:00.134+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Kernel" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>Grsecurity</title><content type="html">&lt;a href="http://www.grsecurity.net" target="_blank"&gt;Grsecurity&lt;/a&gt; jest popularną łatą nakładaną na kod źródłowy jądra Linux, zwiększającą jego bezpieczeństwo, dzięki czemu możemy uniknąć wielu ataków zdalnych i lokalnych. Na wstępnie chciałbym zaznaczyć, że nie polecam instalowania grsec na desktopach, a jedynie serwerach, ponieważ wynika z tego powodu wiele problemów, m.in. z odpaleniem środowiska graficznego. Instalacja nie jest zbytnio skomplikowana, opiszę ją tradycyjnie na przykładzie dystrybucji Debian GNU/Linux oraz wersji kernel 2.6.31.5, w przypadku instalacji nowszej wersji potrzeba tylko zwrócić uwagę żeby zmienić numer wersji w komendach. Mała uwaga, przykładowy plik z patchem grsec ma nazwę&lt;blockquote&gt;grsecurity-2.1.14-2.4.37.7-200911101931.patch&lt;/blockquote&gt;oznacza to, że łatka jest w wersji 2.1.14 dla kernela 2.4.37.7 (wiec trzeba korzystać dokładnie z tych źródeł kernela) oraz data jej wydania. Na początek instalujemy wymagane pakiety&lt;blockquote&gt;apt-get update;apt-get install kernel-package libncurses5-dev build-essential&lt;/blockquote&gt;następnie ściągamy kernela oraz łatkę&lt;blockquote&gt;cd /usr/src&lt;br /&gt;wget http://grsecurity.net/test/grsecurity-2.1.14-2.6.31.5-200910312135.patch&lt;br /&gt;wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.5.tar.bz2&lt;/blockquote&gt;rozpakowujemy kernela oraz patchujemy go&lt;blockquote&gt;tar -xjf linux-2.6.31.5.tar.bz2&lt;br /&gt;patch -p0 &lt; grsecurity-2.1.14-2.6.31.5-200910312135.patch&lt;/blockquote&gt;następnie wybór polityki grsec&lt;blockquote&gt;cd linux-2.6.31.5&lt;br /&gt;make menuconfig&lt;/blockquote&gt;w menu wybieramy&lt;blockquote&gt;Security options &gt; Grsecurity &gt; Security Level &gt; High&lt;br /&gt;Security options &gt; Grsecurity &gt; Sysctl support &gt; Sysctl support &lt;br /&gt;Security options &gt; Grsecurity &gt; Sysctl support &gt; Turn on features by default&lt;/blockquote&gt;w tym wypadku wybraliśmy najwyższą politykę bezpieczeństwa grsec, ich dokładny opis można przeczytać pod &lt;a href="http://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options" target="_blank"&gt;tym adresem&lt;/a&gt;, następnie przechodzimy do kompilacji kernela&lt;blockquote&gt;make-kpkg clean&lt;br /&gt;make-kpkg --initrd kernel_image kernel_headers&lt;/blockquote&gt;po kompilacji instalujemy gotowe paczki&lt;blockquote&gt;cd /usr/src&lt;br /&gt;dpkg -i linux-headers-2.6.31.5.10112009-grsec_2.6.31.5.10112009-grsec-10.00.Custom_i386.deb&lt;br /&gt;dpkg -i linux-image-2.6.31.5.10112009-grsec_2.6.31.5.10112009-grsec-10.00.Custom_i386.deb&lt;/blockquote&gt;tworzymy plik initrd&lt;blockquote&gt;update-initramfs -k 2.6.31.5.10112009-grsec -c&lt;/blockquote&gt;na koniec trzeba jeszcze tylko edytować menu gruba&lt;blockquote&gt;/boot/grub/menu.lst&lt;/blockquote&gt;i upewnić się czy wszystko jest dobrze dopisane analogicznie do standardowego wpisu z pierwotnie zainstalowanym kernelem&lt;blockquote&gt;title           Debian GNU/Linux, kernel 2.6.31.5-grsec&lt;br /&gt;root            (hd0,0)&lt;br /&gt;kernel          /boot/vmlinuz-2.6.31.5-grsec root=/dev/sda1 ro&lt;br /&gt;initrd          /boot/initrd.img-2.6.31.5-grsec&lt;/blockquote&gt;prawdopodobnie będzie brakowało linijki&lt;blockquote&gt;initrd          /boot/initrd.img-2.6.31.5-grsec&lt;/blockquote&gt;która trzeba będzie dopisać ręcznie, następnie restartujemy system i przy starcie w menu gruba wybieramy nowy kernel :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-3848317216800958335?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/11/grsecurity.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/3848317216800958335?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/3848317216800958335?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/11/grsecurity.html" title="Grsecurity" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYHSHw4fyp7ImA9WxVaFU4.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-967600036349241831</id><published>2009-04-12T12:37:00.007+02:00</published><updated>2009-04-12T12:45:39.237+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-12T12:45:39.237+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>Ściąganie plików z wrzuta.pl</title><content type="html">Ostatnio serwis &lt;a href="http://www.wrzuta.pl" target="_blank"&gt;wrzuta.pl&lt;/a&gt; "zabezpieczył się" przed ściąganiem plików znanym już wszystkim sposobem. Przełamanie tych "zabezpieczeń" nie należy do najtrudniejszych rzeczy, wystarczy odpalić pierwszy lepszy &lt;a href="http://pl.wikipedia.org/wiki/Sniffer" target="_blank"&gt;sniffer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farm4.static.flickr.com/3357/3433508811_10d5864f80_o.jpg" target="_blank"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 500px; height: 215px;" src="http://farm4.static.flickr.com/3357/3433508811_da4f3ce845.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;powyższy przykład dla pliku "&lt;span style="font-style:italic;"&gt;Inna - Hot (Radio Edit).mp3&lt;/span&gt;", dostajemy 2 linki&lt;blockquote&gt;&lt;a href="http://djlora.wrzuta.pl/sr/f/3xvGQzK5dah"&gt;http://djlora.wrzuta.pl/sr/f/3xvGQzK5dah&lt;/a&gt;&lt;br /&gt;&lt;a href="http://c.wrzuta.pl/wa9735/31adfe7a00190817490b02c4/0/inna%20-%20hot%20%28radio%20edit%29.mp3"&gt;http://c.wrzuta.pl/wa9735/31adfe7a00190817490b02c4/0/inna%20-%20hot%20%28radio%20edit%29.mp3&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;jak widać cała filozofia sprowadza się do zamiany fragmentu linku&lt;blockquote&gt;/audio/&lt;/blockquote&gt;na&lt;blockquote&gt;/sr/f/&lt;/blockquote&gt;&lt;br /&gt;Powyższy sposób działa praktycznie na wszystkie serwisy tego typu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-967600036349241831?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/04/sciaganie-plikow-z-wrzutapl.html#comment-form" title="Komentarze (6)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/967600036349241831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/967600036349241831?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/04/sciaganie-plikow-z-wrzutapl.html" title="Ściąganie plików z wrzuta.pl" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>6</thr:total></entry><entry gd:etag="W/&quot;DUcBQn04fyp7ImA9WxVbFks.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-1030748232155939139</id><published>2009-04-02T10:03:00.005+02:00</published><updated>2009-04-02T12:10:53.337+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-02T12:10:53.337+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Budowanie paczek deb</title><content type="html">deb - format pakietu instalacyjnego używanego przez system operacyjny Debian GNU/Linux i jego pochodne np. Ubuntu. Pakiet deb (i jego instalator dpkg) posiada zaawansowaną kontrolę powiązań i zależności pomiędzy poszczególnymi składnikami systemu - programami i używanymi przez nie bibliotekami. Dzięki temu instalując nowy program ma się pewność, że nie będzie miał miejsca konflikt z innymi zainstalowanymi programami. W przeciwnym wypadku instalowany program mógłby przerwać funkcjonowanie z powodu braku poszczególnych składników, które są wymagane do prawidłowego działania.&lt;br /&gt;Po krótkim wstępie, przejdźmy do sedna sprawy, wbrew pozorom, budowa paczek deb nie należy do najłatwiejszych rzeczy, szczególnie jeśli budujemy paczki do oficjalnego repozytorium. Na początek musimy wybrać oczywiście jakiś program (bądź bibliotekę itp.) z którego chcemy zrobić paczkę w tym przykładzie omówię budowę paczki mpview, którą zbudowałem do oficjalnego repozytorium Debiana (i swoją drogą nie została dodana, przynajmniej do czasu, aż nie ukaże się nowa wersja programu, ponieważ sądzą, że projekt mpview umarł, jednak nikt nie raczył zdjąć flagę RFP - Request For Packing). Na początek oczywiście musimy pobrać program z którego będziemy robić paczkę, następnie tworzymy jakiś katalog, np. debian, przenosimy do niego archiwum ściągniętego programu. Ogólnie mówiąc w katalogu debian powinniśmy mieć teraz&lt;blockquote&gt;mpview-0.4.1/&lt;br /&gt;mpview-0.4.1.tar.gz&lt;/blockquote&gt;ależy tutaj zwrócić uwagę na format&lt;br /&gt;&lt;blockquote&gt;program-wersja/&lt;br /&gt;program-wersja.&lt;span style="font-weight:bold;"&gt;tar.gz&lt;/span&gt;&lt;/blockquote&gt;archiwum programu musi mieć rozszerzenie tar.gz, jeśli nie ma, to musimy przepakować, następnie wpisujemy&lt;blockquote&gt;export DEBFULLNAME="Imię Nazwisko"&lt;/blockquote&gt;i w katalogu&lt;blockquote&gt;mpview-0.4.1/&lt;/blockquote&gt;wydajemy polecenie&lt;blockquote&gt;dh_make -e &lt;span style="font-style:italic;"&gt;adres@e-mail&lt;/span&gt; -c &lt;span style="font-style:italic;"&gt;licencja&lt;/span&gt; -f ../archiwum.tar.gz&lt;/blockquote&gt;przy parametrze -c możemy wybrać gpl, lgpl, artistic, bsd, jeśli program nie jest pod żadną z tych licencji, opuszczamy parametr, po wydaniu powyższego polecenia w katalogu powinien pojawić się podkatalog o nazwie debian, jeśli budujemy nieskomplikowaną paczkę potrzebne będą nam tylko pliki&lt;blockquote&gt;&lt;a href="http://www.debian.org/doc/manuals/maint-guide/ch-dreq.pl.html#s-changelog" target="_blank"&gt;changelog&lt;/a&gt;&lt;br /&gt;compat&lt;br /&gt;&lt;a href="http://www.debian.org/doc/manuals/maint-guide/ch-dreq.pl.html#s-control" target="_blank"&gt;control&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.debian.org/doc/manuals/maint-guide/ch-dreq.pl.html#s-copyright" target="_blank"&gt;copyright&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.debian.org/doc/manuals/maint-guide/ch-dreq.pl.html#s-rules" target="_blank"&gt;rules&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.debian.org/doc/manuals/maint-guide/ch-dother.pl.html#s-watch" target="_blank"&gt;watch&lt;/a&gt;&lt;/blockquote&gt;do pliku compat wystarczy wpisać 7&lt;blockquote&gt;echo 7 &gt; compat&lt;/blockquote&gt;na początek zajmijmy się najważniejszym plikiem, którym jest control&lt;blockquote&gt;Source: mpview&lt;br /&gt;Section: graphics&lt;br /&gt;Priority: optional&lt;br /&gt;Maintainer: Adam Ziaja &amp;lt;adam{@}ziaja.name&amp;gt;&lt;br /&gt;Build-Depends: debhelper (&gt;= 7), autotools-dev, libbz2-1.0 (&gt;= 1.0.5-1~), libexpat1 (&gt;= 2.0.1-4), libfftw3-dev (&gt;= 3.1.2-3.1), libfontconfig1 (&gt;= 2.6.0-3), libfreetype6-dev (&gt;= 2.3.7-2), libgmp3c2 (&gt;= 2), libice6 (&gt;= 2), libjpeg62-dev (&gt;= 6b-14), libpng12-dev (&gt;= 1.2.27-2), libsm6 (&gt;= 2), libtiff4-dev (&gt;= 3.8.2-11), libx11-6 (&gt;= 2), libxau6 (&gt;= 1), libxcb1 (&gt;= 1.1-1.1), libxdmcp6 (&gt;= 1), libxext6 (&gt;= 2), libxt6 (&gt;= 1), zlib1g-dev (&gt;= 1), qt4-qmake, libqt4-dev&lt;br /&gt;Standards-Version: 3.8.1&lt;br /&gt;Homepage: http://mpview.sourceforge.net&lt;br /&gt;&lt;br /&gt;Package: mpview&lt;br /&gt;Architecture: any&lt;br /&gt;Depends: ${shlibs:Depends}, ${misc:Depends}&lt;br /&gt;Description: MP View is cross-platform image viewer with possibility of image manipulation&lt;br /&gt; MP View is cross-platform image viewer with possibility of image&lt;br /&gt; manipulation (crop, resize, running filters), based on CImg and Qt.&lt;/blockquote&gt;Być może zauważyłeś, że Debian jest podzielony na następujące sekcje: &lt;span style="font-style:italic;"&gt;main&lt;/span&gt; (zawiera wolne oprogramowanie), &lt;span style="font-style:italic;"&gt;non-free&lt;/span&gt; (zawiera oprogramowanie, które nie jest wolne) i &lt;span style="font-style:italic;"&gt;contrib&lt;/span&gt; (zawiera wolne oprogramowanie, które zależy od oprogramowania, które nie jest wolne). Dodatkowo każda z sekcji dzieli się na logiczne podsekcje, które skrótowo opisują, do czego służy dany pakiet. Mamy zatem sekcję &lt;span style="font-style:italic;"&gt;admin&lt;/span&gt;, która zawiera programy przeznaczone tylko dla administratora systemu, &lt;span style="font-style:italic;"&gt;base&lt;/span&gt; z podstawowymi narzędziami, &lt;span style="font-style:italic;"&gt;devel&lt;/span&gt; z narzędziami programistów, &lt;span style="font-style:italic;"&gt;doc&lt;/span&gt; z dokumentacją, &lt;span style="font-style:italic;"&gt;libs&lt;/span&gt; z bibliotekami, &lt;span style="font-style:italic;"&gt;mail&lt;/span&gt; z programami do obsługi poczty elektronicznej, &lt;span style="font-style:italic;"&gt;net&lt;/span&gt; z aplikacjami sieciowymi i demonami usług sieciowych, &lt;span style="font-style:italic;"&gt;sound&lt;/span&gt; z aplikacjami muzycznymi, &lt;span style="font-style:italic;"&gt;graphics&lt;/span&gt; z aplikacjami graficznymi, &lt;span style="font-style:italic;"&gt;x11&lt;/span&gt; z programami dla systemów X11, które nie pasują nigdzie indziej i wiele innych. Zmieńmy zatem &lt;span style="font-style:italic;"&gt;Section&lt;/span&gt; na &lt;span style="font-style:italic;"&gt;graphics&lt;/span&gt;. Prefiks "main/" jest przyjmowany domyślnie, więc możemy go pominąć. W kolejnej linii mamy &lt;span style="font-style:italic;"&gt;Priority&lt;/span&gt;, pełną listę priorytetów można znaleść &lt;a href="http://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities" target="_blank"&gt;tutaj&lt;/a&gt;. &lt;span style="font-style:italic;"&gt;Maintainer&lt;/span&gt; to oczywiście, osoba, która stworzyła paczkę, &lt;span style="font-style:italic;"&gt;Build-Depends&lt;/span&gt; chwilowo pomińmy, &lt;span style="font-style:italic;"&gt;Homepage&lt;/span&gt; to strona domowa programu, &lt;span style="font-style:italic;"&gt;Architecture&lt;/span&gt; opisuje architekturę procesora, dla którego może być skompilowany pakiet. Pozostawimy w niej &lt;span style="font-style:italic;"&gt;any&lt;/span&gt;, gdyż pakiet dpkg-gencontrol(1) sam wstawi w tym miejscu odpowiednią wartość dla każdego typu maszyny, na której kompilowany jest pakiet. &lt;span style="font-style:italic;"&gt;Description&lt;/span&gt; jest opisem paczki, format powinien wyglądać następująco&lt;blockquote&gt;Description: Krótki opis&lt;br /&gt;[dwie spacje odstępu]dłuższy opis, dłuższy opis, dłuższy opis, załamanie linii&lt;br /&gt;[dwie spacje odstępu]dalszy ciąg opisu&lt;br /&gt;[dwie spacje odstępu]opcjonalnie kolejne linie&lt;/blockquote&gt;wróćmy teraz do &lt;span style="font-style:italic;"&gt;Build-Depends&lt;/span&gt;, jest to lista zależności pakietów, które wymagane są do poprawnej instalacji naszej paczki i działania samego programu. Aby stworzyć taką wstępną listę, można posłużyć się skryptem&lt;blockquote&gt;#!/bin/bash&lt;br /&gt;strace -f -o /tmp/log ./configure&lt;br /&gt;# or make instead of ./configure, if the package doesn't use autoconf&lt;br /&gt;for x in `dpkg -S $(grep open /tmp/log|\&lt;br /&gt;perl -pe 's!.* open\(\"([^\"]*).*!$1!' |\&lt;br /&gt;grep "^/"| sort | uniq|\&lt;br /&gt;grep -v "^\(/tmp\|/dev\|/proc\)" ) 2&gt;/dev/null|\&lt;br /&gt;cut -f1 -d":"| sort | uniq`; \&lt;br /&gt;do \&lt;br /&gt;echo -n "$x (&gt;=" `dpkg -s $x|grep ^Version|cut -f2 -d":"` "), "; \&lt;br /&gt;done&lt;/blockquote&gt;należy tutaj pamiętać o jak najbardziej optymalnym doborze parametrów do &lt;span style="font-style:italic;"&gt;./configure&lt;/span&gt; listę tych parametrów możemy zobaczyć wpisując&lt;blockquote&gt;./configure --help&lt;/blockquote&gt;w głownym katalogu programu, skrypt wypisze nam listę wymaganych pakietów, niestety jeśli ma to być paczka do oficjalnego repozytorium to nie jest to koniec :-P, w całej liście edytujemy ciąg znaków (występuje w wersji pakietu)&lt;blockquote&gt;-1)&lt;/blockquote&gt;i&lt;blockquote&gt;-1 )&lt;/blockquote&gt;zamieniając go ciągiem&lt;blockquote&gt;-1~)&lt;/blockquote&gt;następnie usuwany pakiety, które są wymagane w systemie jak np.&lt;blockquote&gt;locales (&gt;= 2.7-18)&lt;/blockquote&gt;i pakiety, które są wymagane przez inne pakiety wchodzące w listę wymaganych przez nas pakietów (masło maślane ;-P), założenie jest takie, że lista powinna być jak najkrótsza i zawierać tylko rzeczywiście wymagane pakiety. Przejdźmy do kolejnego pliku którym jest &lt;span style="font-style:italic;"&gt;rules&lt;/span&gt;, przy opisie poprzedniego, nie na daremno zostawiłem opis &lt;span style="font-style:italic;"&gt;Build-Depends&lt;/span&gt; na koniec, teraz musimy dopisać do pliku &lt;span style="font-style:italic;"&gt;rules&lt;/span&gt; w odpowiednim miejscu parametry, które dopisaliśmy w skrypcie do generowania listy wymaganych pakietów, a także inne wymagane komendy (jeśli takie były wymagane, np. export jakieś wartości) do kompilacji programu. Przejdźmy zatem do kolejnego pliku, &lt;span style="font-style:italic;"&gt;watch&lt;/span&gt; jest plikiem dzięki, któremu repozytorium może kontrolować czy nie zostały wydane nowsze wersje programu, standardowo mamy w tym pliku (watch.ex od example, z ang. przykład) różne przykłady dla popularnych stron, np. dla tego programu zawartość pliku była następująca&lt;blockquote&gt;version=3&lt;br /&gt;http://sf.net/mpview/mpview-(.*)\.tar\.gz&lt;/blockquote&gt;ponieważ strona programu znajduje się na sourceforge.net (sf.net), następnym plikiem, który omówię będzie &lt;span style="font-style:italic;"&gt;changelog&lt;/span&gt;, jest to plik, który powinien zawierać odnotowane wszystkie dokonywane zmiany, przykładowo plik dla tego programu wygląda&lt;blockquote&gt;mpview (0.4.1-1) unstable; urgency=low&lt;br /&gt;&lt;br /&gt;  * Initial release (Closes: #469088).&lt;br /&gt;&lt;br /&gt; -- Adam Ziaja &amp;lt;adam{@}ziaja.name&amp;gt;  Thu, 26 Mar 2009 12:26:55 +0100&lt;/blockquote&gt;w tym wyypadku Closes: #469088 odpowiada za zamknięcie "&lt;span style="font-style:italic;"&gt;bug'u&lt;/span&gt;" numer &lt;a href="http://bugs.debian.org/469088" target="_blank"&gt;469088&lt;/a&gt;, oczywiście cały plik musi mieć wyżej napisany format, czyli przykładowo w ostatniej linii na początku przed myślnikami musi być spacja itp, niczego nie robiłem, żeby ładnie wyglądało, wszystko to jest wymagane, aby oprogramowanie mogło automatycznie odczytywać treść po przez parsowanie wszystkich tych plików, ostatnim już &lt;u&gt;wymaganym&lt;/u&gt; (przynajmniej w przypadku tego programu, w rzeczywistości może okazać się, że będzie Wam potrzeby któryś z &lt;a href="http://www.debian.org/doc/manuals/maint-guide/ch-dother.pl.html" target="_blank"&gt;pozostałych plików&lt;/a&gt;) plikiem jest &lt;span style="font-style:italic;"&gt;copyright&lt;/span&gt;, w nim muszą być dodane wszystkie licencje z programu, jeśli jakiś choćby jeden plik ma inna licencję to trzeba go dopisać według &lt;a href="http://lists.debian.org/debian-devel-announce/2006/03/msg00023.html" target="_blank"&gt;obowiązującego formatu&lt;/a&gt;, przykładowo plik dla mojej paczki wyglądał następująco&lt;blockquote&gt;This package was debianized by Adam Ziaja &amp;lt;adam{@}ziaja.name&amp;gt; on&lt;br /&gt;Thu, 26 Mar 2009 12:26:55 +0100.&lt;br /&gt;&lt;br /&gt;It was downloaded from http://mpview.sourceforge.net&lt;br /&gt;&lt;br /&gt;Upstream Author:&lt;br /&gt;&lt;br /&gt;    Martin Petricek &amp;lt;martin{@}petricek.net&amp;gt;&lt;br /&gt;&lt;br /&gt;Files: *&lt;br /&gt;&lt;br /&gt;Copyright:&lt;br /&gt;&lt;br /&gt;    Copyright (C) 2007-2009 Martin Petricek&lt;br /&gt;&lt;br /&gt;License:&lt;br /&gt;&lt;br /&gt;    This package is free software; you can redistribute it and/or modify&lt;br /&gt;    it under the terms of the GNU General Public License as published by&lt;br /&gt;    the Free Software Foundation; either version 2 of the License, or&lt;br /&gt;    (at your option) any later version.&lt;br /&gt;&lt;br /&gt;    This package is distributed in the hope that it will be useful,&lt;br /&gt;    but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;    GNU General Public License for more details.&lt;br /&gt;&lt;br /&gt;    You should have received a copy of the GNU General Public License&lt;br /&gt;    along with this package; if not, write to the Free Software&lt;br /&gt;    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA&lt;br /&gt;&lt;br /&gt;On Debian systems, the complete text of the GNU General&lt;br /&gt;Public License can be found in `/usr/share/common-licenses/GPL'.&lt;br /&gt;&lt;br /&gt;Files:&lt;br /&gt;&lt;br /&gt;    src/cimg/CImg.h&lt;br /&gt;&lt;br /&gt;Copyright:&lt;br /&gt;&lt;br /&gt;    Copyright (C) 2008 David Tschumperle&lt;br /&gt;&lt;br /&gt;License:&lt;br /&gt;&lt;br /&gt;    This software is governed by the CeCILL-C license under French law and&lt;br /&gt;    abiding by the rules of distribution of free software.  You can  use,&lt;br /&gt;    modify and or redistribute the software under the terms of the CeCILL-C&lt;br /&gt;    license as circulated by CEA, CNRS and INRIA at the following URL&lt;br /&gt;    "http://www.cecill.info".&lt;br /&gt;&lt;br /&gt;    As a counterpart to the access to the source code and  rights to copy,&lt;br /&gt;    modify and redistribute granted by the license, users are provided only&lt;br /&gt;    with a limited warranty  and the software's author,  the holder of the&lt;br /&gt;    economic rights,  and the successive licensors  have only  limited&lt;br /&gt;    liability.&lt;br /&gt;&lt;br /&gt;    In this respect, the user's attention is drawn to the risks associated&lt;br /&gt;    with loading,  using,  modifying and/or developing or reproducing the&lt;br /&gt;    software by the user in light of its specific status of free software,&lt;br /&gt;    that may mean  that it is complicated to manipulate,  and  that  also&lt;br /&gt;    therefore means  that it is reserved for developers  and  experienced&lt;br /&gt;    professionals having in-depth computer knowledge. Users are therefore&lt;br /&gt;    encouraged to load and test the software's suitability as regards their&lt;br /&gt;    requirements in conditions enabling the security of their systems and/or&lt;br /&gt;    data to be ensured and,  more generally, to use and operate it in the&lt;br /&gt;    same conditions as regards security.&lt;br /&gt;&lt;br /&gt;    The fact that you are presently reading this means that you have had&lt;br /&gt;    knowledge of the CeCILL-C license and that you accept its terms.&lt;br /&gt;&lt;br /&gt;The Debian packaging is (C) 2009, Adam Ziaja &amp;lt;adam{@}ziaja.name&amp;gt; and&lt;br /&gt;is licensed under the GPL, see above.&lt;/blockquote&gt;następnie jeśli chcielibyśmy zamieścić paczkę w oficjalnym repozytorium, trzeba posiadać klucz GPG, ale to już temat na oddzielny artykuł, wpisujemy w głównym katalogu programu&lt;blockquote&gt;debuild&lt;/blockquote&gt;następnie podajemy dwa razy hasło do naszego klucza GPG, przy wydaniu powyższego polecenia może wystąpić wiele błędów np. jeśli jest błąd w linii 1319 to w głównym katalogu programu musi znajdować się plik o nazwie ChangeLog (dokładnie z C i L duże, jeśli jest inaczej to musimy poprawić), jeśli &lt;span style="font-style:italic;"&gt;debuild&lt;/span&gt; dojdzie do końca, możemy zweryfikować poprawność paczki po przez wydanie polecenia&lt;blockquote&gt;lintian -Ii *.dsc&lt;/blockquote&gt;w katalogu który utworzyliśmy na początku (~/debian), jeśli paczka nie zawiera żadnych błędów i chcielibyśmy dodać ją do oficjalnego repozytorium to trzeba będzie zarejestrować się na &lt;a href="http://mentors.debian.net" target="_blank"&gt;http://mentors.debian.net&lt;/a&gt; i dodać nasz klucz GPG, którym podpisaliśmy paczkę, opis budowy pliku konfiguracyjnego programu dupload (który służy do wysyłania paczki na serwer) znajduje się pod &lt;a href="http://mentors.debian.net/cgi-bin/maintainer-intro" target="_blank"&gt;tym adresem&lt;/a&gt;. Aby załadować paczkę na serwer wydajemy polecenie&lt;blockquote&gt;dupload -t mentors *.changes&lt;/blockquote&gt; w katalogu ~/debian, następnie logujemy się na stronę i wybieramy opcję, że szukamy sponsora (deweloper Debiana, który może dodać naszą paczkę do oficjalnego repozytorium). Uff, koniec i niech ktoś teraz powie, że budowa takiej paczki to łatwa sprawa, a są osoby (deweloperzy Debiana) które zbudowały po ~100 takich paczek, jednak opisałem tylko sposób budowy prostej paczki, budowa niektórych pakietów jest o wiele trudniejsza :-). PS: w całym opisie pozamieniałem znaczki @ na {@} aby uniknąć &lt;a href="http://antyspam.pl" target="_blank"&gt;spamu&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-1030748232155939139?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/04/budowanie-paczek-deb.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1030748232155939139?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1030748232155939139?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/04/budowanie-paczek-deb.html" title="Budowanie paczek deb" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C04BR3Y9eip7ImA9WxVbF0w.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-3129256809789621715</id><published>2009-04-01T18:21:00.009+02:00</published><updated>2009-04-03T00:39:16.862+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-03T00:39:16.862+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>BIND - konfiguracja serwera DNS</title><content type="html">&lt;a href="http://pl.wikipedia.org/wiki/BIND" target="_blank"&gt;BIND&lt;/a&gt; jest jednym z najpopularniejszych serwerów DNS wykorzystywanym w systemach Linux i Unix. BIND stanowi niezmiernie ważny składnik zapewniający poprawne działanie systemu nazw w Internecie. Wielu użytkowników globalnej sieci bezwiednie korzysta z serwera BIND, kiedy ich przeglądarka WWW odpytuje go o adres IP komputera udostępniającego interesującą ich stronę.&lt;br /&gt;Nowa wersja BIND 9 została napisana od zera, aby rozwiązać część problemów z architekturą poprzednich wydań tego programu. Dlatego też warto byłoby nauczyć się go konfigurować dla swoich potrzeb. Artykuł ten będzie opisem konfiguracji serwera DNS pod kontrola systemu operacyjnego Linux Debian, jednak w rzeczywistości jedyne różnice jakie mogą wystąpić to inne ścieżki do plików konfiguracyjnych. Głównym plikiem konfiguracyjnym serwera jest&lt;blockquote&gt;/etc/bind/named.conf&lt;/blockquote&gt;w nim też będziemy dodawać wszystkie domeny, przykładowo opiszę zaparkowanie domeny ziaja.name, na dole pliku &lt;span style="font-style:italic;"&gt;named.conf&lt;/span&gt; dodajemy&lt;blockquote&gt;zone "ziaja.name" IN {&lt;br /&gt;        type master;&lt;br /&gt;        file "/var/cache/bind/ziaja.name";&lt;br /&gt;        allow-update { none; };&lt;br /&gt;        allow-transfer { none; };&lt;br /&gt;        notify yes;&lt;br /&gt;};&lt;/blockquote&gt;szczególną uwagę należy zwrócić na linie rozpoczynające się od &lt;span style="font-style:italic;"&gt;allow&lt;/span&gt;, w &lt;span style="font-style:italic;"&gt;allow-update&lt;/span&gt; dopisujemy IP serwerów, które będą mogły aktualizować naszą strefę, jeśli nasz serwer jest na domowe potrzeby powinniśmy wpisać &lt;span style="font-style:italic;"&gt;none&lt;/span&gt;, drugi wpis  tj. &lt;span style="font-style:italic;"&gt;allow-transfer&lt;/span&gt; mówi o IP, które mogą widzieć wpisy w naszej domenie, jeśli przykładowo nie uwzględnimy przy parkowaniu &lt;span style="font-style:italic;"&gt;allow-transfer&lt;/span&gt;, to każda osoba będzie mieć możliwość podglądu wszystkich wpisów w tej domenie po przez wydanie polecenia&lt;blockquote&gt;dig @&lt;span style="font-style:italic;"&gt;IPserweraDNS domena&lt;/span&gt; axfr&lt;/blockquote&gt;tak więc warto na to zwrócić uwagę, bo jednak często nawet największe serwisy o to nie dbają, m.in. gov.pl pozwala na taki export po przez dwa serwery dns cocos.fuw.edu.pl i dns3.atman.pl&lt;blockquote&gt;dig @193.0.80.11 gov.pl axfr&lt;br /&gt;dig @217.17.34.50 gov.pl axfr&lt;/blockquote&gt;również gmach.sejm.gov.pl pozwala na export, tylko w tym wypadku sejm.gov.pl&lt;blockquote&gt;dig @195.187.137.108 sejm.gov.pl axfr&lt;/blockquote&gt;narzuca się pytanie, czy wszyscy muszą znać np. adres bramy&lt;blockquote&gt;brama.sejm.gov.pl.      86400   IN      A       195.187.136.89&lt;/blockquote&gt;czyli jak już wspomniałem wcześniej, nie jest to raczej korzystne i należy o to zadbać. Następnie powinniśmy utworzyć plik konfiguracyjny strefy&lt;blockquote&gt;/var/cache/bind/ziaja.name&lt;/blockquote&gt;a w nim&lt;blockquote&gt;$TTL 120 ; Domyślny TTL&lt;br /&gt;$ORIGIN ziaja.name.&lt;br /&gt;@ IN SOA dns.linux.pl. adam.ziaja.name. (&lt;br /&gt;        200901269 ; Numer seryjny&lt;br /&gt;        3600 ; Częstość odświeżania (refresh)&lt;br /&gt;        1800 ; Częstość powtórek (retry)&lt;br /&gt;        1209600 ; Czas wygaśnięcia (expire)&lt;br /&gt;        86400 ; Negatywne buforowanie TTL&lt;br /&gt;)&lt;br /&gt;@ IN NS dns.linux.pl.&lt;br /&gt;@ IN A 213.135.50.73&lt;/blockquote&gt;gdzie fragment &lt;span style="font-style:italic;"&gt;adam.ziaja.name&lt;/span&gt; to adres e-mail admina pisany z kropką zamiast małpy, a &lt;span style="font-style:italic;"&gt;dns.linux.pl&lt;/span&gt; to adres naszego serwera DNS, przy czym należy pamiętać o kropkach na końcu i o każdorazowej zmianie numeru seryjnego np. na datę z godziną przy zmianie jakiegokolwiek elementu strefy oraz o odświeżeniu stref za pomocą komendy&lt;blockquote&gt;rndc reload&lt;/blockquote&gt;Na końcu można dopisać dowolną ilość adresów różnego typu, w tym wypadku dopisany jest adres IP 213.135.50.73 IN A dla domeny ziaja.name (należy tutaj zaznaczyć że główny adres w domenie, ten bez subdomen musi wskazywać na IP IN A), kolejnym interesującym nas plikiem konfiguracyjnym będzie&lt;blockquote&gt;/etc/bind/named.conf.options&lt;/blockquote&gt;w jego zawartości można wpisać np.&lt;blockquote&gt;options {&lt;br /&gt;        directory "/var/cache/bind";&lt;br /&gt;        statistics-file "/var/cache/bind/bind.stats";&lt;br /&gt;        dump-file "/var/cache/bind/bind.dump";&lt;br /&gt;        allow-recursion { 127.0.0.1; };&lt;br /&gt;        allow-transfer { none; };&lt;br /&gt;        notify yes;&lt;br /&gt;        transfer-format many-answers;&lt;br /&gt;        listen-on { any; };&lt;br /&gt;        listen-on-v6 { any; };&lt;br /&gt;        auth-nxdomain yes;&lt;br /&gt;        query-source address * port 53;&lt;br /&gt;        transfer-source * port 53;&lt;br /&gt;        notify-source * port 53;&lt;br /&gt;        version "Microsoft DNS Server v1.5 (WinME)";&lt;br /&gt;        forwarders { 62.129.252.30; 213.25.47.166; 194.204.159.1; 194.204.152.34; 208.67.222.222; 208.67.220.220; 212.76.33.1; 62.179.1.60; 213.134.134.134; 217.17.34.10; 195.114.173.153; };&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;logging {&lt;br /&gt;    channel security_file { file "/var/log/named/security.log" versions 3 size 30m; severity dynamic; print-time yes; };&lt;br /&gt;    channel default_file { file "/var/log/named/default.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel general_file { file "/var/log/named/general.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel database_file { file "/var/log/named/database.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel security_file { file "/var/log/named/security.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel config_file { file "/var/log/named/config.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel resolver_file { file "/var/log/named/resolver.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel xfer-in_file { file "/var/log/named/xfer-in.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel xfer-out_file { file "/var/log/named/xfer-out.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel notify_file { file "/var/log/named/notify.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel client_file { file "/var/log/named/client.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel unmatched_file { file "/var/log/named/unmatched.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel queries_file { file "/var/log/named/queries.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel network_file { file "/var/log/named/network.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel update_file { file "/var/log/named/update.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel dispatch_file { file "/var/log/named/dispatch.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel dnssec_file { file "/var/log/named/dnssec.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;    channel lame-servers_file { file "/var/log/named/lame-servers.log" versions 3 size 5m; severity dynamic; print-time yes; };&lt;br /&gt;&lt;br /&gt;    category security { security_file; };&lt;br /&gt;    category default { default_file; };&lt;br /&gt;    category general { general_file; };&lt;br /&gt;    category database { database_file; };&lt;br /&gt;    category security { security_file; };&lt;br /&gt;    category config { config_file; };&lt;br /&gt;    category resolver { resolver_file; };&lt;br /&gt;    category xfer-in { xfer-in_file; };&lt;br /&gt;    category xfer-out { xfer-out_file; };&lt;br /&gt;    category notify { notify_file; };&lt;br /&gt;    category client { client_file; };&lt;br /&gt;    category unmatched { unmatched_file; };&lt;br /&gt;    category queries { queries_file; };&lt;br /&gt;    category network { network_file; };&lt;br /&gt;    category update { update_file; };&lt;br /&gt;    category dispatch { dispatch_file; };&lt;br /&gt;    category dnssec { dnssec_file; };&lt;br /&gt;    category lame-servers { lame-servers_file; };&lt;br /&gt;};&lt;/blockquote&gt;gdzie &lt;span style="font-style:italic;"&gt;version&lt;/span&gt; odpowiada za to jak będzie się przedstawiać nasz serwer DNS, jak zawsze nie jest wskazane korzystanie z oryginalnych bannerów ze względów bezpieczeństwa, &lt;span style="font-style:italic;"&gt;forwarders&lt;/span&gt; są to adresy IP serwerów DNS do których będą przekazywane zmiany w strefach naszego serwera DNS w celu szybszego rozpropagowania dokonanych zmian, elementy w sekcji &lt;span style="font-style:italic;"&gt;logging&lt;/span&gt; służą za logowanie poszczególnych zdarzeń, jedyne co można tutaj zmodyfikować to ścieżkę do logów, jeśli nie chcemy logować danych zdarzeń należy usunąć linię odpowiadająca za te zdarzenie. Jęśli posiadamy firewalla (np. iptables) to trzeba będzie dopisać jeszcze reguły&lt;blockquote&gt;iptables -A INPUT -p tcp --dport 53 -j ACCEPT&lt;br /&gt;iptables -A INPUT -p udp --dport 53 -j ACCEPT&lt;/blockquote&gt;To by było na tyle jeśli chodzi o podstawową konfigurację serwera BIND9 :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-3129256809789621715?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/04/bind-konfiguracja-serwera-dns.html#comment-form" title="Komentarze (1)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/3129256809789621715?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/3129256809789621715?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/04/bind-konfiguracja-serwera-dns.html" title="BIND - konfiguracja serwera DNS" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0ACR386fCp7ImA9WxVbFU0.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-8899087267244612579</id><published>2009-03-31T14:21:00.008+02:00</published><updated>2009-03-31T15:22:46.114+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-31T15:22:46.114+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>DenyHosts - zaawansowana konfiguracja</title><content type="html">&lt;a href="http://denyhosts.sourceforge.net" target="_blank"&gt;DenyHosts&lt;/a&gt; jest programem napisanym w Pythonie i jest jednym z najlepszych narzędzi do zabezpieczania SSH przeciw ataków brute force stosowanymi najczęściej przez boty.&lt;br /&gt;Plik konfiguracyjny mieści się w&lt;blockquote&gt;/etc/denyhosts.conf&lt;/blockquote&gt;w nim będziemy dokonywać całą konfigurację programu, na początek najważniejsza opcja&lt;blockquote&gt;SECURE_LOG&lt;/blockquote&gt;odpowiada za ścieżkę do logów SSH&lt;blockquote&gt;HOSTS_DENY&lt;/blockquote&gt;opcja tyczy się również położenia pliku z logami, jeśli instalowaliśmy program z paczki (np. pod Debianem) to nie trzeba tych dwóch pierwszych opcji modyfikować&lt;blockquote&gt;PURGE_DENY&lt;/blockquote&gt;odpowiada za czas po jakim IP będą odblokowywane, jeśli opcja jest bez parametrów to oznacza to, że nigdy&lt;blockquote&gt;BLOCK_SERVICE&lt;/blockquote&gt;tutaj ustawiamy czy blokowany ma być dostęp tylko do SSH czy do wszystkich usług serwera, standardowo opcja jest ustawiona na ALL, czyli blokowanie dostępu do wszystkich usług&lt;blockquote&gt;DENY_THRESHOLD_INVALID&lt;/blockquote&gt;po ilu nieudanych próbach logowania na konta których nie ma w /etc/passwd (ogólnie mówiąc plik z listą kont w systemie) ma być blokowany dostęp, jest to opcja zabezpieczająca przeciw atakom słownikowym&lt;blockquote&gt;DENY_THRESHOLD_VALID&lt;/blockquote&gt;natomiast ta opcja odpowiada za ilość prób logowania na konta, które istnieją w /etc/passwd&lt;blockquote&gt;DENY_THRESHOLD_ROOT&lt;/blockquote&gt;ilość prób logowania na konto root (główne konto administratora systemu)&lt;blockquote&gt;DENY_THRESHOLD_RESTRICTED&lt;/blockquote&gt;odpowiada za ilość prób logowania na konta znajdujące się w /var/lib/denyhosts/restricted-usernames (standardowo), polecam ustawić wartość 1, a do pliku /var/lib/denyhosts/restricted-username dopisać konta, które nigdy nie powinny mieć możliwości logowania na SSH np. mysql, więcej &lt;a href="http://denyhosts.sourceforge.net/faq.html#restricted" target="_blank"&gt;tutaj&lt;/a&gt;&lt;blockquote&gt;ADMIN_EMAIL&lt;/blockquote&gt;tutaj możemy ustawić adres e-mail admina na który mają dochodzić powiadomienia o blokowaniu danego IP, raczej nie polecam ustawiania tej opcji na większych serwerach :-), wszystkie opcje zaczynające się od&lt;blockquote&gt;SMTP_&lt;/blockquote&gt;odpowiadają za sposób wysyłania poczty i dane konta z którego będzie wysyłane powiadomienie o blokadzie, natomiast wszystkie opcje zaczynające się od &lt;blockquote&gt;AGE_RESET_&lt;/blockquote&gt;odpowiadają za czas naliczania prób logowania&lt;blockquote&gt;SYNC_SERVER&lt;/blockquote&gt;bardzo przydatna opcja pozwalająca na synchronizację bazy blokowanych adresów IP, szczerze polecam&lt;blockquote&gt;SYNC_INTERVAL&lt;/blockquote&gt;czas co ile lista będzie synchronizowana baza&lt;blockquote&gt;SYNC_UPLOAD&lt;/blockquote&gt;czy program ma wysyłać zablokowane przez nasz serwer adresy IP&lt;blockquote&gt;SYNC_DOWNLOAD&lt;/blockquote&gt;czy program ma ściągać listę IP zablokowanych adresów przez innych użytkowników programu, polecam obie powyższe opcje włączyć (yes)&lt;blockquote&gt;SYNC_DOWNLOAD_THRESHOLD&lt;/blockquote&gt;bardzo ważna opcja, ile różnych serwerów musi wysłać dane IP, żeby zostało zablokowane na naszym serwerze, polecam wartość 3 lub więcej, to by było na tyle w temacie konfiguracji DenyHosts :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-8899087267244612579?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/03/denyhosts-zaawansowana-konfiguracja.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/8899087267244612579?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/8899087267244612579?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/03/denyhosts-zaawansowana-konfiguracja.html" title="DenyHosts - zaawansowana konfiguracja" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EMQ3g9eCp7ImA9WxVbFU0.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-6538855798393066983</id><published>2009-03-31T13:40:00.006+02:00</published><updated>2009-03-31T15:21:22.660+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-31T15:21:22.660+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>Fail2ban - podstawy konfiguracji</title><content type="html">&lt;a href="http://www.fail2ban.org" target="_blank"&gt;Fail2ban&lt;/a&gt; jest jednym z podstawowych narzędzi wspomagających zabezpieczanie serwerów opartych o system Linux. Program ten napisany jest w Pythonie i w skrócie mówiąc kontroluje logi, a gdy zachodzi taka potrzeba to dodaje regułę do firewalla, aby odciąć dostęp intruzowi (zazwyczaj botom).&lt;br /&gt;Najważniejszym plikiem konfiguracyjnym programu jest&lt;blockquote&gt;/etc/fail2ban/jail.conf&lt;/blockquote&gt;i to właśnie nim się zajmiemy.&lt;br /&gt;Pierwsza sekcja nosi nazwę&lt;blockquote&gt;[DEFAULT]&lt;/blockquote&gt;w niej znajdują się globalne ustawienia programu&lt;blockquote&gt;ignoreip = 192.168.0.0/16&lt;/blockquote&gt;na początku jest bardzo ważna opcja, odpowiada za ignorowanie IP, czyli dane IP nie będą wycinane na firewallu, w tym wypadku został wpisany LAN 192.168.*.*&lt;blockquote&gt;bantime  = 3600&lt;br /&gt;maxretry = 3&lt;/blockquote&gt;wartości te odpowiadają odpowiednio za czas w sekundach przez jaki będzie wycięte IP i za ilość prób logowania po jakim IP zostanie wycięte na firewallu, pozostałe wartości lepiej zostawić tak jak są standardowo, przejdźmy teraz do części&lt;blockquote&gt;JAILS&lt;/blockquote&gt;każda sekcja odpowiada za jakąś usługę, jeśli dane więzienie (ang. jail) ma być włączone to ustawiamy&lt;blockquote&gt;enabled = true&lt;/blockquote&gt;jeśli wylączone to&lt;blockquote&gt;enabled = false&lt;/blockquote&gt;ważnym parametrem jest&lt;blockquote&gt;logpath&lt;/blockquote&gt;w którym to musimy podać dobrą ścieżkę do logów z danej usługi, ponieważ program został bardzo przemyślanie napisany i żeby nie obciążać systemu monitorując ruch, monitoruje tylko logi, jeśli nic nie modyfikowaliśmy, to nie trzeba zazwyczaj poprawiać ścieżek do logów&lt;blockquote&gt;maxretry&lt;/blockquote&gt;jak już wcześniej pisałem, odpowiada za ilość prób logowanie przed wycięciem IP na firewallu, pozostałych opcji nie trzeba modyfikować, a wręcz nie powinno się. Na koniec warto zaznaczyć, że jeśli ręcznie modyfikujemy jakieś ustawienia firewalla, to trzeba później zrestartować fail2ban.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-6538855798393066983?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/03/fail2ban-podstawy-konfiguracji.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/6538855798393066983?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/6538855798393066983?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/03/fail2ban-podstawy-konfiguracji.html" title="Fail2ban - podstawy konfiguracji" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0MMR3w5fip7ImA9WxVbFkg.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-6538406292924003325</id><published>2009-03-13T14:06:00.008+01:00</published><updated>2009-04-02T10:04:46.226+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-02T10:04:46.226+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Konfiguracja Samby</title><content type="html">Samba jest nazwą oprogramowania, przeznaczonego dla serwera plików oraz drukarek, współpracującego z platformą Windows, przeznaczonego dla platformy Linux/Unix. Przyjmijmy, że mamy w swojej sieci lokalnej dwa serwery postawione na Linuksie pierwszy niech będzie oparty o dystrybucję Ubuntu, drugi o dystrybucję Debian, a także komputer typu desktop oparty o system Windows XP. Teraz trzeba przyjąć założenia do czego ma być wykorzystywana nasza Samba, przyjmijmy więc, że na obu serwerach chcielibyśmy mieć jeden folder pozwalający wszystkim na odczyt i drugi pozwalający wszystkim na odczyt oraz zapis. Na obu serwerach musimy więc odpowiednio skonfigurować Sambę, plik konfiguracyjny Samby to &lt;span style="font-style:italic;"&gt;/etc/samba/smb.conf&lt;/span&gt; - edytujemy go dowolnym edytorem tekstowym np. gedit lub nano. Plik konfiguracyjny na pierwszym serwerze powinien wyglądać tak&lt;blockquote&gt;[global]&lt;br /&gt;   workgroup = &lt;span style="font-weight:bold;"&gt;nazwa grupy roboczej (np. WORKGROUP), nazwa musi być identyczna jak pod systemem Windows&lt;/span&gt;&lt;br /&gt;   netbios name = &lt;span style="font-weight:bold;"&gt;nazwa serwera (np. Serwer1)&lt;/span&gt;&lt;br /&gt;   server string = &lt;span style="font-weight:bold;"&gt;komentarz serwera (np. Samba na Ubuntu)&lt;/span&gt;&lt;br /&gt;   wins support = yes&lt;br /&gt;   name resolve order = lmhosts host wins bcast&lt;br /&gt;   map to guest = Bad User&lt;br /&gt;   invalid users = root&lt;br /&gt;   guest account = nobody&lt;br /&gt;   log file = /var/log/samba/log.%m&lt;br /&gt;   max log size = 1000&lt;br /&gt;   socket options = TCP_NODELAY SO_SNDBUF=16384 SO_RCVBUF=16384 IPTOS_LOWDELAY&lt;br /&gt;   security = share&lt;br /&gt;   dns proxy = No&lt;br /&gt;   unix charset = UTF8&lt;br /&gt;   display charset = UTF8&lt;br /&gt;   dos charset = CP852&lt;br /&gt;   preferred master = yes&lt;br /&gt;   interfaces = &lt;span style="font-weight:bold;"&gt;klasa IP (np. 192.168.0.0/16) lub nazwa interfejsu sieciowego (np. eth0) bądź też oba naraz&lt;/span&gt;&lt;br /&gt;   bind interfaces only = yes&lt;br /&gt;   character set = UTF-8&lt;br /&gt;   client code page = 852&lt;br /&gt;&lt;br /&gt;[write]&lt;br /&gt;   comment = read &amp; write&lt;br /&gt;   path = /write&lt;br /&gt;   create mask = 0777&lt;br /&gt;   directory mask = 0777&lt;br /&gt;   browsable = yes&lt;br /&gt;   writable = yes&lt;br /&gt;   guest ok = yes&lt;br /&gt;&lt;br /&gt;[read]&lt;br /&gt;   comment = read&lt;br /&gt;   path = /read&lt;br /&gt;   read only = yes&lt;br /&gt;   guest ok = yes&lt;/blockquote&gt;na drugim serwerze wstawiamy ten sam plik konfiguracyjny usuwając z niego jedynie&lt;blockquote&gt;   wins support = yes&lt;br /&gt;   name resolve order = lmhosts host wins bcast&lt;/blockquote&gt;następnie tworzymy oba katalogi&lt;blockquote&gt;mkdir /read;mkdir /write;chmod 0777 /write&lt;/blockquote&gt;przy czym oczywiście nazwy mogą być dowolne, musimy pamiętać tylko o zmianie parametru&lt;blockquote&gt;path&lt;/blockquote&gt;w pliku konfiguracyjnym. Następnie restartujemy Sambę na obu serwerach&lt;blockquote&gt;/etc/init.d/samba restart&lt;/blockquote&gt;i możemy cieszyć się działającymi serwerami Samba :). Oczywiście należy pamiętać, że jeśli posiadamy firewalla to trzeba dopisać do jego reguły&lt;blockquote&gt;/sbin/iptables -A INPUT -p tcp --dport 139 -j ACCEPT&lt;br /&gt;/sbin/iptables -A INPUT -p tcp --dport 445 -j ACCEPT&lt;/blockquote&gt;w celu ewentualnej diagnostyki mogą pomóc polecenia&lt;blockquote&gt;testparm&lt;/blockquote&gt;które służy do sprawdzenia poprawności pliku konfiguracyjnego, oraz polecenie&lt;blockquote&gt;smbclient -d 10 -L &lt;span style="font-weight:bold;"&gt;IP_serwera_samby&lt;/span&gt;&lt;/blockquote&gt;dzięki któremu przeprowadzimy próbę połączenia do serwera Samby.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-6538406292924003325?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/03/konfiguracja-samba.html#comment-form" title="Komentarze (2)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/6538406292924003325?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/6538406292924003325?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/03/konfiguracja-samba.html" title="Konfiguracja Samby" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;DEcHRX08cCp7ImA9WxVbFU0.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-3383083744155585685</id><published>2009-02-26T22:09:00.006+01:00</published><updated>2009-03-31T15:27:14.378+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-31T15:27:14.378+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><category scheme="http://www.blogger.com/atom/ns#" term="Cracking" /><title>Najszybszy MD5 cracker</title><content type="html">MD5 jest jednym z najpopularniejszych algorytmów używanych do hashowania haseł, z tego powodu powstały liczne programy do łamania haseł zaszyfrowanych przez ten algorytm, aktualnie najszybszym programem tego typu jest &lt;a href="http://3.14.by/en/md5" target="_blank"&gt;BarsWF&lt;/a&gt; i aktualnie dostępny jest jedynie na system Windows (XP i Vista), w czym tkwi fenomen tego crackera? Otóż program BarsWF wykorzystuje procesor karty graficznej (GPU), który jest o wiele szybszy od zwykłych procesorów (CPU), przy czym jednocześnie korzysta ze zwykłego procesora, dzięki czemu łamanie hasła jest bardzo szybkie. Obsługa tego programu nie należy do najtrudniejszych, wystarczy w wierszu poleceń wpisać&lt;blockquote&gt;BarsWF_CUDA_x32.exe -c 0aA~ -h HASHHASŁAMD5&lt;/blockquote&gt;gdzie BarsWF_CUDA_x32.exe to nazwa programu, oczywiście jeśli posiadamy kartę ATI, bądź 64 bitowy system, to wersja programu, a co za tym idzie nazwa, również będzie inna, parametr &lt;span style="font-style:italic;"&gt;-c&lt;/span&gt; odpowiada za to jakie rodzaje znaków mają być testowane, "&lt;span style="font-style:italic;"&gt;0&lt;/span&gt;" odpowiada za cyfry, "&lt;span style="font-style:italic;"&gt;a&lt;/span&gt;" za małe litery, "&lt;span style="font-style:italic;"&gt;A&lt;/span&gt;" za duże litery, a "&lt;span style="font-style:italic;"&gt;~&lt;/span&gt;" za znaki specjalne, pełną listę parametrów znajdziemy na &lt;a href="http://3.14.by/en/md5" target="_blank"&gt;stronie programu&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-3383083744155585685?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/02/md5-cracker.html#comment-form" title="Komentarze (1)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/3383083744155585685?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/3383083744155585685?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/02/md5-cracker.html" title="Najszybszy MD5 cracker" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0ACQXszfyp7ImA9WxVQFks.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-7089023484157849486</id><published>2009-02-03T13:19:00.005+01:00</published><updated>2009-02-03T13:56:00.587+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-03T13:56:00.587+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>Tunelowanie SSH, czyli anonimowe połączenia SSH</title><content type="html">Trasowanie cebulowe (ang. onion routing) polega na wielokrotnym szyfrowaniu wiadomości, a następnie przesyłaniu jej przez szereg węzłów zwanych routerami cebulowymi (ang. onion routers). Każdy z nich usuwa warstwę szyfrowania w celu uzyskania informacji o dalszym trasowaniu i przesyła dane do następnego routera. Takie działanie zapobiega ujawnieniu węzłom pośredniczącym pochodzenia, odbiorcy oraz treści wiadomości. Sieć &lt;a href="http://www.torproject.org/overview.html.pl" target="_blank"&gt;TOR&lt;/a&gt; dominuje w wykorzystywaniu tejże technologii. W tym wpisie postaram się przybliżyć rzadko używaną opcje SSH &lt;span style="font-style:italic;"&gt;ProxyCommand&lt;/span&gt;, pozwalającą określić program, przez który będą przekazywane połączenia. Na początek musimy zainstalować program TOR razem ze wszystkimi wymaganymi przez niego składnikami, w tym celu pod Debianem wydajemy polecenie&lt;blockquote&gt;apt-get install tor&lt;/blockquote&gt;następnie ściągamy program &lt;a href="http://savannah.gnu.org/maintenance/connect.c"&gt;connect.c&lt;/a&gt; komendą&lt;blockquote&gt;wget http://savannah.gnu.org/maintenance/connect.c&lt;/blockquote&gt;następnym krokiem jest kompilacja tego programu&lt;blockquote&gt;gcc -o connect connect.c&lt;/blockquote&gt;aby tunelować połączenie SSH wydajemy polecenie&lt;blockquote&gt;ssh -o ProxyCommand="/home/ziaja/connect -S localhost:9050 %h %p" 213.135.50.72 -p 22&lt;/blockquote&gt;gdzie &lt;span style="font-style:italic;"&gt;/home/ziaja/connect&lt;/span&gt; to ścieżka do skompilowanego programu connect, &lt;span style="font-style:italic;"&gt;localhost:9050&lt;/span&gt; to adres naszego serwera TOR (serwer działa standardowo na porcie 9050), a &lt;span style="font-style:italic;"&gt;213.135.50.72&lt;/span&gt; to IP serwera do którego chcemy się połączyć za pośrednictwem SSH, parametr &lt;span style="font-style:italic;"&gt;-p&lt;/span&gt; jest opcjonalny (jeśli ssh działa na standardowym porcie 22 to nie trzeba go podawać), jeśli chcemy zalogować się na inny login to przed numerem IP trzeba dodać &lt;span style="font-style:italic;"&gt;login@&lt;/span&gt;, przykładowo łącząc się z Neostrady w logach pokazało się&lt;blockquote&gt;Feb  3 13:11:55 latitude sshd[10253]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=user-38q48q0.cable.mindspring.com  user=root&lt;/blockquote&gt;nie jest to moje IP więc tunelowanie działa prawidłowo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-7089023484157849486?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/02/tunelowanie-ssh-anonimowe-polaczenia.html#comment-form" title="Komentarze (1)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/7089023484157849486?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/7089023484157849486?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/02/tunelowanie-ssh-anonimowe-polaczenia.html" title="Tunelowanie SSH, czyli anonimowe połączenia SSH" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CUcNQ3o8eCp7ImA9WxVQEkk.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-1739136510145997655</id><published>2009-01-29T15:58:00.006+01:00</published><updated>2009-01-29T16:31:32.470+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T16:31:32.470+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="WiFi" /><title>ZyDAS ZD1211 na Debian Linux</title><content type="html">&lt;span style="font-weight:bold;"&gt;ZyDAS ZD1211&lt;/span&gt; jest kartą WiFi, którą standardowo dostajemy przy zakupie Neostrady z routerem &lt;span style="font-weight:bold;"&gt;Livebox&lt;/span&gt; (Sagem F@st 3202) w Orange (współwłaściciel Telekomunikacji Polskiej). Konfiguracja sieci pod konsolą w Debianie przy użyciu tej karty jako urządzenia przez które będziemy się łączyć jest bardzo prosta.&lt;br /&gt;&lt;br /&gt;Jeśli posiadamy wersję systemu etch to najlepiej zaaktualizować system do wersji lenny, w tym celu edytujemy /etc/apt/sources.list i zastępujemy go następującą treścią&lt;blockquote&gt;deb http://ftp.icm.edu.pl/pub/Linux/debian/ lenny main non-free contrib&lt;br /&gt;deb-src http://ftp.icm.edu.pl/pub/Linux/debian/ lenny main non-free contrib&lt;br /&gt;&lt;br /&gt;deb http://security.debian.org/ lenny/updates main contrib non-free&lt;br /&gt;deb-src http://security.debian.org/ lenny/updates main contrib non-free&lt;br /&gt;&lt;br /&gt;deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free&lt;br /&gt;deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free&lt;br /&gt;&lt;br /&gt;deb http://sidux.com/debian/ sid main contrib non-free firmware fix.main fix.contrib fix.non-free&lt;/blockquote&gt;ostatnia linijka odpowiada za znakomity konsolowy konfigurator sieci &lt;span style="font-style:italic;"&gt;ceni&lt;/span&gt;, teraz musimy dodać klucz &lt;span style="font-style:italic;"&gt;ceni&lt;/span&gt;&lt;blockquote&gt;gpg --keyserver subkeys.pgp.net --recv-keys 3916C431F80994F6;gpg --armor --export 3916C431F80994F6 | apt-key add -&lt;/blockquote&gt;następnie przechodzimy do aktualizacji systemu do wersji lenny&lt;blockquote&gt;apt-get update &amp;&amp; apt-get dist-upgrade&lt;/blockquote&gt;następnie instalujemy potrzebne pakiety&lt;blockquote&gt;apt-get install bzip2 tar wireless-tools wpasupplicant ceni&lt;/blockquote&gt;w celu instalacji karty wydajemy polecenie&lt;blockquote&gt;wget http://kent.dl.sourceforge.net/sourceforge/zd1211/zd1211-firmware-1.4.tar.bz2&lt;br /&gt;tar jxvf zd1211-firmware-1.4.tar.bz2&lt;br /&gt;mv zd1211-firmware /lib/firmware/zd1211&lt;br /&gt;rm zd1211-firmware-1.4.tar.bz2&lt;/blockquote&gt;następnie sprawdzamy&lt;blockquote&gt;iwconfig&lt;/blockquote&gt;jeśli karta się nie pokazała to restartujemy system, jeśli się pokazała to możemy przejść do konfiguracji sieci, w tym celu uruchomiamy zainstalowany wcześniej pakiet&lt;blockquote&gt;ceni&lt;/blockquote&gt;No i to by było na tyle, chyba najprostsza droga konfiguracji tej karty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-1739136510145997655?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/01/zydas-zd1211-linux-debian.html#comment-form" title="Komentarze (2)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1739136510145997655?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1739136510145997655?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/01/zydas-zd1211-linux-debian.html" title="ZyDAS ZD1211 na Debian Linux" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;CUcERXc4fSp7ImA9WxVbF0w.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-560968444838997026</id><published>2009-01-22T13:30:00.020+01:00</published><updated>2009-04-03T00:56:44.935+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-03T00:56:44.935+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="IPv6" /><title>IPv6 i Neostrada na Debian Linux</title><content type="html">&lt;a href="http://pl.wikipedia.org/wiki/IPv6" target="_blank"&gt;IPv6&lt;/a&gt; to najnowsza wersja protokołu IP, będąca następcą IPv4, do którego stworzenia przyczynił się w głównej mierze problem małej, kończącej się ilości adresów IPv4. Dodatkowymi zamierzeniami było udoskonalenie protokołu IP: eliminacja wad starszej wersji, wprowadzenie nowych rozszerzeń (uwierzytelnienie, zlikwidowanie konieczności stosowania translacji adresów i adresów prywatnych w wielu sieciach, kompresja i inne), zminimalizowanie czynności wymaganych do podłączenia nowego węzła do Internetu (autokonfiguracja).&lt;br /&gt;Warto zaznaczyć, iż IPv6 stanowi tylko jedną warstwę w modelu OSI – nie ingeruje on w inne warstwy, np. aplikacyjną, co pozwala działać istniejącym już protokołom zasadniczo "bezboleśnie". Tak więc wypadałoby zawczasu potestować ten protokół, ponieważ za kilka lat będzie w powszechnym użyciu.&lt;br /&gt;&lt;br /&gt;W moim przypadku jedynym utrudnieniem nie była Neostrada i dynamiczne IP, a fakt, że komputer na którym instalowałem IPv6 leży za NATem, dodatkowo chciałem mieć &lt;a href="http://pl.wikipedia.org/wiki/Reverse_DNS" target="_blank"&gt;revDNS&lt;/a&gt;. Jeśli w Waszym przypadku jest podobnie to koniecznie na routerze musi być ustawiona &lt;a href="http://pl.wikipedia.org/wiki/Demilitarized_Zone" target="_blank"&gt;DMZ&lt;/a&gt; dla IP komputera na którym będzie tunel IPv6. Na początek musimy stać się posiadaczami jakiegoś tunelu, żeby móc brać się za jego instalowanie, ja wybrałem &lt;a href="http://www.tunnelbroker.net" target="_blank"&gt;Hurricane Electric Free IPv6 Tunnel Broker&lt;/a&gt;, tak więc cały wpis jest napisany pod kątem tego Tunnel Brokera i systemu operacyjnego Linux Debian. Neostrada jak powszechnie wiadomo ma dynamiczne IP, z tego powodu zaczniemy od najprostszej rzeczy, czyli zdobycia domeny na nasz dynamiczny adres IP. Dwa najpopularniejsze serwisy świadczące tego typu usługi to &lt;a href="https://www.dyndns.com" target="_blank"&gt;DynDNS.com&lt;/a&gt; oraz &lt;a href="http://www.no-ip.com" target="_blank"&gt;No-IP.com&lt;/a&gt;. Rejestrujemy się na przykład na pierwszym z nich, konfigurujemy wybraną domenę i ściągamy program&lt;blockquote&gt;apt-get install ddclient&lt;/blockquote&gt;który co minutę będzie sprawdzał aktualność naszego adresu i w razie potrzeby wysyłał dane z nowym adresem IP (w moim przypadku DDNS został ustawiony na routerze). W artykule przyjmiemy, że została założona domena ziaja.dyndns.org. Domena ta będzie nam potrzebna przede wszystkim do wpisów typu NS dla adresów, które będziemy chcieli mieć na revDNS IPv6. Kolejnym krokiem będzie więc założenie domeny z wpisem NS kierującym na adres ziaja.dyndns.org. Najbardziej popularnym serwisem udostępniającym darmowe subdomeny jest &lt;a href="http://freedns.afraid.org"&gt;FreeDNS&lt;/a&gt;. W moim przypadku domenami będą ipv6.ziaja.name i ipv6.whore.pl. Będziemy potrzebować również serwera nazw pod nasze domeny NS&lt;blockquote&gt;apt-get install bind9&lt;/blockquote&gt;Na początek zajmiemy się tą łatwiejsza częścią czyli konfiguracją serwera DNS, edytujemy główny plik konfiguracyjny&lt;blockquote&gt;nano /etc/bind/named.conf&lt;/blockquote&gt;i dodajemy nasze domeny NS&lt;blockquote&gt;zone "ipv6.ziaja.name" IN {&lt;br /&gt;        type master;&lt;br /&gt;        file "/var/cache/bind/ipv6.ziaja.name";&lt;br /&gt;        allow-update { none; };&lt;br /&gt;        allow-transfer { none; };&lt;br /&gt;        notify yes;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;zone "ipv6.whore.pl" IN {&lt;br /&gt;        type master;&lt;br /&gt;        file "/var/cache/bind/ipv6.whore.pl";&lt;br /&gt;        allow-update { none; };&lt;br /&gt;        allow-transfer { none; };&lt;br /&gt;        notify yes;&lt;br /&gt;};&lt;/blockquote&gt;żeby natomiast zaparkować pulę adresów IPv6 trzeba zalogować się na stronę &lt;a href="http://www.tunnelbroker.net" target="_blank"&gt;http://www.tunnelbroker.net&lt;/a&gt;, po pierwsze oczywiście założyć tunel, w tym celu klikamy w &lt;span style="font-style:italic;"&gt;Create Regular Tunnel&lt;/span&gt;. Kiedy tunel jest już utworzony wpisujemy w pole &lt;span style="font-style:italic;"&gt;RDNS Delegation NS1&lt;/span&gt; adres naszego serwera DNS czyli w moim przypadku ziaja.dyndns.org. Następnie ściągamy program który pozwoli nam bezboleśnie obliczyć revDNS dla naszego IPv6&lt;blockquote&gt;apt-get install ipv6calc&lt;/blockquote&gt;i wydajemy polecenie&lt;blockquote&gt;ipv6calc -r 2001:470:1f07:cff::/64&lt;/blockquote&gt;gdzie 2001:470:1f07:cff::/64 to Wasz adres &lt;span style="font-style:italic;"&gt;Routed /64&lt;/span&gt; (z panelu Tunnel Brokera), wynik komendy będzie podobny do mojego&lt;blockquote&gt;No input type specified, try autodetection...found type: ipv6addr&lt;br /&gt;f.f.c.0.7.0.f.1.0.7.4.0.1.0.0.2.ip6.int.&lt;/blockquote&gt;należy tutaj zaznaczyć, że standardem jest już .arpa, a nie .int, tak więc nasz poprawny adres to f.f.c.0.7.0.f.1.0.7.4.0.1.0.0.2.ip6&lt;span style="font-style:italic;"&gt;.arpa&lt;/span&gt;, ponownie wracamy do konfiguracji BINDa&lt;blockquote&gt;nano /etc/bind/named.conf&lt;/blockquote&gt;i dodajemy konfigurację dla naszej nowej strefy&lt;blockquote&gt;zone "f.f.c.0.7.0.f.1.0.7.4.0.1.0.0.2.ip6.arpa" {&lt;br /&gt;        type master;&lt;br /&gt;        file "/etc/bind/reverse-2001-470-1f07-cff_64.IP6.ARPA";&lt;br /&gt;        allow-update { none; };&lt;br /&gt;        allow-transfer { none; };&lt;br /&gt;        notify yes;&lt;br /&gt;};&lt;/blockquote&gt;należy również zwrócić uwagę na wielkość znaków, ponieważ dla Linuksa litera a i A to 2 różne znaki, oczywiście można dowolnie nazwać plik z konfiguracją strefy, ale trzeba się potem tego trzymać. Tworzymy plik strefy ipv6.ziaja.name&lt;blockquote&gt;nano /var/cache/bind/ipv6.ziaja.name&lt;/blockquote&gt;i wpisujemy konfigurację&lt;blockquote&gt;$TTL 120 ; Domyślny TTL&lt;br /&gt;$ORIGIN ipv6.ziaja.name.&lt;br /&gt;@ IN SOA ziaja.dyndns.org. hostmaster.ziaja.dyndns.org. (&lt;br /&gt;        200901269       ; Numer seryjny&lt;br /&gt;        3600            ; Częstość odświeżania (refresh)&lt;br /&gt;        1800            ; Częstość powtórek (retry)&lt;br /&gt;        1209600         ; Czas wygaśnięcia (expire)&lt;br /&gt;        86400           ; Negatywne buforowanie TTL&lt;br /&gt;)&lt;br /&gt;@ IN NS ziaja.dyndns.org. ; Nasza domena DDNS&lt;br /&gt;@ IN AAAA 2001:470:1f07:cff::1 ; Adres na którym chcemy mieć revDNS&lt;br /&gt;@ IN A 127.0.0.1 ; Dowolny adres IP&lt;/blockquote&gt;dokładnie analogicznie robimy dla reszty domen (w moim przypadku ipv6.whore.pl), zmieniając wszędzie numer seryjny (na dowolny np. datę) i adres w linni &lt;span style="font-style:italic;"&gt;@ IN AAAA&lt;/span&gt; na dowolnie wybrany z naszej puli adresowej, w moim przypadku pula to &lt;blockquote&gt;2001:470:1f07:cff::/64&lt;/blockquote&gt; więc pierwszymi adresami kolejno będą &lt;blockquote&gt;2001:470:1f07:cff::1&lt;br /&gt;2001:470:1f07:cff::2&lt;br /&gt;2001:470:1f07:cff::3&lt;br /&gt;2001:470:1f07:cff::4&lt;br /&gt;2001:470:1f07:cff::5&lt;br /&gt;itd.&lt;/blockquote&gt;należy również zwrócić uwagę, że po każdym hoście jest kropka, &lt;span style="font-style:italic;"&gt;hostmaster.ziaja.dyndns.org&lt;/span&gt; jest adresem e-mail admina z kropka zamiast małpy, następnie tworzymy plik strefy dla naszej klasy IPv6&lt;blockquote&gt;nano /etc/bind/reverse-2001-470-1f07-cff_64.IP6.ARPA&lt;/blockquote&gt;wpisujemy konfigurację&lt;blockquote&gt;$TTL 3d ; Domyślny TTL&lt;br /&gt;@ IN SOA f.f.c.0.7.0.f.1.0.7.4.0.1.0.0.2.ip6.arpa. hostmaster.ziaja.dyndns.org. (&lt;br /&gt;        200901261       ; Numer seryjny&lt;br /&gt;        24h             ; Częstość odświeżania (refresh)&lt;br /&gt;        30m             ; Częstość powtórek (retry)&lt;br /&gt;        2d              ; Czas wygaśnięcia (expire)&lt;br /&gt;        3d              ; Negatywne buforowanie TTL&lt;br /&gt;)&lt;br /&gt;@ IN NS ziaja.dyndns.org.&lt;br /&gt;$ORIGIN f.f.c.0.7.0.f.1.0.7.4.0.1.0.0.2.ip6.arpa.&lt;br /&gt;1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ipv6.ziaja.name.&lt;br /&gt;2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ipv6.whore.pl.&lt;/blockquote&gt;tutaj zaznaczam, że 10-ty numer to &lt;span style="font-style:italic;"&gt;0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0&lt;/span&gt;, a 11-ty to &lt;span style="font-style:italic;"&gt;1.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0&lt;/span&gt; itd. analogicznie. Jeśli dotarliście do tego miejsca to powinniście posiadać już działający serwer DNS, dalsza jego konfiguracja nie jest wymagana, aczkolwiek zalecana, edytujemy plik&lt;blockquote&gt;nano /etc/bind/named.conf.options&lt;/blockquote&gt;i zastępujemy zawartość tym:&lt;blockquote&gt;options {&lt;br /&gt;        directory "/var/cache/bind";&lt;br /&gt;        listen-on { any; };&lt;br /&gt;        listen-on-v6 { any; };&lt;br /&gt;        auth-nxdomain yes;&lt;br /&gt;        query-source address * port 53;&lt;br /&gt;        transfer-source * port 53;&lt;br /&gt;        notify-source * port 53;&lt;br /&gt;        version "Microsoft DNS Server v1.5 (WinME)";&lt;br /&gt;        forwarders { 194.204.159.1; 194.204.152.34; };&lt;br /&gt;};&lt;/blockquote&gt;linia &lt;span style="font-style:italic;"&gt;version&lt;/span&gt; odpowiada za to jak przedstawia się nasz serwer DNS, im mniej prawdziwych informacji, tym lepiej ;). Następnie wymagane jest dodanie regułek do firewalla&lt;blockquote&gt;iptables -A INPUT  -j ACCEPT -i lo&lt;br /&gt;iptables -A OUTPUT -j ACCEPT -o lo&lt;/blockquote&gt;dzięki, którym nie będzie blokowany ruch lokalny (wymagane dla serwera DNS), jeśli nie posiadamy jako tako nigdzie firewalla to można dopisać te linie do pliku&lt;blockquote&gt;/etc/rc.local&lt;/blockquote&gt;następnie obowiązkowo trzeba przeładować serwer DNS, najlepiej komędą&lt;blockquote&gt;rndc reload;/etc/init.d/bind9 restart&lt;/blockquote&gt;tak dla pewności ;P.&lt;br /&gt;Teraz przejdziemy do sedna sprawy, najważniejszej części, a zarazem najłatwiejszej, stawiania tunelu IPv6. Logujemy się na &lt;a href="http://www.tunnelbroker.net" target="_blank"&gt;http://tunnelbroker.net&lt;/a&gt;, wybieramy tunel i na dole wybieramy &lt;span style="font-style:italic;"&gt;Linux-route2&lt;/span&gt; (wymagany pakiet iproute, &lt;span style="font-style:italic;"&gt;apt-get install iproute&lt;/span&gt;) i klikamy &lt;span style="font-style:italic;"&gt;Show Config&lt;/span&gt;, IP po prawej od &lt;span style="font-style:italic;"&gt;local&lt;/span&gt; zmieniamy na nasze lokalne (jeśli mamy przed sobą np. router), a &lt;span style="font-style:italic;"&gt;ttl&lt;/span&gt; zmieniamy na 25 (tunel szybciej staje się dostępny przy zmianie IP), czyli &lt;u&gt;przykładowo&lt;/u&gt; będzie to wyglądać tak&lt;blockquote&gt;modprobe ipv6&lt;br /&gt;ip tunnel add he-ipv6 mode sit remote 209.51.161.14 local 192.168.1.1 ttl 25&lt;br /&gt;ip link set he-ipv6 up&lt;br /&gt;ip addr add 2001:470:1f06:cff::2/64 dev he-ipv6&lt;br /&gt;ip route add ::/0 dev he-ipv6&lt;br /&gt;ip -f inet6 addr&lt;/blockquote&gt; gdzie &lt;span style="font-style:italic;"&gt; 209.51.161.14&lt;/span&gt; to IP mojego tunelu (tserv4.nyc4.ipv6.he.net), wystarczy wkleić teraz wszystko na shella i powinno działać, musimy jeszcze dodać nasze adresy na których chcemy mieć revDNS&lt;blockquote&gt;ip a a 2001:470:1f07:cff::1 dev he-ipv6&lt;br /&gt;ip a a 2001:470:1f07:cff::2 dev he-ipv6&lt;br /&gt;ip a a 2001:470:1f07:cff::3 dev he-ipv6&lt;br /&gt;ip a a 2001:470:1f07:cff::4 dev he-ipv6&lt;br /&gt;ip a a 2001:470:1f07:cff::5 dev he-ipv6&lt;br /&gt;itd.&lt;/blockquote&gt; oczywiście &lt;span style="font-style:italic;"&gt;2001:470:1f07:cff::1&lt;/span&gt; i kolejne musi być adresem z Waszej puli (patrz wyżej). Aby zautomatyzować stawianie tunelu po restarcie najłatwiej będzie dodać te wszystkie linijki do pliku &lt;span style="font-style:italic;"&gt;/etc/rc.local&lt;/span&gt;, a w celu automatyzacji odnawiania adresu IP użyjemy skryptu mojego autorstwa (wow ;P)&lt;blockquote&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;NEW_IP=`curl -s "http://whatismyip.com/automation/n09230945.asp"`&lt;br /&gt;HEUSER=123123123&lt;br /&gt;HEPASS=1a2b3c1a2b3c1a2b3c&lt;br /&gt;HETUNNEL=21939&lt;br /&gt;&lt;br /&gt;curl -k -s "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=$NEW_IP&amp;pass=$HEPASS&amp;user_id=$HEUSER&amp;tunnel_id=$HETUNNEL"&lt;br /&gt;echo -e "\r"&lt;/blockquote&gt;gdzie &lt;span style="font-style:italic;"&gt;HEUSER&lt;/span&gt; odpowiada za nasz numer użytkownika, &lt;span style="font-style:italic;"&gt;HETUNNEL&lt;/span&gt; za numer tunelu, oba numery bierzemy z panelu HE Tunnel Broker. Natomiast &lt;span style="font-style:italic;"&gt;HEPASS&lt;/span&gt; odpowiada za MD5 Hash naszego hasła, w celu jego stworzenia wpisujemy&lt;blockquote&gt;echo -n nasze_hasło | openssl md5&lt;/blockquote&gt;zapisujemy skrypt np. w lokalizacji /root/.crontab/ipv6.sh, następnie edytujemy crontab (crontab -e) i dopisujemy linijkę&lt;blockquote&gt;*/3 * * * * /root/.crontab/ipv6.sh &gt;&gt; /dev/null 2&gt;&amp;1&lt;/blockquote&gt;gdzie &lt;span style="font-style:italic;"&gt;/root/.crontab/ipv6.sh&lt;/span&gt; to ścieżka do skryptu, &lt;span style="font-style:italic;"&gt;*/3&lt;/span&gt; odpowiada za powtarzanie wywołania skryptu co 3 minuty, a &lt;span style="font-style:italic;"&gt;&gt;&gt; /dev/null 2&gt;&amp;1&lt;/span&gt; pozwala uniknąć nam spamu na lokalną pocztę z wynikami działania skryptu.&lt;br /&gt;No i to by było na tyle, w tym miejscu powinniście mieć działający tunel IPv6-in-IPv4.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-560968444838997026?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/01/ipv6-neostrada-linux-debian.html#comment-form" title="Komentarze (0)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/560968444838997026?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/560968444838997026?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/01/ipv6-neostrada-linux-debian.html" title="IPv6 i Neostrada na Debian Linux" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEMMRXwzcSp7ImA9WxVSE0U.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-1739718665489686688</id><published>2009-01-08T03:20:00.004+01:00</published><updated>2009-01-08T03:41:24.289+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-08T03:41:24.289+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gaming" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>Bezpieczeństwo użytkowników Electronic Sports League (ESL)</title><content type="html">W dzisiejszych czasach każdy szanujący się duży portal powinien chronić dane pozwalające na ustalenie tożsamości osób w nich zarejestrowanych.&lt;br /&gt;Niewątpliwie takim portalem &lt;a href="http://www.esl.eu/eu/statistics/" target="_blank"&gt;jest&lt;/a&gt; &lt;a href="http://www.esl.eu/eu/" target="_blank"&gt;ESL&lt;/a&gt;, w tym wpisie opiszę jak sprawdzić IP osób z którymi jesteśmy na &lt;a href="http://www.esl.eu/eu/gather/" target="_blank"&gt;gather&lt;/a&gt;ze, sprawa nie jest raczej zbyt skomplikowana.&lt;br /&gt;Gathery te są zwykłymi kanałami na serwerze IRC &lt;a href="irc://irc.esl-europe.net" target="_blank"&gt;irc.esl-europe.net&lt;/a&gt; i za pomocą polecenia &lt;span style="font-style:italic;"&gt;/whois&lt;/span&gt; możemy sprawdzić IP osób, które nas interesują, każda osoba połączona za pomocą strony ma w polu &lt;span style="font-style:italic;"&gt;real name&lt;/span&gt; wartość &lt;span style="font-style:italic;"&gt;Java User&lt;/span&gt;. Oczywiście powyższe fakty tłumaczą czemu osoby z blokadą na porty 6666/6667 (IRC) nie mogą grać gatherów na ESL.&lt;br /&gt;&lt;blockquote&gt;02:27 -!- Your host is irc1.esl.eu[irc1.esl.eu/6667], running version xx&lt;br /&gt;02:27 -!- &lt;span style="font-weight:bold;"&gt;This server was created Fri Oct 20 2006 at 19:22:23 CEST&lt;/span&gt;&lt;br /&gt;02:27 -!- irc1.esl.eu gnagna oiwszcerkfydnxbaugl biklmnopstveIha bkloveIh&lt;br /&gt;02:27 -!- WALLCHOPS KNOCK EXCEPTS INVEX MODES=4 MAXCHANNELS=2 MAXBANS=25 MAXTARGETS=2 NICKLEN=20 TOPICLEN=120 KICKLEN=120 are supported by this server&lt;br /&gt;02:27 -!- CHANTYPES=#&amp; PREFIX=(ov)@+ CHANMODES=eIb,k,l,imnpst NETWORK=ESL CASEMAPPING=rfc1459 CALLERID are supported by this server&lt;br /&gt;02:27 -!- &lt;span style="font-weight:bold;"&gt;There are 0 users and 521 invisible on 1 servers&lt;/span&gt;&lt;br /&gt;02:27 -!- &lt;span style="font-weight:bold;"&gt;146 channels formed&lt;/span&gt;&lt;br /&gt;02:27 -!- I have 521 clients and 0 servers&lt;br /&gt;02:27 -!- Current local  users: 521  Max: 1431&lt;br /&gt;02:27 -!- &lt;span style="font-weight:bold;"&gt;Current global users: 521  Max: 1431&lt;/span&gt;&lt;br /&gt;02:27 -!- Highest connection count: 1431 (1431 clients) (2423118 connections received)&lt;br /&gt;02:27 -!- - irc1.esl.eu Message of the Day -&lt;br /&gt;02:27 -!- - Welcome to the ESL Instant Challenger IRC Network&lt;br /&gt;02:27 -!- End of /MOTD command.&lt;br /&gt;02:27 -!- &lt;span style="font-weight:bold;"&gt;You are restricted&lt;/span&gt;&lt;/blockquote&gt;Na serwerze obowiązuje restrykcja (nie można korzystać z opa), ogólnie sieć składa się z jednego serwera IRC, jest to serwer oparty o oprogramowanie &lt;a href="http://www.ircd-hybrid.org" target="_blank"&gt;IRCD-Hybrid&lt;/a&gt; i działa pod kontrolą systemu operacyjnego Debian (Linux). I tak muszę przyznać, że jestem zaskoczony konfiguracją tego serwera, czyli ogólnym zabezpieczeniu, nie działa komenda &lt;span style="font-style:italic;"&gt;/list&lt;/span&gt;, co prawda ukryli wersje oprogramowania, ale tylko przy połączeniu na serwer IRC, tak więc do wysokiej klasy specjalistów to ich admini nie należą (hybrid-&lt;a href="http://downloads.securityfocus.com/vulnerabilities/exploits/h7kill.c" target="_blank"&gt;7.0&lt;/a&gt;(20030611_2). irc1.esl.eu egGIKMpZ TS5ow), na serwerze działa również &lt;a href="http://irc1.esl.eu/amz" target="_blank"&gt;Apache/2.2.3 (Debian) PHP/4.4.4-8+etch6&lt;/a&gt;, nie ma to jak ukrywanie bannerów ;-), &lt;span style="font-weight:bold;"&gt;swoja droga jakiś inteligentny hacker mógłby sobie z powodzeniem postawić tutaj botnet&lt;/span&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-1739718665489686688?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2009/01/bezpieczenstwo-uzytkownikow-esl.html#comment-form" title="Komentarze (6)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1739718665489686688?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1739718665489686688?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2009/01/bezpieczenstwo-uzytkownikow-esl.html" title="Bezpieczeństwo użytkowników Electronic Sports League (ESL)" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>6</thr:total></entry><entry gd:etag="W/&quot;A04CRXkzfSp7ImA9WxVQFks.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-1754312236859314073</id><published>2008-12-26T17:55:00.019+01:00</published><updated>2009-02-03T15:06:04.785+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-03T15:06:04.785+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>Blackholing w Polsce</title><content type="html">Blackholing w Polsce staje się rzeczywistością, niedawno Telekomunikacja Polska jako jedna z pierwszych największych polskich sieci zaczęła wykorzystywać &lt;a href="http://lukasz.bromirski.net/bgp-blackholing/desc.html" target="_blank"&gt;blackholing&lt;/a&gt; w celu ochrony internautów, a w najbliższym czasie na szeroką skalę uruchomią go również (bądź już to uczynili np. &lt;a href="http://lukasz.bromirski.net/bgp-blackholing/members.html" target="_blank"&gt;członkowie projektu BGP Blackholing PL&lt;/a&gt;) pozostali polscy operatorzy.&lt;br /&gt;Czym jest jednak wspomniany wyżej blackholing? Z ang. black hole to czarna dziura, a sformułowanie blackholing opisuje wrzucanie do niej różnego rodzaju rzeczy, w tym przypadku, chodzi o niepotrzebny lub szkodliwy wręcz ruch sieciowy, czyli przede wszystkim chodzi tutaj o &lt;a href="http://pl.wikipedia.org/wiki/Botnet_(bezpiecze%C5%84stwo_komputerowe)" target="_blank"&gt;botnety&lt;/a&gt; (znajdujące się najczęściej na serwerach &lt;a href="http://pl.wikipedia.org/wiki/IRC" target="_blank"&gt;IRC&lt;/a&gt;) i ataki typu &lt;a href="http://pl.wikipedia.org/wiki/DoS" target="_blank"&gt;DoS&lt;/a&gt;/&lt;a href="http://pl.wikipedia.org/wiki/DDoS" target="_blank"&gt;DDoS&lt;/a&gt; (najczęściej za pośrednictwem botnetów).&lt;br /&gt;Z jednej strony ma to swoje oczywiste plusy, są też minusy, kiedy ruch jest źle interpretowany, jak to ma miejsce np. w przypadku Telekomunikacji Polskiej, która blokuje ruch do jednego z głównych serwerów stowarzyszenia &lt;a href="http://rootnode.net" target="_blank"&gt;Rootnode&lt;/a&gt;, ponieważ jest tam serwer IRC, a stowarzyszenie posiada ok. 1000 użytkowników, z czego spora część to klienci TPSA, w ostatnim czasie Telekomunikacja Polska zablokowała nawet dostęp do prawie wszystkich największych sieci IRC co jest doskonałym przykładem na błędną interpretację ruchu.&lt;br /&gt;Jak sprawdzić czy ruch jest rzeczywiście blokowany? Jednym ze sposobów sprawdzenia jest skorzystanie z serwerów Looking Glass, adres takiego serwera dla TPSA to &lt;a href="http://lg.tpnet.pl" target="_blank"&gt;http://lg.tpnet.pl&lt;/a&gt;, spora lista serwerów LG znajduje się &lt;a href="http://lg.tpnet.pl/serwerylg.html"target="_blank"&gt;tutaj&lt;/a&gt;. Na przykładzie Looking Glass Telekomunikacji Polskiej, w pole &lt;span style="font-style:italic;"&gt;Address&lt;/span&gt; wpisujemy interesujący nas numer IP i jeśli w wyniku znajduje się&lt;blockquote&gt;Community: 5511:666 5511:710 5511:5511&lt;/blockquote&gt;to oznacza to, że ruch nie jest blokowany, jeśli jednak otrzymamy wynik&lt;blockquote&gt;Community: 5617:997 5617:3322 no-export&lt;/blockquote&gt;oznacza to, że ruch do tego numeru IP (bądź całej sieci) jest blokowany, a szczegóły możemy uzyskać pisząc na adres &lt;a href="mailto:cert@telekomunikacja.pl"&gt;cert@telekomunikacja.pl&lt;/a&gt;, jednak w przypadku stowarzyszenia Rootnode, na niewiele się to zdało, nikt nie potrafił przedstawić nam jakichkolwiek dowodów (logów) na to, że botnet rzeczywiście znajduje się na serwerze esr.rootnode.net, do którego blokowany jest ruch z TPSA, nawet nikt nie raczył wysłać maila na abuse, kiedy adresy administratorów Rootnode i serwerowni podane są w bazie &lt;a href="http://ripe.net" target="_blank"&gt;RIPE&lt;/a&gt;, a CERT Telekomunikacji Polskiej nieugięcie twierdzi, że na serwerze IRC uruchomionym na esr.rootnode.net znajduje się botnet, mimo, że administracja Rootnode uruchomiła nawet &lt;a href="http://pl.wikipedia.org/wiki/Sniffer" target="_blank"&gt;sniffer&lt;/a&gt;, a CERT zapewnia, że kiedy zagrożenie minie to blokada zostanie automatycznie zdjęta, co dzieje się co jakiś czas na okres kilku minut, tak więc ponowna blokada wiąże się z ponowną aktywnością botnetu, który jednak w żaden sposób nie jest wykrywany na snifferze, a ping również nie wzrasta, prawdopodobnie ma to związek z dużą ilością usług uruchomionych na tym serwerze i liczbą tysiąca użytkowników stowarzyszenia, czyli po prostu błędną interpretacją przez CERT TPSA.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img style="width: 720px; height: 168px;" src="http://img13.imageshack.us/img13/687/blogtpsapa5.png" border="0" alt="" /&gt;&lt;/center&gt;&lt;br /&gt;Pozdrowienia ;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-1754312236859314073?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2008/12/blackholing-w-polsce.html#comment-form" title="Komentarze (13)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1754312236859314073?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/1754312236859314073?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2008/12/blackholing-w-polsce.html" title="Blackholing w Polsce" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>13</thr:total></entry><entry gd:etag="W/&quot;CEQCR384eyp7ImA9WxVTE0w.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-4188562901307205290</id><published>2008-12-26T01:30:00.008+01:00</published><updated>2008-12-26T18:26:06.133+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-26T18:26:06.133+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gaming" /><category scheme="http://www.blogger.com/atom/ns#" term="Bezpieczeństwo" /><title>Jak chronić konto Steam?</title><content type="html">W ostatnim czasie nasiliła się fala kradzieży kont Steam, najczęściej scenariusz wygląda następująco, abuser zakłada fikcyjne konto Steam nazywając je w stylu Admin, Valve itp. i dodaje potencjalne ofiary do znajomych, następnie obiecuje nam gry za darmo i jedyne co musimy zrobić to podać login i hasło do konta Steam (tzw. &lt;a href="http://pl.wikipedia.org/wiki/In%C5%BCynieria_spo%C5%82eczna_(informatyka)" target="_blank"&gt;social engineering&lt;/a&gt;) lub też podaje nam fikcyjny link do strony, która wygląda identycznie jak steamcommunity.com i prosi nas o zalogowanie się, czyli tzw. &lt;a href="http://pl.wikipedia.org/wiki/Phishing" target="_blank"&gt;phishing&lt;/a&gt;.&lt;br /&gt;Jedną z podstawowych zasad którą musimy pamiętać jest to, że domeną Społeczność Steam jest steamcommunity.com, a każda wiadomość od Steam Support będzie pochodzić z domeny support.steampowered.com, przy czym musimy być czujni na domeny, które do złudzenia przypominają którąś z tych domen, czyli np. steamcomunity.com (jedno m) itp.&lt;br /&gt;Kolejną ważną informacją do zapamiętania jest to, że administracja Steama NIGDY nie będzie pytać Cię o hasło, bo i po co skoro są administracją :-)? Podanie komuś hasła/cd-keya jest równoznaczne z pozbyciem się konta.&lt;br /&gt;Oczywiście powinniśmy mieć zawsze aktualną bazę programu antywirusowego (np. &lt;a href="http://avast.com/index_pol.html" target="_blank"&gt;avast&lt;/a&gt;) i uważać co ściągamy/klikamy, przykładowo dużo linków podawanych na IRC (i nie tylko) po przez samo kliknięcie w niego jest Wam w stanie ukraść hasło do konta Steam (jak i innych rzeczy, w tym stron www, jak i klucz Windowsa).&lt;br /&gt;Kolejną ważna sprawą jest unikanie logowania się na konto na przypadkowych komputerach, w kafejce internetowej, szkole itd., a także pamiętanie o wylogowaniu się z takich komputerów.&lt;br /&gt;Jeśli już dojdzie do kradzieży konta, musimy wysłać ticket na support.steampowered.com, w tym celu trzeba będzie się zarejestrować pod &lt;a href="https://support.steampowered.com/register.php" target="_blank"&gt;tym adresem&lt;/a&gt;, przy czym należy pamiętać, że jest to oddzielne konto od konta Steam. Następnie przechodzimy do &lt;a href="https://support.steampowered.com/newticket.php" target="_blank"&gt;formularza wysłania zgłoszenia&lt;/a&gt;. Zgłoszenie powinno zawierać takie informacje jak nazwa użytkownika konta Steam, jaki był ostatni adres e-mail, spróbuj określić także kiedy nastąpiła kradzież i jak mogło do niej dojść, kluczowym jednak dowodem jest przesłanie cyfrowego zdjęcia (lub skanu) na którym czytelnie widnieje klucz do którejś z gier tego konta Steam (klucz ten podałeś przy zakładaniu konta, żeby aktywować grę).&lt;br /&gt;Jeśli po przeczytaniu tego wpisu ktoś do Ciebie napisał prośbę o podanie hasła do konta, zawsze możesz wyciągnąć jakoś jego numer IP, przykładowo podając mu stronę, która zapisuje numer IP osoby wchodzącej na nią, następnie za pomocą &lt;a href="http://ripe.net" target="_blank"&gt;ripe.net&lt;/a&gt; można znaleźć adres e-mail administratora sieci i wysłać mu log z załączonym numerem IP jak i data/godziną zalogowania tego adresu (co może się okazać kluczowe w przypadku dynamicznego adresu IP). Przykładowo adres e-mail do zgłaszania takich incydentów dla klientów Telekomunikacji Polskiej to &lt;a href="mailto:cert@telekomunikacja.pl"&gt;cert@telekomunikacja.pl&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-4188562901307205290?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2008/12/jak-chronic-konto-steam.html#comment-form" title="Komentarze (2)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/4188562901307205290?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/4188562901307205290?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2008/12/jak-chronic-konto-steam.html" title="Jak chronić konto Steam?" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;CUUESX87cSp7ImA9WxNbEk0.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-8668148473958285875</id><published>2008-12-22T15:05:00.013+01:00</published><updated>2009-11-14T13:53:28.109+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-14T13:53:28.109+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Wardriving" /><category scheme="http://www.blogger.com/atom/ns#" term="WiFi" /><title>Mapy sieci bezprzewodowych</title><content type="html">Wbrew pozorom zrobienie swoich własnych map sieci bezprzewodowych nie jest niczym trudnym, wystarczy do tego celu laptop z kartą WiFi np. netbook Eee PC i do tego jakiś GPS np. Navibe GM720 ok. 100zł na allegro.pl, mała uwaga dla posiadaczy tego GPS, u mnie nie działał bez &lt;a href="http://www.navibe.com/product/gps_mouse/gm720/G-Mouse%20USB%202.0%20Driver.zip"&gt;najnowszych sterowników&lt;/a&gt; poprawnie z programem NetStumbler, potrzebne nam będzie do tego celu też jakieś oprogramowanie czyli już wcześniej wspomniany NetStumbler, jest to chyba najlepszy program tego typu pod Windowsa.&lt;br /&gt;Tak więc do rzeczy, &lt;a href="http://www.netstumbler.com/downloads/" target="_blank"&gt;ściągamy program NetStumbler&lt;/a&gt;, z menu wybieramy &lt;span style="font-style:italic;"&gt;View&lt;/span&gt;, &lt;span style="font-style:italic;"&gt;Options&lt;/span&gt;, przechodzimy do zakładki GPS teraz wybieramy wszystkie opcje według wskazań producenta GPS (lepiej się nie bawić bo można sobie popsuć GPS, jeśli nie mamy pewności to lepiej nic nie zmieniać), w przypadku Navibe GM720 zmieniamy tylko wartość &lt;span style="font-style:italic;"&gt;Bits per second&lt;/span&gt; na 9600 czyli według wskazań producenta podanych w &lt;a href="http://www.navibe.com/product/gps_mouse/gm720/GM720_en.pdf" target="_blank"&gt;specyfikacji&lt;/a&gt;, następnie obowiązkowo trzeba wybrać &lt;span style="font-style:italic;"&gt;Port&lt;/span&gt; na którym znajduje się nasze urządzenie GPS, jeśli nie jesteśmy pewni, klikamy prawym klawiszem myszki na ikonę mój komputer, następnie &lt;span style="font-style:italic;"&gt;Właściwości&lt;/span&gt; i przechodzimy do zakładki &lt;span style="font-style:italic;"&gt;Sprzęt&lt;/span&gt; i klikamy w &lt;span style="font-style:italic;"&gt;Menadżer urządzeń&lt;/span&gt;, następnie rozwijamy &lt;span style="font-style:italic;"&gt;Porty (COM i LPT)&lt;/span&gt;, teraz gdy mamy już wszystko podłączone, na dole po prawej stronie powinna pojawić się ikonka globusu i pozycja pobrana z GPS, jeśli natomiast pokazuję się znak uwaga z komunikatem &lt;span style="font-style:italic;"&gt;Port unavailable&lt;/span&gt; to oznacza to że niestety wybraliśmy zły port, jeśli natomiast pokazuje się komunikat &lt;span style="font-style:italic;"&gt;No position fix&lt;/span&gt; to powinniśmy wyjść z domu ;-) ponieważ GPS nie może odebrać sygnału z satelit, teraz przyszedł czas na pojeżdzenie po okolicy celem złapania kilku sieci WiFi, następnie zapisujemy wyniki do pliku *.ns1 (Ctrl+S), wchodzimy na stronę &lt;a href="http://www.gpsvisualizer.com/map_input?form=wifi" target="_blank"&gt;GPS Visualizer&lt;/a&gt;, ładujemy nasz plik *.ns1, po prawej wybieramy interesujące nas parametry (przede wszystkim polecam &lt;span style="font-style:italic;"&gt;Google street map&lt;/span&gt;, a także &lt;span style="font-style:italic;"&gt;Waypoint names &amp; descriptions&lt;/span&gt;) i cieszymy się gotową mapką ;-). Mała uwaga co do map, mapy te nie pokazują zasięgu danej sieci WiFi, ale miejsce gdzie złapaliśmy tą sieć, ponieważ GPS zapisuje pozycję w której my się znajduje, ale dzięki zapisanej sile sygnału możemy łatwo PI razy oko określić zasięg danej sieci :-).&lt;br /&gt;&lt;p&gt;&lt;img style="width: 440px; height: 349px;" src="http://bezpieczenstwo.onet.pl/_i/art/wifi_1.jpg" border="0" alt="" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-8668148473958285875?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2008/12/mapy-sieci-bezprzewodowych.html#comment-form" title="Komentarze (2)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/8668148473958285875?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/8668148473958285875?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2008/12/mapy-sieci-bezprzewodowych.html" title="Mapy sieci bezprzewodowych" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;DUcBRXwyfyp7ImA9WxRaFUw.&quot;"><id>tag:blogger.com,1999:blog-6636011253809652926.post-5662734764813481229</id><published>2008-12-17T02:15:00.004+01:00</published><updated>2008-12-17T13:30:54.297+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-17T13:30:54.297+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gaming" /><title>Płynność gry, czyli o czasie odświeżania ekranu, liczbie FPS i wysokości tickrate</title><content type="html">Z uwagi na tendencje w prześciganiu się graczy z liczbą klatek na sekundę (FPS), postanowiłem napisać ten oto wpis, wyjaśniający ogółem o co chodzi w częstotliwości odświeżania, liczbie klatek na sekundę, a także dodatkowo o tickrate serwerów gier. &lt;br /&gt;Tak więc do rzeczy, niski współczynnik klatek na sekundę powoduje u widza wrażenie "skakania" obrazu, z kolei wysoki zwiększa wrażenie płynności wyświetlania. Dzięki przenikaniu się ze sobą kolejnych klatek filmu nagranego kamerą takie wrażenie ma miejsce już przy ok. 15 fps, dla sekwencji złożonej z klatek niemających ze sobą nic wspólnego (np. w grach komputerowych) wymagany współczynnik wzrasta do 30-60 fps. Przy tej samej karcie graficznej częstotliwość odświeżania jest odwrotnie proporcjonalna do rozdzielczości, czyli im większa rozdzielczość tym mniejsza częstotliwość odświeżania.&lt;br /&gt;Przejdźmy jednak do sedna sprawy, w dużym uproszczeniu pisząc (ponieważ m.in. wyświetlanie obrazu różni się trochę na LCD jak na CRT), jeśli w grze wyciągamy np. 120 fps, a nasz monitor ma częstotliwość odświeżania 60 Hz, wtedy do bufora karty podawane jest 120 fps, jednak karta graficzna jest w stanie do ekranu przekazać tylko 60 fps (odświeżanie obrazu 60 Hz), w wyniku czego na monitor tafia połowa klatek (w uproszczeniu), przez co tracimy płynność gry, dlatego też, żeby nie tracić owej płynności powinniśmy mieć ustawioną za pomocą odpowiedniej komendy taką samą maksymalną liczbę fps jak częstotliwość odświeżania monitora, czyli jeśli mamy 60 Hz ustawiamy maksymalną liczbę 60 fps (nie piszę już nawet, że kluczowe znaczenie ma tu stała liczba fps i że przykładowo lepiej się gra na stałych 50 fps jak zmiennej liczbie 50-250 fps). Aby sprawdzić jaką częstotliwość odświeżania ma nasz monitor klikamy prawym klawiszem myszki na pulpicie, następnie właściwości, ustawienia, zaawansowane, monitor.&lt;br /&gt;Maksymalną liczę fps w grze ustawimy po przez komendę &lt;span style="font-style:italic;"&gt;com_maxfps&lt;/span&gt; w grach z serii Call of Duty, komenda &lt;span style="font-style:italic;"&gt;fps_max&lt;/span&gt; (tutaj istnieje wyjątek, zawsze ustawiamy +1 fps, czyli jeśli mamy 60 Hz odświeżanie to ustawiamy fps_max 61) w grach z serii Counter-Strike, jak i wszystkich innych na silniku Source (np. Insurgency). Jednak jeśli nasza karta jest w stanie wyciągnąć stałe 150 fps, a częstotliwość odświeżania to 60 Hz, to możemy poprawić wygląd grafiki w grze, żeby choćby nacieszyć oko, co więcej, w większości gier FPP poprawienie wyglądu grafiki znacznie poprawia jakość rozgrywki (widoczność cieni przeciwnika itd.).&lt;br /&gt;Jeśli gramy online to istnieją jeszcze inne znaczące czynniki od których zależy płynność rozgrywki, takie jak ping (opóźnienie), czy tickrate, tickrate to liczba mówiąca o tym ile razy na sekundę serwer przetwarza informacje dotyczące zmian w grze (czyli pozycje graczy, przedmiotów itd.), tickrate powinien przyjmować wartości 33, 66 lub 100, przynajmniej z teoretycznego punktu widzenia, w praktyce jest jednak różnie (serwery odpalone są np. na tickrate 100 i nie wyrabiają w wyniku czego utrzymują tickrate rzędu 80-90). Im wyższy tickrate, tym większa dokładność dokonywanych obliczeń na serwerze i częstotliwość dostarczania informacji do gracza, na serwerach z większych tickrate (np. 100, najlepiej widać to w grach na silniku Source), można odnotować lepszą precyzję w strzelaniu oraz pełną płynność w grze, natomiast na serwerach o niższym tickrate (np. 33) zauważalne są lagi (serwer nie nadąża z liczeniem) oraz bardzo częste (co zauważalne jest głównie w Counter-Strike: Source) przypadkowe trafienia, kiedy to gracz np. w czasie odwracania się odda niekontrolowany strzał, a trafi prosto w przeciwnika (taki strzał w animacji poklatkowej nawet nie jest wymierzony w przeciwnika, więcej informacji &lt;a href="http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Lag_compensation" target="_blank"&gt;tutaj&lt;/a&gt;).&lt;br /&gt;Mam nadzieję, że mój wpis przybliżył trochę czemu większa liczba fps powyżej pewnej wartości nie prowadzi do niczego dobrego (ponieważ tracimy płynność gry), a także dodatkowo informacje na temat jakie znaczenie ma np. trickrate serwerów gier :-).&lt;br /&gt;&lt;br /&gt;Źródła:&lt;br /&gt;&lt;a href="http://pl.wikipedia.org" target="_blank"&gt;http://pl.wikipedia.org&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.valvesoftware.com" target="_blank"&gt;http://developer.valvesoftware.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6636011253809652926-5662734764813481229?l=az.linux.pl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://az.linux.pl/2008/12/plynnosc-gry.html#comment-form" title="Komentarze (11)" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/5662734764813481229?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6636011253809652926/posts/default/5662734764813481229?v=2" /><link rel="alternate" type="text/html" href="http://az.linux.pl/2008/12/plynnosc-gry.html" title="Płynność gry, czyli o czasie odświeżania ekranu, liczbie FPS i wysokości tickrate" /><author><name>Adam Michał Ziaja</name><uri>http://www.blogger.com/profile/07612597810490702315</uri><email>aziaja@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="01773342814104185001" /></author><thr:total>11</thr:total></entry></feed>
