FAQ NND edycja 09.02.2005
1. Sekcja "About"
1.1 Co jest NND
1.2 Skąd pobrać NND w sieci ?
1.3 Do czego może mi się przydać NND ?
1.4 Z czym się to je
1.5 Skład chemiczny obecnie
1.6 Samodzielna rozbudowa
2. Sekcja podstawowych pytań początkujących2.1 Jak zainstalować NND ?
2.2 Jak skonfigurować podstawy, abym mógł już udostępniać internet ?
2.3 Piszecie edytować coś, jakiś plik itd. Jak się to robi, i jak znaleźć plik ?
2.4 Jak skonfigurować automatyczne przydzielanie adresów IP przez serwer komputerom w sieci ?
2.5 Jak rozszerzyć możliwości mojego systemu NND (instalacja pakietów) ?
2.6 Pacman tu, pacman tam. Czym jest ten Pacman ?
2.7 Skąd mogę wiedzieć jakie pakiety są dostępne ?
2.8 Jakie pakiety mam zainstalowane i w jakich wersjach ?
2.9 Mogę zainstalować pakiet z dysku ?
2.10 Jak wyinstalować pakiet ?
2.11 Jak zaktualizować NND do najnowszej wersji ?
3. Sekcja kłopoty z instalacją systemu3.1 System zainstalował się dobrze, ale nie chce się uruchomić. Po restarcie komputera wypisuje mi jakieś 10 linii dziewiątek (99999999, po czym wyskakuje komunikat: Press a key to reboot. Jak robię "press a key", to sytuacja się powtarza. Co to może być ?
3.2 Jak sprawdzić czy mam dobrą kopię (obraz) NND ?
3.3 Kłopoty z partycjami, z systemem plików
4. Sekcja "administrator pół-zaawansowany"4.1 Klient suszy mi głowę o High ID w swoim programie p2p (wszyscy wiemy jaki to 
4.2 Jak zapobiec podłączeniu nielegalnych komputerów, podszywaniu się pod kogoś innego ?
4.3 Ogłoszenie o zablokowaniu internetu, w związku z zaleganiem
Jakie rozwiązanie dla NND ?.
1. Sekcja "About"
1.1 Co jest NND ?
NND Linux Router jest projektem dystrybucji linuksowej dedykowanym do pełnienia roli routera i serwera dla małych sieci szkolnych, firmowych, czy osiedlowych. Może pracować na starszych i mniej wydajnych komputerach. Zaletą w stosunku do pełnych dystrybucji ma być łatwiejsza konfiguracja, a także specjalnie przygotowane pakiety z bezpiecznym oprogramowaniem.
1.2 Skąd pobrać NND w sieci ?
http://nnd.freesco.pl/download.php
http://www.hustons.homechoice.co.uk/nnd/
1.3 Do czego może mi się przydać NND ?
Prosty, bezpieczny, funkcjonalny, stabilny, nowoczesny, nie zajmujący czasu, nie wymagający zaawansowanej wiedzy na temat linuxa, rozwojowy, edukacyjny, darmowy system linuksowy na router/serwer. Niepotrzebne skreślić
1.4 Z czym się to je
System jest przygotowany dla komputerów z procesorem klasy Pentium i nowszych, zatem nie będzie już działał z procesorami typu 386 i 486. Stało się tak dlatego, że od 2001 roku zmieniło się znaczenie określenia "stary komputer". Komputer z NND będzie potrzebował minimum 32 MB RAM do instalacji, choć podczas pracy poradzi sobie także z 24 MB. Pamięć jest jednak ważna. Uruchomienie wielu funkcji będzie obciążać pamięć właśnie. Jeden z pierwszych serwerów testowych to P 166 z 64 MB RAM i na nim uruchomionych jest wiele usług, z którymi ten sprzęt z powodzeniem daje sobie radę. Czysty system po instalacji zajmuje około 100 MB miejsca na dysku, przewidując dodatkowe aplikacje, należy na partycję (partycje) z systemem przeznaczyć około 500 MB.
1.5 Skład chemiczny obecnie
Prosty instalator w języku polskim, konfigurator "za rączkę" w języku polskim (konfiguracja maskarady, kart sieciowych, metody dostępu, adresów IP, podsieci), jądro z serii 2.4.XX. (aktualnie 2.4.28), wsparcie dla większości najpopularniejszych metod stałego dostępu do internetu w Polsce (SDI, DSL, NEO), obsługa sieci bezprzewodowych, urządzeń (modemów) USB, DHCP - czyli statyczne lub dynamiczne przydzielanie IP. Wbudowany Firewall (iptables). Wbudowany serwer WWW (thttpd).
1.6 Samodzielna rozbudowa
Za pomocą managera pakietów i zależności - Pacman. M.in. Dynamiczny podział przepustowości - pakiet niceshaper, konfigurator HTB (na razie nie doszlifowany). Poczta - pakiety exim, tpop3d, teapop, procmail, fetchmail. Serwowanie FTP - pakiet proftpd. Serwowanie WWW - apache, thttpd (instalacja wraz z systemem). Serwer nazw (DNS) - bind. Proxy serwer - squid. Serwer plików - samba. Antywirus (także dla poczty - exim'a) clamav. Statystyki -MRTG. Bazy danych - pakiet mysql. Oprócz tego wiele innych nie wymienionych narzędzi. Oraz cały czas powstające nowe, mniejsze i większe opracowania. <raadaar>
2. Sekcja podstawowych pytań początkujących
2.1 Jak zainstalować NND ?
Należy ściągnąć najnowsze ISO z witryny. Wypalić na płytę. Wystartować z tej płyty komputer (można z dyskietki). Dalej postępować stosownie do poleceń instalatora. Szegółowy opis w dokumencie XXX i na witrynie
www.nnd.freesco.pl. Po instalacji i konfiguracji połączenia (
net_conf) należy wykonać polecenie
pacman -Suy celem aktualizacji. <raadaar>
2.2 Jak skonfigurować podstawy, abym mógł już udostępniać internet ?
Po instalacji wpisujemy polecenie
net_conf. Jest to prosty i przejrzysty konfigurator systemu w języku polskim. Działa w trybie tekstowym, z okienkami. Konfiguracja polega na wybieraniu z klawiatury (tab, spacja, enter i oczywiście strzałki) odpowiednich pozycji (np. rodzaj podłączenia do inetu, model karty sieciowej, ilość podsieci, adresy IP) i odpowiadaniu na pytania. Po skonfigurowaniu można edytować główny plik konfiguracji systemu
rc.conf w katalogu
/etc (opisy po polsku). Po restarcie (polecenie
reboot) powinniśmy już mieć internet na kompach klienckich. Adresy (i nazwy) komputerów klienckich znajdują się w pliku
/etc/hosts. Firewall nie wymaga konfiguracji wstępniej. Można go jednak konfigurować edytując plik
firewall w katalogu
/etc/iptables (komentarze po polsku). Jeżeli nie chcemy biegać po użytkownikach i konfigurować im komputerów, wygodnie będzie użyć DHCP, opis poniżej. <raadaar>
2.3 Piszecie edytować coś, jakiś plik itd. Jak się to robi, i jak znaleźć plik ?
Można to robić ręcznie, zostać guru klawiatury, pamietać długie linijki poleceń itd (patrz -> man bash). Jednak znacznie łatwiej i przyjemniej użyć manadżera plików Midnight Commander (instalowany wraz z systemem). Polecenie
mc w konsoli. Edycja klawisz F4, poruszamy się strzałkami i enterem. Przełaczmy okna tab'em, ctrl-o przeście do konsoli. <raadaar>
2.4 Jak skonfigurować automatyczne przydzielanie adresów IP przez serwer komputerom w sieci ?
Służy do tego DHCP (instalacja wraz z systemem). Konfiguracje dhcpd podajemy już podczas głównej konfiguracji sieci przy pomocy
net_conf. Aby przypisać na stałe adresy IP do komputerów na podstawie adresów MAC (unikalny adres kart sieciowej) należy edytować plik
/etc/dhcp.conf (komentarze w nim w języku polskim). Dla każdego komputera trzeba stworzyć osobną sekcję (poniżej wpisów które się w dhcp.conf już znajdują) wg poniższego przykładu:
host burak {
hardware ethernet 00:30:4F:29:A7:F3;
fixed-address 192.168.0.2;
}
Pierwsza linijka to nazwa komputera (burak). W drugiej linijce adres MAC, w kolejnej adres IP. Ostatnia to dziwny nawias

. Pamiętać o średnikach na końcu drugiej i trzeciej linijki !. W przypadku korzystania z obu metod przydzielania IP, statycznej (opis powyżej) i dynamicznej (pierwszy wolny IP dla komputera włączającego się do sieci), nie należy mieszać zakresów adresów. Te które mamy przydzielone na stałe nie mogą powtarzać się w puli adresów dynamicznych. <raadaar>
2.5 Jak rozszerzyć możliwości mojego systemu NND ?Poprzez instalację pakietów. Można to zrobić dwojako. Z konsoli, poprzez komendę
pacman -S nazwa_pakietu. Lub z użyciem narzędzia
nndpkg. Generelnie obie metody wykorzystują pacman'a. Instalacja sprawdzi nam wszystkie zależności, co do czego jest jeszcze potrzebne, i w razie potrzeby doinstaluje rzeczy które są wymagane do pracy pakietu. Aby przygotować do pracy zainstalowany pakiet należy po instalacji edytować jego pliki konfiguracyjne. Nie zawsze jest to wymagane, ale czasem trzeba. W większości przypadków, programy przechowują swoje pliki konfiguracyjne w katalogu
/etc w podkatalogach z nazwą pakietu (np.
/etc/niceshaper/niceshaper.conf), w podkatalogach z nazwą usługi (np.
/etc/mail/exim.conf) lub w plikach w katalogu głównym
/etc (np.
/etc/tpop3d.conf). Oczywiście konfiguracja jest indywidualna dla każdego pakietu. Po konfiguracji należy się upewnić że pakiet w miarę potrzeby wystartuje wraz z systemem. Tutaj jest to prostsze, docelowo pakietu mają przy instalacji dodawać automatycznie wpis o uruchamianiu się do pliku
rc.conf. Obecnie jednak nie dotyczy to jeszcze wszystkich pakietów (a właściwie są one w zdecydowanej mniejszości), zatem należało by samodzielnie zadbać o dopisanie nazwy programu do
rc.conf w zmiennej
DAEMONS . Skąd będziemy wiedzieć co dopisać ? Trzeba by było zajrzeć do
/etc/rc.d/ (katalog ze skryptami startowymi) i zerknąć jak się nazywa plik danego programu. Są też przypadki, w których należy samodzielnie dopisać uruchomienie, w pliku
/etc/rc.d/rc.local (np. ARP). Mam nadzieję że autorzy pakietów zadbają o odpowiednia informację gdzie/jak edytować konfigurację oraz zapewnić uruchomienie przy starcie systemu. <raadaar>
2.6 Pacman tu, pacman tam. Czym jest ten Pacman ?Pacman to menadżer pakietów. Potrafi zainstalować, usunąć, zaktualizować pakiety NND. Pilnuje zależności pomiędzy pakietami. Pakiety można instalować z lokalnych lub zdalnych repozytoriów jak i z posiadanych na dysku pojedynczych plików. Wraz z Pacmanem dostajemy narzędzie
make_nnd_pkg, (lub
makepkg, ponieważ jest make_nnd_pkg jest symbolicznym linkiem do tego właśnie pliku) służące do budowy pakietów (prosimy o nie używanie nazwy
makepkg, ponieważ script zbuduje pakiet niezgodny z zalożeniami NND), gensync używany do generowania bazy pakietów, oraz kilka innych narzędzi które jeszcze nie zostały dostosowane do specyfiki NND. Najważniejsze zastosowania Pacmana poniżej. <Mis'>
2.7 Skąd mogę wiedzieć jakie pakiety są dostępne ?Można zerknąć na listę pakietów komendą
pacman -Si lub wygodniej
pacman -Si | more, gdzie spacją przesuwamy kolejne ekrany. Narzędzie
nndpkg ma listę wyboru pakietów. Warto zrobić uaktualnienie bazy pakietów przed listowaniem komendą
pacman -Sy. <raadaar na podst. dokum.>
2.8 Jakie pakiety mam zainstalowane i w jakich wersjach ?Listowanie pakietów w systemie
pacman -Q. Listowanie plików w pakiecie
pacman -Q l nazwa_pakietu. Informacja o wersji zainstalowanego pakietu :
pacman -Q nazwa_pakietu. Wyszukiwanie słowa w nazwach pakietów i ich opisach:
pacman -Ss szukane_słowo. Informacja o przynależności danego pliku do pakietu:
pacman -Qo /sciezka/plik <raadaar na podst. dokum.>
2.9 Mogę zainstalować pakiet z dysku ?Tak. Służy do tego polecenie
pacman -U /sciezka/plik <raadaar na podst. dokum.>
2.10 Jak wyinstalować pakiet ?Komendą
pacman -R nazwa_pakietu. Tym poleceniem usuniemy wszystkie pliki pakietu oprócz tych które kiedyś edytowaliśmy. Nie usunięte będą miały rozszerzenie
.pacsave. <raadaar na podst. dokum.>
2.11 Jak zaktualizować NND do najnowszej wersji ?Nie trzeba instalować od nowa wystarczy polecenie podawane wyżej
pacman -Sy. Najlepiej jednak aktualizować wszystko na raz, bazy pakietów i system. Polecenie
pacman -Suy zrobi to doskonale

<raadaar na podst. dokum.>
3. Sekcja kłopoty z instalacją systemu3.1 System zainstalował się dobrze, ale nie chce się uruchomić. Po restarcie komputera wypisuje mi jakieś 10 linii dziewiątek (99999999, po czym wyskakuje komunikat: Press a key to reboot. Jak robię "press a key", to sytuacja się powtarza. Co to może być?Należy zmienić w biosie dysk na normal (nie LBA i auto)
Sytuacja podobna może wystąpić również w sytuacji zmiany jądra, a także kilku innych przypadkach. Czasami jest to efekt zmiany dysku i przekopiowania systemu. Należy wówczas spróbować uruchomić komputer z płyty instalacyjnej i po zalogowaniu:
1) zamontować partycję (
mount /dev/hda1 /mnt),
2) wykonać polecenie chroot (
chroot /mnt),
3) przeładować lilo (lilo).
3.2 Jak sprawdzić czy mam dobrą kopię (obraz) NND ?Niektórzy mogą zapytać po co na downloadzie leży plik: nnd-linux-*.md5sum Jest to suma kontolna obrazu płyty ISO. Przed nagraniem ISO należy sprawdzić odpowiednim programem sumę kontrolną.
W Windows robimy to tak:1) Ściągamy plik md5sum.exe
2) Umieszczamy w c:\windows\command dla Windows 95/98/Me dla Windows NT/2000/XP zapisujemy w c:\winnt\system32
3) Otwieramy konsolę i w katalogu z plikiem uruchamiamy polecenie: md5sum -c plik.md5sum
4) Jeżeli jest poprawna nagrywamy jeżeli nie powinniśmy ściągnąć ISO jeszce raz. Można też skorzystać z programu AccuHash. Doskonale sprawdza się też program Total Commander (Windows Commander)
W systemach Linux:1) Sprawdzamy czy mam zainstalowany pakiet md5sum, jeżeli nie to go instalujemy odpowiednim narzędziem w zależności od dystrybucji.
2) W konsoli wchodzimy do katalogu z obrazem ISO i plikiem md5sum
3) Wpisujemy: md5sum -c plik.md5sum i czekamy na wynik
4) W razie problemów tu jest Manual czyli instrukacja obsługi.
<macieks>
3.3 Kłopoty z partycjami, z systemem plików (poprawione w nowszych wersjach)Podczas instalacji kilkakrotnie zdarzał sie błąd polegający na tym, że w przypadku wybrania tylko niektórych typowych partycji, instalator nie potrafił ich zamontować przed instalowaniem pakietów, co owocowało jedynie założeniem systemu plików. Były to przypadki na dyskach wielkości 2 - 20 giga i wyborze partycji
/home /usr /var. Byc może taki błąd wymaga pewnych rzadko zdarzających się okoliczności, jednak warto o nim wspomnieć. Radą na to jest ponowne założenie partycji.
4. Sekcja "administrator pół-zaawansowany"4.1 Klient suszy mi głowe o High ID w swoim programie p2p (wszyscy wiemy jaki to 
Należało by przekierować na jego adres IP dwa porty, jeden TCP i jeden UDP, które musi rzeczony klient wpisać do konfiguracji programu wszyscy_wiedzą_jakiego. Przekierować znaczy jakby "przerzucić" obsługę połaczeń na tych portach z serwera na konkretny komputer. Robimy to poleceniami:
iptables -I FORWARD -p tcp -d 192.168.0.5 --dport 4343 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 -s 0/0 -d 0/0 --dport 4343 -j DNAT --to 192.168.0.5
Oczywiście należy wziąść pod uwagę że adres IP 192.168.0.5 oraz port 4343 to tylko przykłady. Należy tutaj podstawić właściwe własnym potrzebom wartości, oraz w przypadku portu UDP zmienić z tcp na udp:
iptables -I FORWARD -p udp -d 192.168.0.5 --dport 4545 -j ACCEPT
iptables -t nat -A PREROUTING -p udp -i eth0 -s 0/0 -d 0/0 --dport 4545 -j DNAT --to 192.168.0.5
Konkretny port można przekierować tylko na jeden IP. Wpisanie powyższych komend w konsoli zaowocuje przekierowaniem tylko do momentu restartu serwera. Jak zrobić to na stałe ? Można zastosować polecenie
/etc/rc.d/iptables save, które wrzuci nam wszystkie bieżące reguły do pliku
/etc/iptables/iptables.rules i przy każdym starcie będą one z tego pliku przetwarzane. Jednak trzeba z tym uważać. Niektóre pakiety (np. MRTG) definiują swoje reguły iptables przy każdym starcie w pliku
/etc/rc.d/rc.mrtg. Teraz zapisując bieżace reguły do
iptables.rules w czasie pracy pakietu MRTG zapisują się też jego reguły. No i dochodzi do sytuacji kiedy przy starcie reguły pakietu MRTG są wykonywane podwójnie. Raz z
rc.mrtg, a drugi raz z
iptables.rules. Aby tego uniknąć trzeba przed wykonaniem iptables save, zatrzymać pakiet MRTG komendą
/etc/rc.d/rc.mrtg stop (tak ze dwa,trzy razy dla pewności, szczególnie jak wcześniej coś kombinowalismy z
iptables save). Po zapisaniu reguł można zrestartować iptables poleceniem
/etc/rc.d/iptables restart a następnie uruchomić MRTG komendą
/etc/rc.d/rc.mrtg start. Inną opcją jest dopisanie regułek przekierowania do firewall'a DOKOŃCZYĆ
<raadaar + forum>
4.2 Jak zapobiec podłączeniu nielegalnych komputerów, podszywaniu się pod kogoś innego.Można uzyć ARP. Trzeba utworzyć plik ethers w katalogu etc (
/etc/ethers), na przykład poprzez wydanie polecenia
pico /etc/ethers będąc oczywiście na koncie root. Znajdziemy się w edytorze w pliku ethers, gdzie trzeba stworzyć listę adresów IP komputerów dozwolonych, wraz z adresami MAC kart sieciowych tych komputerów. Ma to wygladać mniej więcej tak:
192.168.1.2 00:90:27:E6:52:E5
192.168.1.3 00:02:44:20:A9:75
192.168.1.4 00:10:5A:DE:98:69
192.168.1.5 0
192.168.1.6 0
Najpierw adres IP, następnie adres MAC i od nowej linii. Dozwolone małe i duże litery. Należy wpisać WSZYSTKIE adresy IP jakie używamy w naszej sieci. Dla adresów chwilowo nie używanych jako adres MAC mozna podać 0. Nie wpisywać adresu IP i MAC serwera. Kończąc za pomocą kombinacji ctrl-x oraz odpowiedzeniu "Y" na pytanie o zapisanie zmian, i po potwierdzeniu ścieżki enterem mamy zestawienie gotowe. Jak już to opanujemy, trzeba będzie jeszcze dopisać start ARP wraz ze startem systemu. W tym celu należy edytować plik
/etc/rc.d/rc.local i utworzyć tam sekcję startu ARP:
#Start ARP
if [ -x /sbin/arp ]; then
/sbin/arp -f
fi
Teraz po zrestartowaniu serwer powinien wpuszczać tylko komputery z prawidłową kombinacją IP - MAC. Ma to też inny aspekt, uzytkownik zmieniając kartę sieciową będzie musiał ją zarejestrować każdorazowo u administratora. Nie jest to metoda 100% skuteczna. Istnieją możliwości zmiany adresu MAC. Jednak primo jest to dość skomplikowane, sekundo trzeba znać adresy które serwer wpuszcza. Dodatkowo aby utrudnić życie złodziejom, można zapobiec prostemu podzieleniu łącza za naszym router'em, poprzez zmniejszenie wartości TTL dla pakietów danych wysyłanych do uzytkowników. Przykład dla jednego użytkownika:
iptables -t mangle -D POSTROUTING -d 192.168.0.2 -j TTL --ttl-set 1
Przykład dla całej sieci:
iptables -t mangle -A POSTROUTING -o eth1 -j TTL --ttl-set 1
Oczywiście adres IP i interfejs sieci lokalnej należy dopasować pod siebie. Dla przypomnienia w sieciach z zewnętrznym modemem podłaczanych za pomocą kabla sieciowego (skrętki), oraz w sieciach z dostępem poprzez ethernet, interfejs sieci lokalnej to eth1. Powyższe wpisy można dopisać do
/etc/rc.d/rc.local aby wykonywane były podczas startu systemu, lub po wpisaniu ich w konsoli, wykonać komendę
iptables save. Jednak lepszym rozwiązaniem jest nie korzystanie z komendy iptables save i tworzonego przez nią pliku
iptables.rules. Może to spowodować komplikacje i zaburzenia pracy firewall'a, MRTG, niceshaper'a i innych programów/skryptów z własnymi regułami iptables. Powyższa zmiana wartości TTL, także nie jest skuteczna w 100%. <raadaar + witryna NND +forum>
4.3 Ogłoszenie o zablokowaniu internetu, w związku z zaleganiem
Jakie rozwiązanie dla NND ?.Musimy mieć uruchomiony dodatkowy serwer http na jakimś ogólnie nie używanym porcie. Dla thttpd (domyślnie instalowany w NND) musimy edytować plik /etc/rc.d/ i odnaleźć linijkę:
[ -z "$PID" ] && /usr/sbin/thttpd -p 80 -u nobody -d /var/www -l /dev/null
I dodać poniżej niej podobną:
[ -z "$PID" ] && /usr/sbin/thttpd -p 81 -u nobody -d /var/www/ogloszenie -l /dev/null
Teraz thttpd uruchomi nam się dwa razy. Raz na porcie 80 z domyślnym katalogiem
/var/www i drugi raz na porcie 81 z katalogiem domyślnym
/var/www/ogloszenie. Jednak przed restartem trzeba utworzyć katalog ogloszenie w
/var/www/, gdyż w przeciwnym wypadku thttpd nie uruchomi się poprawnie i zobaczymy komunikat [
NIEUDANE]. Nie będę tutaj opisywał jak zrobić witrynę internetową, napiszę tylko że należy ją nazwać index.htm lub index.htmal i umieścić w nowostworzonym katalogu dla thttpd na porcie 81. Skupić się trzeba na regułach iptables:
iptables -A PREROUTING -t nat -s 192.168.0.3 -p tcp --dport 1:65535 -j DNAT --to- 192.168.0.1:81
Wiadomo że adresy IP to tylko przykład

. Powyższa regułka przekierowywuje cały ruch z komputera 192.168.0.3 na serwer, 192.168.0.1, na port 81 gdzie czyha już strona o treści właściwej. Usunięcie:
iptables -D PREROUTING -t nat -s 192.168.0.3 -p tcp --dport 1:65535 -j DNAT --to- 192.168.0.1:81
Tak samo jak w punkcie 4.2 i 4.3 aby zachować ten zapis po restarcie możemy użyć polecenia
/etc/rc.d/iptables save (spełniając pewne warunki) lub dodać to do pliku
/etc/rc.d/rc.local. Inną możliwością jest edycja pliku firewalla i dołożenie tego w odpowiednim miejscu, lecz nie polecam takiego rozwiąznia osobom które nie mają pojęcia co do czego tam służy. <raadaar + forum>