Aby zainstalować MySQL w Debianie, wystarczy wpisać poniższą komendę w terminalu:

sudo aptitude install mysql-server

Następnie trzeba ustanowić hasło dla roota, można to zrobić na 2 sposoby:

  1. Sposób – bezpieczniejszy:

    Logujemy się na konto roota, wpisując w terminalu ….

    mysqladmin -u root -p

    Po wywołaniu tego polecenia, pojawi się prośba o podanie hasła, ponieważ nie ustaliliśmy jeszcze żadnego hasła, wystarczy nacisnąć klawisz enter. Jeśli wszystko zainstalowało sie poprawnie i demon mysqld został uruchomiony, powinien pojawić się poniższy znak zachęty:

    mysql>

    Aby ustanowić hasło dla użytkownika root, należy wpisać nastepujące polecenia SQL:

    set password for root@localhost=password('nasze_tajne_haslo');
    set password for root@host=password('nasze_tajne_haslo');

    Po zmianie hasła, należy się wylogować wpisując \q i zalogować ponownie, wpisując poniższe polecenie:

    mysql -u root -p

    Enter i podajemy hasło, które zostało przed chwilą ustalone.

    Małe objaśnienie:

    • -u – informuje MySQL o tym, że łączymy się poprzez konkretnego użytkownika, w tym wypadku jest to użytkownik root,
    • -p – informuje o tym, że korzystamy z hasła.
  2. Sposób:
  3. mysqladmin -u root password wpisz_tutaj_swoje_tajne_hasło

    Ten sposób ma jednak swoje wady, polecam popatrzyć na -> 4.3 Change admin password

    Jeśli jednak zdecydujemy się zmienić hasło z lini poleceń, to należy po wykonaniu tej komendy usunąć wpis znajdujący się w pliku “.bash_history”. Zawiera on zapis wykonanej przez nas komendy, wraz z podanym przez nas hasłem.
    Następnie wylogowujemy się z systemu i logujemy ponownie.

Teraz już gdy root posiada hasło, dodamy sobie nowego użytkownika. Aby to zrobić najpierw logujemy się w MySQL na konto root, przy użyciu podanego przez nas poprzednio hasła.

mysql -u root -p

Teraz dodamy sobie nowego użytkownika, przy pomocy polecenia GRANT

Wpisujemy w terminalu:

grant all on *.* to admin identified by 'wpisz_swoje_tajne_haslo';

Objaśnienie:

  • all – użytkownikowi admin nadajemy wszystkie dostępne prawa, z wyjątkiem grant,
  • *.* – oznacza nadanie praw, dla wszystkich baz danych i dla wszystkich tabel,
  • to – dla użytkownika: admin,
  • identified by – rozpoznawanego przez, nowe hasło które wprowadzimy dla tego użytkownika.

Teraz wylogowujemy się z bazy i logujemy się na nowe utworzone przez nas konto ….

mysql -u admin -p

Podajemy nowe hasło, i zostajemy zalogowani jako admin.

Do poczytania do snu, polecam książkę z wydawnictwa O’Reilly:

  1. MYSQL ALMANACH
  2. oraz

  3. Dokumentację

Pozdr.

Zainstalowanie w Debianie serwera HTTP Apache, wraz z modułem PHP, jest bardzo proste. Cała instalacja sprowadza się do wydania poniższego polecenia:

sudo aptitude install apache2 libapache2-mod-php5 php5

Teraz możemy już przetestować działanie naszego serwera, wpisując w przeglądarce:

http://localhost/

W tej chwili naszym oczom, powinien ukazać się radosny komunikat:
It works! ( :

Następnie sprawdzamy, czy działa moduł PHP5?

W konsoli, piszemy:

sudo vim /var/www/test.php

Wpisujemy:

test_php

Zapisujemy plik.

W przeglądarce wpisujemy poniższy adres:

http://localhost/test.php

Jeżeli wyświetli nam się strona, z napisem PHP Version (…)
to znaczy, że wszystko jest w porządku.

Teraz możemy usunąć plik test.php, następującym poleceniem:

sudo rm -r /var/www/test.php

W tej chwili, możemy już wgrać sobie naszą stronę www, nad którą obecnie pracujemy, na nasz własny serwer. Kopiując zawartość katalogu np. “pierwsza_strona_www” do:

/var/www/

Możemy również pokazywać naszym znajomym, jakie poczyniliśmy postępy, podczas tworzenia strony www. Wystarczy że podamy im następujący adres:

http://wpisz_swoj_numer_ip/pierwsza_strona_www/

Pozdr.

Jak zawsze, poniższe porady stosujesz na własną odpowiedzialność.

Każdy użytkownik komputera, powinien tworzyć regularnie kopię bezpieczeństwa swoich danych. Niestety często bywa tak, że użytkownik dopiero po stracie istotnych danych, zaczyna rozumieć jak ważny jest backup.

Tworzenie kopi bezpieczeństwa, przy użyciu programu tar.

Załóżmy że chcesz skopiować katalog praca, znajdujący się na pulpicie. W tym katalogu utworzyłem trzy pliki a, b, c.

W terminalu wykonujemy następujące polecenie:

cd Desktop/
tar -cvpf backup.tar praca

praca/
praca/b
praca/c
praca/a

W tej chwili została wykonana kopia całego katalogu praca do pliku backup.tar. Teraz taki plik możemy np. skopiować na pendrive lub zapisać na płycie CD/DVD (RW).

Czy można skopiować dane bezpośrednio na pendrive?

Tak, wpisując w konsoli poniższe polecenie:

tar -cvpf /media/usb0/backup.tar Desktop/

Przy założeniu, że w /media/usb0 jest zamontowany nasz pendrive.

Czas na małe objaśnienie:

  • -c – Tworzy nowe archiwum,
  • -v – wypisuje nazwy wszystkich plików,
  • -p – zachowuje informacje o prawach dostępu,
  • -f – odczytuje/zapisuje dane z podanego pliku.

Następnie zakładamy że użytkownik kontynuuje swoją pracę … w katalogu praca, dopisując coś do pliku a, tworzy nowy plik d.

~/Desktop/praca$ pico d
~/Desktop/praca$ pico a
~/Desktop/praca$ ls
a b c d
~/Desktop/praca$ cd ..

Zatem możesz zadać sobie zapytanie …

Jak można zaktualizować nasz plik archiwum?

tar -uvpf backup.tar praca

praca/
praca/d
praca/a

  • -u – dołącza tylko pliki nowsze niż kopie w archiwum.

Aby sprawdzić, ile kilobajtów na dysku zajmuje archiwum, wpisujemy w konsoli:

du backup.tar

12 backup.tar

Jak odtworzyć dane z archiwum?

tar -xvpf backup.tar

praca/
praca/b
praca/c
praca/a
praca/
praca/d
praca/a

  • -x – rozpakowuje pliki z archiwum.

ls
a b c d

Polecam zapoznanie się z:

man tar

Pozdr.

Poniżej zostanie przedstawiony krok po kroku proces instalacji drukarki HP LaseJet 1020, w systemie Debian GNU/Linux. Cały proces instalacji postaram się przedstawić w taki sposób, aby w jakimś tam stopniu
skorzystać z niego mogli również użytkownicy innych drukarek.

Zaczynamy

Każdy kto planuje zakup drukarki, lub już to zrobił i chciałby ją zainstalować w swojej ulubionej dystrybucji Linuksa, powinien odwiedzić tą stronę -> OpenPrinting – The Linux Foundation

Następnie przyjrzeć się -> tej tabelce.

Jeżeli nasza drukarka znajduje się w kolumnie o nazwie

  1. Perfectly – to znaczy, że drukarka bez problemu będzie działać pod Linuxem i Unixem,
  2. Mostly – te drukarki, pracują prawie idealnie. Może być niedostępny druk w wyższej rozdzielczości, kolor nie będzie idealny, aczkolwiek druk będzie “użyteczny”,
  3. Partially drukarki przeważnie nie działają, lub np. nie będziesz mógł użytkowniku drukować w kolorze, albo druk będzie wyglądał tragicznie,
  4. Paperweight drukarki nie działają wcale, może będą działać w przyszłości, ale nie licz na to.

Odszukujemy swój model, mój HP LaserJet 1020 jest w rubryce: Mostly. Klikając na nazwę mojej drukarki, zostałem przekierowani do tej strony -> link. Na stronie czytamy: “Recommended driver: foo2zjs (Home page)“. Udajemy się więc pod podany adres strony domowej, i co widzimy? Sterowniki do następujących modeli: HP LaserJet 1020, 1022, 1018, 1005, 1000.

Jeżeli któryś z powyższych modeli, posiadasz użytkowniku, to teraz nadszedł czas na pobrane sterowników ze strony i zapisanie ich na dysku twardym.

Pobieranie i instalacja sterownika

W terminalu:

$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz

Rozpakowujemy:

$ tar zxf foo2zjs.tar.gz

Przechodzimy do rozpakowanego katalogu:

$ cd foo2zjs

Instalujemy CUPS

sudo aptitude update && sudo aptitude install cupsys

Kolejno, aby móc skompilować i zainstalować pobrany przez nas sterownik, należy doinstalować w naszym systemie następujące składniki:

sudo aptitude install make makedev gcc bison g++

Włączamy drukarkę. Będąc w katalogu foo2zjs, wykonujemy następujące czynności:

$ make
$ ./getweb 1020
$ sudo make install
$ sudo make install-hotplug
$ sudo make cups

Zamiast ostaniej komendy “sudo make cups” możemy:

ls -la /etc/init.d/*cups*
/etc/init.d/cupsys

Następnie:

sudo /etc/init.d/cupsys restart
lub z konta root:
/etc/init.d/cupsys restart

Wyłączamy drukarkę, oraz włączamy ją ponownie. Teraz nadszedł czas, aby uruchomić przeglądarkę, wpisujemy w niej poniższy adres:

http://localhost:631

Kolejno:

Add Printer

Add New Printer

Name: Np. HP1020
Location: W przypadku mojej drukarki, jest to: /dev/usb/lp0
Description: Nie musimy podawać żadnych informacji.

Device for hp

Device: HP LaserJet 1020 USB #1 (HP LaserJet 1020)

Model/Driver for hp

Wybieramy z listy: HP LaserJet 1020 Foomatic/foo2zjs (recommended) (en)

Lub wybieramy opcję:

Or Provide a PPD File: .. klikamy na browse

i szukamy pliku PPD w katalogu z sterownikami, które uprzednio pobraliśmy z sieci.

Następnie podajemy

User Name: root
i Password: ….

W przypadku Ubuntu, własną nazwę użytkownika i hasło.

W tym momencie możemy sobie pogratulować, nasza drukarka została zainstalowana, na próbę drukujemy stronę testową.

Miłego drukowania.

Podziękowania dla Minusa.

Pisząc to howto korzystałem z:

  1. OpenPrinting – The Linux Foundation
  2. foo2zjs.rkkda.com
  3. Forum Ubuntu

Pozdrawiam.

Jak zawsze, poniższe porady stosujesz na własną odpowiedzialność. Polecenia które zostały użyte w tym artykule, często zawierają “sudo”. Jeśli używasz Debiania i jesteś lekko zdezorientowany przeczytaj ten -> wpis.

Debian słynie z tego, że w wersjach stabilnych, użytkownik systemu, nie doświadczy raczej obcowania z najnowszym oprogramowaniem. Co jest często czynione jako zarzut w kierunku tej dystrybucji. Na forum Debiana często zatem poleca się aktualizację z wersji stabilnej do testowej.

Jednak aktualizacja całego systemu nie zawsze jest konieczna, np. dokonują jej niektórzy użytkownicy, aby móc skorzystać z obsługi systemu plików NTFS w Debianie, ponieważ w repozytoriach wersji stabilnej “Etch” brakuje ntfs-3g. Co więcej, niedawno natrafiłem na post, w którym jeden użytkownik polecał drugiemu aktualizację całego systemu, tylko po to, aby ten drugi mógł zainstalować kadu :| -> link.

Należy sobie zadać pytanie, czy Debian “etch” nadaje się na biurko?

Odpowiedź jest oczywista, to zależy od użytkownika. Jeśli wybierzemy wersję stabilną, co też chciałbym w tej chwili zarekomendować, pozostaje jeszcze odpowiedzieć sobie na jedno pytanie.

Co zrobić, z starzejącymi się wersjami pakietów oprogramowania? Jak zainstalować brakujące pakiety (np. ntfs-3g)?

Tutaj z pomocą przychodzi ..

Backports.org

Backport zawiera przekompilowane pakiety z wersji testowej (głównie) i wersji niestabilnej (w kilku przypadkach, np. aktualizacje dotyczące bezpieczeństwa), zatem będą one działać bez nowych bibliotek (gdziekolwiek to jest możliwe) w stabilnej dystrybucji Debiana.

Aktualizacja sources.list

sudo vim /etc/apt/sources.list

Jeśli vim jest za trudny dla Ciebie, możesz użyć np. nano z parametrem -w, pico, gedit, kate, kawrite. Jak? W poleceniu zamiast vim, wpisz nazwę używanego przez Ciebie edytora.

Dodajemy poniższy wpis:

#Backports
deb http://www.backports.org/debian etch-backports main contrib non-free

Dodajemy klucz:

sudo wget -O - http://backports.org/debian/archive.key | apt-key add -

Wykonujemy:

sudo aptitude update

Jak apt / aptitude wybiera pakiety?

Backports, może zawierać pakiety które nie są dostępne dla naszej dystrybucji, lub też zawierać je, w nowszej wersji. Co zatem się dzieje jeśli ten sam pakiet istnieje w dwóch różnych repozytoriach? Domyślnie apt / aptitude użyje pakietu w nowszej wersji.

Jak można zauważyć ustawienia domyślne, nie są tym co tygryski lubią najbardziej. Dlaczego? Ponieważ to że chcę sobie pobrać ntfs-3g, nie oznacza że chcę przy okazji uaktualnić inne aplikacje.

Priorytety.

Tworzymy plik:

sudo vim /etc/apt/preferences

Wpisując poniższe polecenia:

Explanation: Etch
Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 900


Package: *
Pin: origin http://www.debian-multimedia.org
Pin-Priority: 600


Package: *
Pin: release a=etch-backports
Pin-Priority: 200


Package: *
Pin: release o=Debian
Pin-Priority: -10

Powyższe polecenia, pozwalają nam wybrać jakie pakiety chcemy zainstalować, czy też aktualizować. Ustawiłem najwyższy priorytet dla pakietów Debian stable, następnie dla Debian multimedia, kolejno dla backports. Co to w praktyce oznacza?

apt-cache policy mutt

mutt:
Zainstalowana: 1.5.13-1.1
Kandydująca: 1.5.13-1.1
Tabela wersji:
1.5.16-2~bpo.1 0
200 http://www.backports.org etch-backports/main Packages
*** 1.5.13-1.1 0
900 http://ftp.pl.debian.org etch/main Packages
100 /var/lib/dpkg/status

Jeśli teraz, w terminalu, wpiszemy poniższe polecenie:

sudo aptitude update && sudo aptitude upgrade

To nowsza wersja mutt, nie zostanie automatycznie zainstalowana. Jak ją zainstalować?

sudo aptitude install -t etch-backports mutt

Po co zaprzątać sobie głowę dodawaniem backports do sources.list?

Czy nie można dodać wpisy z testing, unstable i użyć pinning nadając im niższy pryjorytet?

Cóż, wszystko można, ale to pokazuje niezrozumienie charakteru wersji stabilnej. Wersja stabilna często funkcjonuje jako serwer, a stabilność działania jest tutaj priorytetem. Dodanie pakietów z testing, unstable, może wpłynąć na stabilność pracy dystrybucji.

Jak zainstalować ntfs-3g?

Dokładnie tak samo, jak instalowaliśmy mutt. Czyli wpisujemy w terminalu:

sudo aptitude -t etch-backports install ntfs-3g


Pobieranie:1 http://www.backports.org etch-backports/main libfuse2 2.6.5-1~bpo.1 [105kB]
Pobieranie:2 http://www.backports.org etch-backports/main fuse-utils 2.6.5-1~bpo.1 [13,8kB]
Pobieranie:3 http://www.backports.org etch-backports/main libntfs-3g2 1:1.516-1~bpo.1 [91,6kB]
Pobieranie:4 http://www.backports.org etch-backports/main ntfs-3g 1:1.516-1~bpo.1 [26,6kB]

W Debianie Etch, sudo jest już domyślnie zainstalowane. Lecz jeśli użytkownik sudo nie posiada, to aby zainstalować ten pakiet, wystarczy wykonać poniższe polecenie

aptitude update && aptitude install sudo

Następnie zajmiemy się edycją pliku sudoers. MUSI on być edytowany z konta root, korzystając z poniższego polecenia:

visudo

W domyślnym edytorze, otworzy się plik “sudoers”, dopisujemy następującą linijkę:

nazwa_konta ALL=(ALL) ALL

Zapisujemy zmiany, gratulujemy sobie, od tej pory możemy korzystać z sudo w Debianie.

O czym należy pamiętać?

Głównie o tym, że polecenie sudo gdy zażąda hasła, będzie to hasło użytkownika, a nie hasło root.
Gdy zajmiesz się np. czytaniem maila a po 10 minutach, będziesz chciał wrócić do pracy i nadal korzystać z sudo, to będziesz musiał ponownie wprowadzić hasło użytkownika.

Dlaczego lubimy sudo?

Nawet jeśli, jesteś zwykłym użytkownikiem używającym komputera w domu, a nie administratorem, sudo może się przydać. Powiedzmy że wyjeżdżamy sobie na wakacje, naszego komputera używa również młodsza siostra, którą bardzo kochamy, no ale tak jakoś z hasłem do konta root nie bardzo chcemy ją zostawić. Wystarczy że zastosujemy poniższy wpis, edytując plik sudoers.

nazwa_konta_naszej_siostry ALL= /usr/bin/aptitude

(Więcej znajdziecie w manualu. man 5 sudoers)

Następnie nasza siostra, pozostawiona sama sobie, może już śmiało zainstalować swój ulubiony program np. nmap :)

sudo aptitude update && sudo aptitude install nmap

Plusy?

  1. Nie ma dostępu do konta root,
  2. Może uaktualnić system, oraz zainstalować sobie jakiś dodatkowy program,
  3. Program musi się znajdować w repozytorium które dodaliśmy, więc nie doda nic czego byśmy nie chcieli,
  4. Jeżeli jej na tyle ufamy : ) możemy zwiększyć prawa, poprzez edycję pliku “sudoers”.

Polecam zapoznanie się z

man sudo
man sudoers

Ps. Nawet jeśli nie mamy młodszej siostry, : ) to do codziennej pracy i tak polecam korzystanie z sudo.

Kompilacja jądra, w systemie Debian GNU/Linux.

Czym jest jądro?

Jądro jest najważniejszą częścią systemu operacyjnego, jego “mózgiem”, ale samo nie jest systemem operacyjnym. Zadaniem jądra jest obsługa systemu plików, zarządzanie pamięcią, przydzielanie programom czasu procesora i urządzeń zewnętrznych. Obecnie Debian korzysta z jądra Linuxa (stąd nazwa Debian GNU/Linux). 1

Po co mam zajmować się kompilacją jądra?

Jeśli nie znasz odpowiedzi na powyższe pytanie i Twój system działa zgodnie z Twoimi oczekiwaniami, to kompilacja jądra nie jest Ci potrzebna.

W moim przypadku, za kompilacją przemówiły 2 czynniki:

  1. Chciałem się czegoś nowego nauczyć,
  2. System nie obsługiwał w pełni mojej pamięci ram.

Mając w systemie 1,5 GB pamięci ram, Debian pokazywał mi przy użyciu polecenia: top

Mem: 906792 total, 290544 used, 616248 free

Gdzie podziało się 630 MB pamięci ram? Nie miałem wkompilowanej w jądro obsługi pamięci większej niż 1 GB. Przejdźmy do sedna sprawy.

Kompilacja jądra

Uruchamiamy terminal, w konsoli wydajemy następujące polecenie:

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2

Tym sposobem, pobraliśmy najnowszą (obecnie) wersję jądra, tj.

linux-2.6.22.tar.bz2

Następnie rozpakowujemy archiwum:

tar xvjf linux-2.6.22.tar.bz2

Kolejno kopiujemy wypakowany katalog, do /usr/src wydając polecenie, jako root:

mv linux-2.6.22 /usr/src/

Jak skonfigurować jądro?

Ja preferuję 2 sposoby:

  1. make menuconfig
  2. make xconfig

Jeśli wybierzesz pierwszy, pamiętaj o doinstalowaniu libncurses5-dev.

Drugi sposób jest wygodniejszy, działa tylko pod systemem X Window, do jego zastosowania też chciałbym Cię czytelniku zachęcić. Będziesz musiał doinstalować:

aptitude install libqt3-mt-devel libqt4-devel libqt3-headers libqt3-mt-dev

Następnie, uruchamisz konfigurator opcją:

make xconfig

Jeżeli przywita Cię radosny komunikat …

qconf: cannot connect to X server :0.0
make[1]: *** [xconfig] Błąd 1
make: *** [xconfig] Błąd 2

Należy jako zwykły użytkownik w konsoli wydać polecenie:

xhost +

oraz ponownie jako root:

make xconfig

Naszym oczom, ukaże się graficzny konfigurator, w którym wszystkie opcje są ładnie opisane, więc czytasz i konfigurujesz.
Ja sam, zaznaczyłem między innymi, w Processor type and features -> High Memory Support -> 4GB, po to abym mógł korzystać w pełni z pamięci ram.

Kompilacja jądra

Po skonfigurowaniu jądra, możemy przystąpić do jego kompilacji. W tym celu wydajemy komendy:

make bzImage
make modules
make modules_install

Kopiujemy bzImage do /boot/ wydając polecenie:

cp bzImage /boot/vmlinuz-2.6.22

Następnie kopiujemy System.map:

cp System.map /boot/System.map-2.6.22

Aby móc stworzyć initrd, piszemy w terminalu:

aptitude install initrd-tools

Teraz możemy poczytać: man mkinitrd

Jak i wykonać następne polecenie:

mkinitrd -o /boot/initrd.img-2.6.22 /lib/modules/2.6.22

Initrd został utworzyony w /boot.

Teraz dodajemy wpisy do gruba, sprawdzamy czy działa system. Jeśli nie działa, uruchamiamy go na starym jądrze.
Tylko pamiętajcie żeby nie usunąć aktualnych modułów i aktualnego jądra!

Na koniec, pokaże jaki rezultat przyniosła kompilacja jądra:

top

Mem: 1556928k total, 368364k used, 1188564k free

Podziękowania dla Minusa, za pomoc.

Przy pisaniu tego howto, korzystałem z:
[1] Debian users, Kompilacja jądra Linux

Wstęp.

Przez pierwsze kilkadziesiąt lat swojego istnienia, sieci komputerowe były wykorzystywane głównie przez naukowców, którzy wymieniali dane między ośrodkami badawczymi oraz poprzez pracowników współdzielących dostęp do pojedynczych zasobów takich jak drukarki, czy plotery. W tych warunkach, zagadnienie dotyczące bezpieczeństwa sieci miało znaczenie marginalne. Czasy się jednak zmieniły, a rzeczywistość wygląda inaczej niż sobie to wyobrażał prezes IBM, T.J. Watson który w 1945 roku, odpowiadając na pytanie, dlaczego IBM nie wchodzi do branży komputerowej? Powiedział

Cztery lub pięć komputerów powinno wystarczyć całemu światu do roku 2000

Obecnie komputery stały się narzędziami powszechnego użytku, dla zwykłych obywateli, natomiast szeroko rozumiane bezpieczeństwo informacji stało się zagadnieniem priorytetowym. Mimo powszechnego korzystania, użytkowników sieci z poczty elektronicznej, niewielu z nich zastanawia się nad stopniem bezpieczeństwa przesyłanych informacji. Internauci z reguły nie dbają o bezpieczeństwo swojego systemu, jak i informacji które przesyłają, nie zdając sobie sprawy z konsekwencji jakie mogą ponieść. Niektórzy użytkownicy w mailach przesyłają sobie numery telefonów, adresy, czasem również numery kont bankowych. Warto tutaj uświadomić sobie fakt iż wiadomości które zostają wysłane jako zwykły tekst, mogą zostać odczytane przez osoby trzecie zanim dotrą do adresata. Dlatego też chciałbym zachęcić czytelników, do szyfrowania poczty, co też tutaj poniżej przedstawię wykorzystując do tego celu najpopularniejsze obecnie uniksowe oprogramowanie do kryptografii GnuPG.

GPG jest wolnym zamiennikiem oprogramowania kryptograficznego PGP. Udostępnionym na licencji GPL.
Istnieją różnorodne nakładki udostępniające interfejs graficzny (GnuPG jest zintegrowane z KMail i Evolution, domyślnymi klientami pocztowymi środowisk KDE i GNOME, natomiast program enigmail pozwala na zastosowanie GPG w Mozilli).

W niniejszym wpisie, skupię się na opisie działania programu korzystając z linii poleceń.

Na czym polega szyfrowanie poczty?

Metoda GPG polega, na utworzeniu niepowtarzalnej pary dwóch kluczy. Jednym z kluczy, jest klucz publiczny, będzie on rozsyłany do wszystkich znajomych, może również zostać umieszczony na stronie www utworzonej przez użytkownika, lub w specjalnie przygotowanym do tego serwisie, takim jak np. http://wwwkeys.pgp.net, w którym sam osobiście trzymam swój klucz publiczny. Drugim klucz prywatny, który powinien być trzymany w bezpiecznym miejscu. Ponieważ każda informacja, która została zaszyfrowana przy użyciu klucza publicznego, może być rozszyfrowane jedynie poprzez użycie klucza prywatnego. Gdy użytkownik wysyła wiadomość, szyfruje ją kluczem publicznym odbiorcy. Odbiorca otrzymując wiadomość rozszyfrowuje ją swoim kluczem prywatnym. Jeśli ktoś przechwyci zaszyfrowaną wiadomość, nie będzie mógł jej przeczytać, ponieważ nie posiada klucza prywatnego odbiorcy.GPG jest w większości dystrybucji Linuxa, lecz jeśli użytkownik nie posiada GPG lub chciałby pobrać najnowszą wersję, może to zrobić korzystając np. z: GnuPG

Obecnie najnowszą wersją jest: gnupg-2.0.3.tar.bz2

Zaczynamy.

Archiwum pobieramy na dysk twardy, następnie rozpakowujemy.
Uruchamiamy terminal i wpisujemy:

tar xvjf gnupg-2.0.3.tar.bz2

Po rozpakowaniu, przechodzimy do katalogu który zostanie utworzony i wydajemy polecenia:

$ ./configure // uruchamiamy skrypt konfiguracyjny
$ make // kompilujemy całość
# make install // jako root, instalujemy w systemie

Aby móc korzystać, z zaszyfrowanej poczty elektronicznej, należy utworzyć parę kluczy dla każdego używanego konta pocztowego. Wydajemy w terminalu polecenie:

gpg --gen-key

// W konsoli pojawia się następujący tekst:
gpg (GnuPG) 1.4.6; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
gpg: keyring `/home/cordial/.gnupg/secring.gpg’ created
Please select what kind of key you want:
(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection?1

Program prosi o wybranie, jaki rodzaj klucza chcemy utworzyć?
Wybieramy 1. Dlatego że, pozostałe klucze jedynie podpisują wiadomości, bez szyfrowania ich zawartości.

DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? 2048

W następnym kroku jesteśmy pytani, jaki rozmiar klucza chcemy?
Ja wybrałem 2048, aczkolwiek domyślna wartość 1024 bits powinna wystarczyć. Należy tutaj pamiętać iż im dłuższy klucz, tym czas procesora potrzebny na wygenerowanie początkowych kluczy, jest dłuższy. Podobnie jest przy późniejszym podpisywaniu oraz szyfrowaniu naszych wiadomości, im dłuższy klucz, tym więcej czasu jest potrzebne na wykonanie niezbędnych operacji arytmetycznych.

Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 0

Teraz jesteśmy pytani, jak długo klucz powinien być ważny? Wybrałem 0, co znaczy że klucz nie traci swojej ważności. Wybierając np. 1y, należy pamiętać że, po roku klucz przestanie być ważny, oraz że po jego wygaśnięciu ten klucz będą mieli nadal nasi znajomi. Co może w przyszłości generować pewne problemy.

Key does not expire at all
Is this correct? (y/N) y

W następnym kroku potwierdzamy.

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
“Heinrich Heine (Der Dichter) “

Następnie podajemy dane.

Real name: Cordial
Email address: cordial01 [at] gmail [dot] com
Comment:
You selected this USER-ID:
Cordial cordial01 [at] gmail [dot] com

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

Jeżeli dane zostały wprowadzone poprawnie, akceptujemy.

You need a Passphrase to protect your secret key.
Enter passphrase:

Teraz należy wpisać frazę kodującą, która ma zabezpieczyć nasz klucz prywatny. Należy tutaj zwrócić uwagę, iż nie ma być to “hasło” a fraza, która jest zwykle całym zdaniem np. “Uwielbiam pisać na blogu porywające wpisy.”
Pamiętajmy że później będziemy wielokrotnie proszeni o ponownie wpisane tej frazy, należy ją zapamiętać.

public and secret key created and signed.
pub 1024D/923C7922 2007-07-15
uid Cordial cordial01 [at] @gmail [dot] com

W tej chwili, możemy sobie pogratulować, nasz klucz publiczny, oraz prywatny został utworzony, należy też zwrócić uwagę na drugą linijkę, zawiera ona informację o naszym public ID w moim przypadku jest to:

923C7922

Będziemy później to ID wykorzystywali, przy okazji eksportu naszego klucza publicznego na specjalny serwer.

Poniższym poleceniem, zapiszemy w bieżącym katalogu, w pliku key.gpg, swój klucz publiczny, podając własny adres e-mail. Opcja –armor powoduje, że zostanie on zapisany w kodzie ASCII (domyślnie jest on zapisywany w postaci binarnej). Uzyskany w ten sposób klucz możemy teraz publicznie udostępnić np. umieszczając go na naszej stronie internetowej, blogu.
gpg --output key.gpg --armor --export cordial01 [at] gmail [dot] com

Następnie:
ls -l
-rw-r--r-- 1 cordial cordial 1678 2007-07-16 00:14 key.gpg

oraz:
vim key.gpg

Jeśli ktoś z was będzie chciał mi coś przesłać, sekretnie.

—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: GnuPG v1.4.6 (GNU/Linux)

mQGiBEaalvIRBADMQf6fen7J4JvD10Jt/MGHpEITNhMX+1UeW76SvnyMPWsw87sr
CUoa0hBav5Ck9QTq+/5+OsGeJN6JI83riD3JqvHtyX8ULGPsvVrbyuTpsKabKh3k
uj75Gxhz1BIuBjMyN6JbzDGdlTjaRe4fsyK24KzNgpz44Iu0G5oA4Qx7RwCg98kp
T0Onemev2kJlexZ6Ya9B0eUD/1TIJCSVWAhkwTPWWEosOOZagnuGerTkse/jRODp
TnZMX2Ft6fBrXUWfU0WSqTCjLPvAuusx359h+I+CF/lY78CbP269S8JTzHNeCTIe
qmEqz/AGBQWkimuRzVkKl7jvvV4/U3Esy9X4iQCGebysyDJ/Cu0OI4XNJbExyPaV
EDPeA/0dO1gDEw5hAf83hQtEMxx60Prk6hmJz9dMUgPpLIs/JMSHfdk63MlJiyeh
FJ9x9TKGMcvVteDbaW3eFPoYEbxjgl9iJlnsYbFhv3xUg5pMiojW2lWOYXCxwE2V
8fPAVQfYL7+opbL/j0KpiovcUnl7obcBxecH0sWPAE8Y9xL3HbQdQ29yZGlhbCA8
Y29yZGlhbDAxQGdtYWlsLmNvbT6IYAQTEQIAIAUCRpqW8gIbAwYLCQgHAwIEFQII
AwQWAgMBAh4BAheAAAoJECsAIluSPHkiSykAoMhJEPHOCqHaDgFZ6+IEIgxkGsfK
AJ48ppbb5jxee+ZoP4FiXNpYAm/PtLkCDQRGmpb7EAgAwazcgZ5gOMV0HRmW6HdX
lSN0god+ssPMPi+5RAvnuQ26hJm2oLOGLZaDZAwANYi2AoJ0gNTeTLObXLe4JNIO
mHuzi3HBLrDAWkkWOhxZLcGy/VIZ1TJJgfe3JLcuyUiM7ptEv20sW0XRLoLVYeFt
idhGj/HN8Nge469NsqiK6ewicmX4ggHqfgTDgOUC2y0NTfdo1VQRLvZ2MPKumqbJ
SjKiwWfvvoQ3ugZe8YdULKRHpcqJUr2ZjIsokH5i21XWmutIH1bMfmQ6TCfM9So7
qp6iXBgUHqxNblYmrD1BSh9VGuW9HWj1cX4/l8bjsXEw9uFKahy7KhHDdxixqH29
xwADBQf+NE1yMpLFiAeoDQp2+7Gn66IVlv85+AX/drvk680cTeTnwrLWi5pBC0In
GmF5vH65tOHHuWHCZ1vAbQXsFyYbucOh9SlO1rqS4pEjg8Rzeg6pe2Mt/VhD8Ndn
9o06zOEst0bnfi0CEt1pH6U0hg9cQZSiX1KGEBXLOZJw82RPi0hTtvgNpBmnXUdD
f3zKK9cIA/18qJm6vfjpM1hH7LLBm7paqDIrH9w+CwDAxRsn0Y2L4eSlIWbUMaY6
qde30/fmIbVQA0XFYNKxsthzwaMKRm0kxEM1PoYPktYMHvGwxKorGc8TsqYEmq3N
Veqxxp58Kugg2RTU+kxYOJHbM179xIhJBBgRAgAJBQJGmpb7AhsMAAoJECsAIluS
PHki5rsAn3pWYanPM6t3szOm83COmjvO5G1uAJ0eTw56NLVWSvq26YwxFAIXKbfB
pA==
=Ib9J
—–END PGP PUBLIC KEY BLOCK—–

Jak wysłać klucz publiczny na serwer?

gpg --keyserver wwwkeys.pgp.net --send-key 923C7922

Opcja --keyserver wskazuje serwer, na którym umieścimy nasz klucz, ja wybrałem wwwkeys.pgp.net. Większość serwerów publicznych, to maszyny odpowiednio ze sobą zsynchronizowane, tak więc nie ma potrzeby wysyłania swojego klucza na więcej niż jeden serwer.
Opcja --send-key pozwala nam na wyeksportowanie ID naszego klucza na serwer, w moim przypadku, jest to: 923C7922.

Dzięki temu, nasz znajomy będzie mógł sobie pobrać, nasz klucz publiczny z serwera, co też zresztą zostanie ukazane w poniższym przykładzie.

Jak pobrać klucz publiczny z serwera?

Załóżmy że nasz kolega, nazywa się Jan Kowalski. Jan korzystając z powyższego opisu, wyeksportował sobie swój klucz publiczny na serwer. Teraz prosimy go aby, podał nam ID swojego klucza. W moim przykładzie Jan napisał mi na gg: 5E68ACFA.Znając ID klucza Jana, możemy pobrać sobie z serwera jego klucz publiczny.

gpg --keyserver wwwkeys.pgp.net --recv-keys 5E68ACFA

gpg: requesting key 5E68ACFA from hkp server wwwkeys.pgp.net
gpg: key 5E68ACFA: public key “Jan Kowalski ” imported
gpg: Total number processed: 1
gpg: imported: 1

W jaki sposób wyświetlić listę kluczy?

Wszystkie klucze publiczne, które znajdują się w naszej bazie danych oraz ich ID możemy w każdej chwili sprawdzić za pomocą polecenia:

gpg --list-keys

pub 1024D/923C7922 2007-07-15
uid Cordial cordial01 [at] gmail [dot] com

pub 1024D/5E68ACFA 2007-06-30 [expires: 2008-06-29]
uid Jan Kowalski jan.kowalski [at] interia [dot] pl

Jak sprawdzić autentyczność klucza?

Dla upewnienia się, że klucz który znajduje się w naszej bazie jest autentyczny, wykonujemy następującą komendę:

gpg --fingerprint jan.kowalski [at] interia [dot] pl

pub 1024D/5E68ACFA 2007-06-30 [expires: 2008-06-29]
Key fingerprint = BB3F 4797 20G0 B94E 4C1D 8964 578A 0A6D 5E68 ACFA
uid jan.kowalski
sub 1024g/461465F0 2007-06-30 [expires: 2008-06-29]

Następnie rozmawiając z Janem Kowalskim osobiście, czy też np. telefoniczne proszę go o potwierdzenie “key fingerprint”.
Gdy wszystko się zgadza, możemy podpisać klucz:

gpg --sign-key jan.kowalski [at] interia [dot] pl

pub 1024D/5E68ACFA created: 2007-06-30 expires: 2008-06-29 usage: SC
trust: unknown validity: unknown
sub 1024g/461465F0 created: 2007-06-30 expires: 2008-06-29 usage: E
[ unknown] (1). Jan Kowalski
pub 1024D/5E68ACFA created: 2007-06-30 expires: 2008-06-29 usage: SC
trust: unknown validity: unknown
Primary key fingerprint: BB3F 4797 20G0 B94E 4C1D 8964 578A 0A6D 5E68 ACFA
Jan Kowalski
This key is due to expire on 2008-06-29.
Are you sure that you want to sign this key with your
key “Cordial ” (923C7922)
Really sign? (y/N) y

Jesteśmy pytani, czy napewno podpisać, potwierdzamy.

You need a passphrase to unlock the secret key for
user: “Cordial cordial01 [at] gmail [dot] com”

Wpisujemy dla potwierdzenia podaną uprzednio frazę.

Jak zaszyfrować wiadomość?

gpg --encrypt --sign --armor --recipient jan.kowalski [at] interia [dot] pl ./nasza_wiadomosc

W tym przykładzie nazwą pliku jest “nasza_wiadomosc”. Teraz w naszym bieżącym katalogu powinien pojawić się zaszyfrowany plik nasza_wiadmomosc.asc

ls -l
nasza_wiadomosc.asc

Teraz wysyłamy do Jana Kowalskiego, zaszyfrowany plik nasza_wiadomosc.asc. Jan Kowalski może rozszyfrować, wiadomość od nas wydając polecenie:

gpg --output nazwa_pliku --decrypt ./nasza_wiadomosc.asc

Pisząc niniejsze howto, korzystałem z:

man gpg,
Książek: “100 sposóbów na Linux” i “Sieci Komputerowe” A.S. Tanenbaum,
Stron WWW: 7thguard.net, Architektura klucza publicznego w GPG
oraz Wikipedia, GPG

Na koniec, podziękowania dla Xemiego, który robił tutaj za Jana Kowalskiego.

Miłego szyfrowania.
Pozdr.

No to zaczynamy, na początek postanowiłem napisać o iptables.
Docelowo ten wpis, ma pomóc w zrozumieniu podstaw działania tego filtra pakietów. Piszę to howto, z myślą o kilku znajomych osobach, które mnie o to poprosiły. Część z tych osób musi oddać na uczelnię projekt, przedstawiający podstawową konfigurację firwalla w oparciu o iptables, pozostali na co dzień używają Linuksa. Być może wpis ten, przyda się również innym początkującym użytkownikom Linuksa, dlatego też zdecydowałem się zmieścić go na blogu.

Podstawowa konfiguracja firewalla, na przykładzie iptables w systemie Debian GNU/Linux.

Ludzie często sądzą, że firewall zapewnia pełną ochronę. Są w błędzie. W większości przypadków źle skonfigurowany firewall zapewnia mniej ochrony niż nie posiadanie firewalla w ogóle. Ponadto każdy firewall należy traktować jak zwykły, podatny na błędy program.
Należy zatem poważnie przemyśleć jego używanie i dokładnie sprawdzić czy jest nam potrzebny. Należy również spisać dokładnie jakiego typu ma to być firewall, określić reguły jego działania oraz użytkowników jacy będą z niego korzystać. 1

Autor tego howto, nie bierze odpowiedzialności, za skorzystanie z poniżej zaprezentowanego skryptu. Pamiętaj że robisz to na własną odpowiedzialność.

Iptables jest filtrem pakietów (głównie używanym jako firewall bądź router) dla systemu operacyjnego GNU/Linux.2

Co to jest filtr pakietów?

Filtr pakietów, to oprogramowanie, które sprawdza nagłówki pakietów w trakcie przechodzenia przez maszynę i decyduje o tym czy pakiet zostanie “upuszczony na podłogę” (ang. DROP), zaakceptowany (ang, ACCEPT), czy też odrzucony (REJECT). Gdy pakiet zostaje odrzucony, zostaje on odesłany z powrotem do źródła, powiadamiając o tym nadawcę.

Dlaczego warto filtrować pakiety?

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

O co w tym chodzi?

Kernel rozpoczyna pracę z trzema listami reguł w tabeli filtrującej. INPUT – opisuje działania dla pakietów przychodzących, OUTPUT – dla wychodzących i FORWARD (ang. przekazywanie) – dla pakietów przechodzących pomiędzy kilkoma interfejsami.

Każda reguła mówi, jeśli nagłówek pakietu wygląda tak, to zrobimy z tym pakietem następującą rzecz. Jeśli reguła nie pasuje do pakietu, sprawdzana jest następna. Na koniec, jeśli nie ma więcej reguł, kernel sprawdza politykę (ang. policy) danego łańcucha (listy reguł). W systemie w którym dba się o bezpieczeństwo, polityka mówi zwykle kernelowi by odrzucał (DROP) pakiet.

  1. Gdy pakiet dociera do maszyny (np. przez kartę Ethernetową), kernel sprawdza najpierw adres przeznaczenia pakietu (operację tą nazywamy routingiem.)
  2. Jeśli pakiet przeznaczony jest do tego komputera, zostaje przepuszczony do łańcucha INPUT. Jeżeli zostanie zaakceptowany, otrzyma go proces do którego był adresowany.
  3. W innym przypadku, jeśli kernel nie ma włączonego przekazywania, lub nie wie jak przekazać pakiet, jest on odrzucany. Natomiast jeśli przekazywanie jest włączone i pakiet jest przeznaczony do innego interfejsu sieciowego (jeśli w ogóle masz jeszcze jeden), pakiet przechodzi do łańcucha FORWARD. Jeśli zostaje zaakceptowany, zostanie wysłany dalej.
  4. Na koniec, program pracujący na tym komputerze może również wysyłać własne pakiety. Przejdą one od razu do łańcucha OUTPUT, jeśli stwierdzi on że zaakceptuje pakiet, przechodzi on do właściwego interfejsu sieciowego. 3

Tworzymy podstawowy skrypt firewalla.

Uruchamiamy terminal.
Sprawdzamy czy mamy ip tables zainstalowane w systemie, wpisując polecenie:

dpkg -l iptables

Jeśli w naszym systemie brakuje iptables, przechodzimy na konto administratora (root) Kod: su
Następnie instalujemy, iptables wpisując poniższe polecenie:

aptitude update && aptitude install iptables

Wszystkie poniższe polecenia, należy wykonywać jako root.

Aby sprawdzić, jakie są ustawione domyślne reguły w systemie, wpisujemy:

iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Jak widzimy powyżej, domyślnym ustawieniem firewalla w Debianie Etch jest polityka akceptowania wszystkich pakietów przychodzących, forwardowanych (routowanych) oraz wychodzących. Aby zmienić ten stan rzeczy, stwórzmy teraz, podstawowy skrypt:

touch /etc/init.d/firewall && chmod +x /etc/init.d/firewall && pico /etc/init.d/firewall

Powyższe polecenie tworzy w podanej ścieżce plik firewall, nadaje mu prawo do wykonywania, oraz zostaje on otworzony w prostym edytorze pico.

Teraz grzecznie przepiszmy poniższy kod:

iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

Zapiszmy zmiany, oraz sprawmy aby nasz firewall uruchamiał się od razu po inicjalizacji kernela.

update-rc.d firewall defaults 90

Teraz omówimy sobie powyższy skrypt.
//*************************************************************
Poniższe polecenia oczyszczają tablicę, z poprzednio wpisanych reguł.

Opcja (-F) usuwa wszystkie reguły z łańcucha, natomiast (-X) usuwa wszystkie dowiązania do innych tablic, utworzone przez użytkownika.

iptables -F
iptables -X

//*************************************************************
Poniższe komendy, domyślnie blokują wszystkie przychodzące, przechodzące pakiety które nie zaznaczymy jako pożądane, oraz akceptują wychodzące pakiety.

Komenda -P [łańcuch] [polityka] – ustawia domyślną politykę w danym łańcuchu.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

//*************************************************************
Podstawowe wyjątki w łańcuchu INPUT.

IP tables pozwala nam na sprawdzenie stanów połączeń, np. czy jest to nowepołączenie, istniejące czy może połączenie powiązane z już istniejącym? Poprzez poniższe polecenie, pozwalamy na wszystkie istniejące już połączenia, oraz połączenia które są powiązane z istniejącymi już połączeniami.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

//*************************************************************
Następna reguła, dopuszcza przychodzące lokalne pakiety. W poniższym poleceniu widzimy „lo”. Lo to skrót który w Linuksie oraz Uniksach, przypisywany jest do narzędzia która nazywa się pętla zwrotna (ang. loopback) jej adres to 127.0.0.1, posiadasz go nawet wtedy gdy nie masz żadnego połączenia sieciowego. Kiedy korzystamy z loopback? Gdy uzyskujemy dostęp do lokalnych serwisów, jak np. przeglądanie swojego własnego serwera. Czyli jeśli chcemy mieć dostęp do swoich własnych usług, (do których zazwyczaj chcemy mieć dostęp) musimy dodać regułę „trusts” do urządzenia loopback.

-A [łańcuch] [reguła] – dodaje nową regułę do łańcucha. W naszym przypadku dodajemy nową regułę do łańcucha INPUT.
-i [interfejs] – sprawia że, dana reguła dotyczy tylko pakietów przychodzących z danego interfejsu. Interfejs to fizyczne urządzenie do którego pakiety przychodzą (-i) i z którego wychodzą (-o). Należy zwrócić uwagę że, pakiety które podróżują w łańcuchu INPUT, nie mają interfejsu wyjściowego, tylko wejściowy.

iptables -A INPUT -i lo -j ACCEPT

//*************************************************************
Powyższy kod, służy do ustawienia dość mocnej zapory, która pewnie niektórym użytkownikom będzie odpowiadać. Jednakże, zapewne wielu z was, korzysta z dodatkowych usług, takich jak sieci p2p, czy też np. mysql. Aby móc nadal wykorzystywać te i inne usługi, musimy rozbudować ten skrypt.

Zezwalamy na dostęp.

Najbardziej użyteczne według mnie są dwa sposoby:

	1. Podanie adresu IP ( "-s" opcje)
	2. Podanie portu ("--dport" opcje)

Gdy chcę, aby wszyscy użytkownicy sieci, mieli dostęp do mojego serwera (port 80, TCP) piszę następującą regułkę:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Jeśli chcę otworzyć port 22 (obsługa zdalnych bezpiecznych połączeń ssh) piszę:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Natomiast jeśli chcę, żeby port 22, był otwarty tylko dla wybranego numeru IP piszę:

iptables -A INPUT -p tcp -s (adres_ip) -j ACCEPT

Natomiast Bittorent, wykorzystuje zarówno tcp jak i udp.
Zatem nasze regułka będzie wyglądała następująco: (stosuje założenie, że potrzebne porty które powinny być otwarte będą z przedziału 10000 – 10020)

iptables -A INPUT -p tcp --dport 10000:10020 -j ACCEPT
iptables -A INPUT -p udp --dport 10000:10020 -j ACCEPT

Uruchamianie zapory siecowej.

/etc/init.d/firewall

Po wykonaniu powyższego polecenia, zapora będzie aktywna. Natomiast wyniki naszej pracy możemy obejrzeć, korzystając z polecenia:

iptables -L -n --line-numbers

Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT 0 — 0.0.0.0/0 0.0.0.0/0
2 ACCEPT 0 — 0.0.0.0/0 0.0.0.0/0 state RELATED, ESTABLISHED
3 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
4 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
5 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpts:10000 :10020
6 ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp dpts:10000 :10020
Chain FORWARD (policy DROP)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Pisząc to howto korzystałem z:

  1. Dokumentacji Gentoo
  2. Wikipedii
  3. HOWTO Rusty Russella

Warto również zapoznać się z:

man iptables
Netfilter FAQ
Iptables Tutorial 1.2.2
ROPE – IpTables Scripting Language

Powyższe howto, jest pierwszym jakie napisałem, z czasem będzie ono ulepszane.

Pozdrawiam.

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.