FAQ
From NndWiki
Sekcja "About"
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.
Skąd pobrać NND w sieci ?
http://nnd.freesco.pl/download.php
http://www.hustons.homechoice.co.uk/nnd/
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 skeślić Smile
Z czym się to je
System jest przygotowany dla komputerów z procesorem pentium, 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.
- uwaga od Michcio: Na mojej maszynie (P100, 32MB RAM, 1,2GB HDD, wersja nnd-linux-0.1-2005.01.22.iso podczas dodawania linkow do /dev zawsze raportuje, ze nie moze zaalokowac PAO i zabija instalator, wiec z tym 32MB do instalacji to u mnie jednak nie wystarcza
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.2Cool, 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).
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>
Sekcja kłopoty z instalacją systemu
System zainstalował się dobrze, ale nie chce się uruchomić
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).
System zainstalował się poprawnie, ale nie chce się uruchomić. Po restarcie i próbie wystartowania pojawia się tylko "LI". Rozwiązanie: Należy wyłączyć transfer w trybie 32bit (a także sprawdzić czy jest włączony tryb normal - nie LBA ani Auto j.w.) W tym przypadku reinstalacja LILO nie była konieczna. <MopIC>
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>
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.
Fdisk
Fdisk służy do dzielenia dysku na partycje. Najpierw opiszę opcje programu fdisk ,a nastepnie zajmiemy sie ich dzieleniem. Program fdisk uruchamia sie poleceniem fdisk /dev/urzadzenie przy czym urzadzeniem jest wasz dysk twardy. Dyski IDE sa oznaczone jaki hda (master),hdb (slave), natomiast SCSI to sda, sdb. Wiec aby zainstalowac linuxa na IDE na to fdisk /dec/hda.
-a ustawianie aktywnej partyji
-d usuwanie partycji
-l lista dystepnych typow partycji
-m jest to pomoc
-t zmiana typu partycji
-w zapisywanie zmian i wyjscie z fdiska
-q nie zapisanie zmian i wyjscie z fdiska
-p wyswietlenie aktualnych partycji
-n dodanie nowej parycji
Teraz zajmiemy sie partycjonowaniem dysku. Pierwsza sprawa jaka nalezalo by wiedziec to jak wyglada drzewo katalogow w systemie linux. Linuxa mozna zainstalowac na jednej partycji lecz jest to zle z kilku wzgledow. Po pierwsze w razie jakielkolwiek awarii tracimy wszystki dane z dysku. Kolejna sprawa jesli instalowany system ma dzialac jako server to aspekty bezpieczenstwa. Bezpiecznie jest podzielic dysk na podstawowe partycje z jakich sklada sie linux a wiec:
/ - katalog glowny
/home - katalog uzytkownikow
/usr/ - katalog w ktorym znajduje sie wiekszosc oprogramowania
/usr/local/ - katalog ktore sa w pewien sposob oddzielone od innych
/var/ - logi systemowe, niektore skrypty konfiguracyjne itp.
partycja wymiany czyli linux swap
/utilities - jest to partycja w ktorej bedziemy trzymac wlasne zrodla
dokumenty itp.
Wedlug mnie jest to dobre rozwiazanie w przypadku awarii nie tracimy wszystkiego ,a takze glowne katalogi odzielone sa od siebie.
Pierwszy podzial bedzie polegac na stworzeniu partycji na dysku jedynie dla systemu linux. A wiec nalezy stworzyc partycje
Urzadzenie ID SYSTEM
/dev/hda1 82 linux swap - 2x wiecej niz ramu
/dev/hda2 83 linux native - / 500MB
/dev/hda3 5 Extendet - calosc bo to rozszerzona
/dev/hda4 83 linux native - /home 1000MB
/dev/hda5 83 linux native - /usr/local - 1000MB
/dev/hda6 83 linux native - /usr - 1000MB
/dev/hda7 83 linux native - /utilities 5000M
Sa to przykladowe rozmiary parycji dla dysku podzielonego na jeden system operacyjny. Lilo w tym zainstalowany jest w /mbr a aktywna patycja to hda2
Kolejny podzial jest dla zainstalowanych dwoch systemow linux
/dev/hda1 83 linux swap - parycja wymiany
/dev/hda2 82 linux native - / glowny z pierwszego systemu
/dev/hda3 82 linux native - / glowny z drugiego systemu
/dev/hda4 5 Extendet - rozszerzona calosc
/dev/hda5 82 linux native - /home z pierwszego
/dev/hda6 82 linux native - /usr/local z pierwszego
/dev/hda7 82 linux native - /usr - z pierwszego
/dev/hda8 82 linux native - /home z drugiego
/dev/hda9 82 linux native - /usr/local z drugiego
/dev/hda10 82 linux native - /usr z drugiego
/dev/hda11 82 linux native - /utilities dla dwoch
Rozmiary partycji powinny byc przynajmnniej taki jak wyzej lecz jesli masz duzy dysk to dodac nic nie zaszkodzi
Trzeci podzial bedzie przedstawiac podzielenie dysku twardego na dwa systemy operacyjne na Linuxa i windowsa
/dev/hda1 83 linux swap - partycja wymiany
/dev/hda2 82 linux native - / glowny z linuxa
/dev/hda3 c win95(LBA) - c z windowsa
/dev/hda4 5 extendet - rozszerzona calosc
/dev/hda5 82 linux native - /home
/dev/hda6 82 linux native - /usr/local
/dev/hda7 82 linux native - /usr
/dev/hda8 82 linux native - /utilities
/dev/hda9 c win95(LBA) - partycja z windowa
To chyba tyle co do partycjonowania dysku twardego. Istnieja takze inne narzedzia do dzielenia dysku na partycje takie jak disk druid dostepny w wielu dystrybycjach. Mysle ze informacje zawarte co do partycjonowania sa wystarczajace do zainstalowania w wybrany sposob system, a reszte nauczysz sie sam...
<linux Newbe>--przemek_nnd 14:36, 1 maj 2005 (CEST)
Plik fstab
Instalując system Linuks musimy utworzyć dla naszego pingwina oddzielne partycje, aby mógł on się na nich rozwijać. Często po instalacji Linuksa nie zastanawiamy się jakie parametry mają ustawione nasze Linuksowe partycje. W tekście tym postaram się wam przybliżyć, co powinniśmy zrobić, aby ograniczyć dostęp do tych partycji zwykłym użytkownikom. Do dzieła!
Linuks instalując się na odpowiedniej partycji tworzy na niej odpowiedni system plików i ustala już na samym początku pewne parametry, które lekko oddziaływują na bezpieczeństwo systemu. Umieszczając drzewo katalogów na różnych partycjach, uzyskujemy nad nimi większą kontrolę. Dzieląc nasz dysk powinniśmy katalog /boot, /home, /var, /tmp umieścić na oddzielnych partycjach, co daję nam nad nimi większą kontrolę. Do partycjonowania dysków możemy użyć różnych programów. Mogą to być programy windowsowe (Partition Magic) jak i linuksowe (cfdisk lub fdisk). Towrząc partycje powinniśmy najpierw utworzyć partycje wymiany, Swap. (indetyfikator partycji: 82),a następnie tworzymy partycje główną root (indetyfikator: 83). A potem kolejną partycje na poszczególne katalogi (/boot, /home, /var, /tmp, /usr). Jeżeli nasz system jest serwerem to możemy utworzyć także inne partycje dla katalogów z aplikacjami udostępnianymi w sieci. Ważny jest także rozmiar każdej z partycji.
Np.: jeżeli w systemie zamierzmy mieć większą liczbę użytkowników to wielkość partycji z katalogiem /home powinna być odpowiedniej wielkości (dostosowana do odpowiedniej liczby użytkowników).
Ważny elementem przy zarządzaniem naszymi partycjami jest odpowiednia edycja pliku systemowego /etc/fstab (jest to plik przechowujący informację o ilości partycji na dysku oraz o parametrach jakie przyjmują dane partycje).
Poniżej przedstawię przykładowy wygląd pliku /etc/fstab:
/dev/hda1 swap swap defaults 0 0 /dev/hda2 / ext2 defaults 1 1 /dev/hda3 /boot ext2 defaults 1 1 /dev/hda5 /home ext2 defaults 1 1 /dev/hda6 /tmp ext2 defaults 1 1 /dev/hda7 /var ext2 defaults 1 1 /dev/hda8 /usr ext2 defaults 1 1
Pierwsza kolumna tego pliku określa jakie urządzenie ma zostać zamontowane po starcie systemu. Druga kolumna określa punkt montowania. Trzecia kolumna określa system plików jaki ma zostać zamontowany. Czwarta kolumna określa zakres dostęp do danej partycji przez innych użytkowników (oprócz roota).
Piąta kolumna określa czy będą tworzone kopie zapasowe danego systemu plików. Szósta kolumna określa kolejność sprawdzania integralności systemu. Mam nadzieję, że do tej pory wszystko zrozumieliście. Jak widać na powyższym listingu, niektóre partycje mają przyznane zbyt duże przywileje dla zwykłych
userów., wyznaczonych opcją defaults. Dostęp do poszczególnych partycji możemy ograniczyć takimi opcjami jak: rw – read-write (umożliwa odczyt i zapis), ro – montują daną partycję w trybie tylko do odczytu. Dodatkowymi opcjami są nosuid – uniemożliwia ustawienie bitów set-UID i set-GID, nodev - znacznik ten zapobiega rozpoznawaniu przez jądro dowolnych plików urządzeń, znajdujących się w systemie plików, ogranicza on także odstęp do CD-ROMu oraz NFS, noexec – ten parametr zapobiega uruchamianiu plików wykonywalnych na danej partycji.
Aby podwyższyć stopień bezpieczeństwa powinniśmy ograniczyć prawa dostępu co najmniej do partycji /home, /tmp, /var. A więc nasz plik /etc/fstab powinien wyglądać mniej więcej tak:
/dev/hda1 swap swap defaults 0 0 /dev/hda2 / ext2 defaults 1 1 /dev/hda3 /boot ext2 defaults 1 1 /dev/hda5 /home ext2 defaults,rw,nosuid,nodev,noexec 1 1 /dev/hda6 /tmp ext2 defaults,rw,nosuid,nodev,noexec 1 1 /dev/hda7 /var ext2 defaults,rw,nosuid,nodev,noexec 1 1 /dev/hda8 /usr ext2 defaults,rw,nodev 1 1
Teraz dostęp do partycji /home. /tmp, /var, /usr został odpowiednio ograniczony. Umożliwiliśmy zwykłym użytkownikom odczyt i zapis tych partycji, ale zabezpieczyliśmy się przed ustawianiem bitów set-UID i set-GID oraz przed uruchamianiem plików wykonywalnych na tych partycjach.
Na podstawie www.slackwarepl.eu.org --przemek_nnd 21:17, 12 cze 2005 (CEST)
Wykrywanie urządzeń
Aby zobaczyć jakie mamy podłączone urządzenia do IDE i/lub SCSI używamy poleceń
dmesg | grep 'drive$' /* Napędy IDE */ dmesg | grep 'scsi' /* Napędy SCSI */
Przykł:
hda: ST34321A, ATA DISK drive hdc: LTN526S, ATAPI CD/DVD-ROM drive hdd: JLMS DVD-ROM LTD-165H, ATAPI CD/DVD-ROM driver
Teraz możemy dopisać (CD-ROM, DVD-ROM) do pliku /etc/fstab
/dev/hdc /mnt/cdrom iso9660 ro 0 0 /dev/hdd /mnt/dvdrom iso9660 ro 0 0
Oczywiście katalogi w „/mnt” muszą istnieć.
Sekcja "administrator pół-zaawansowany"
Klient suszy mi głowe o High ID w swoim programie p2p
Klient suszy mi głowe o High ID w swoim programie p2p (wszyscy wiemy jaki to Smile 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 --dport 4343 -j DNAT --to 192.168.0.5
- uwaga od Michcio: jeżeli internet przychodzi do Ciebie nie przez sieciowkę, a przez łącze szeregowe (czytaj Neostrada po USB ;) ) w drugiej linijce zamiast "-i eth0" powinieneś napisać "-i ppp0"
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 --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 (/etc/rc.d/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 (/etc/rc.d/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 (/etc/rc.d/mrtg start). Inną opcją jest dopisanie regułek przekierowania do firewall'a, wtedy zamiast -i eth0 lepiej wpisac: -i $EXTIF
# pingi pozwalamy
$i -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -m limit --limit 1/sec
# W tym miejscu proponuje dopisywac wszelkie dodatkowe reguly.
# Wszystkie polaczenia z innych interfejsow niz interfejs do internetu pozwalamy
$i -A INPUT -i ! $EXTIF -j ACCEPT
DOKOŃCZYĆ
<raadaar + forum>
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:
Oto przykład skryptu do tworzenia pliku ethers na podstawie /etc/dhcpd.conf ze statycznymi ip:
#!/bin/sh
grep "^" /etc/dhcpd.conf | grep -v "^#" | grep [0123456789] | grep -v "^127" | grep "fixed-address" | cut -d ";" -f1 | awk '{
print $2}' > ipeki
grep "^" /etc/dhcpd.conf | grep -v "^#" | grep [0123456789] | grep -v "^127" | grep "hardware ethernet" | cut -d ";" -f1 | aw
k '{print $3}' > maki
paste ipeki maki > /etc/ethers
rm ipeki
rm maki
i masz gotowca
Teraz do wywoływania programu pobierz ten plik
http://reliserv.pl/nnd/Nowe_NND/arp/arp
nadaj mu prawo wykonalności - chmod +x arp, skopiuj do /etc/rc.d i dodaj wpis do pliku /etc/rc.conf
w sekcji DAEMONS wpisz arp
wywołanie /etc/rc.d/arp start i zatrzymanie /etc/rc.d/arp stop
edit --Przemeknnd 02:02, 21 maj 2006 (CEST)
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>
Ogłoszenie o zablokowaniu internetu
Ogłoszenie o zablokowaniu internetu, w związku z zaleganiem Smile 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/thttpd 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.html 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 Smile. 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>
Blokada logowania z root'a (SSH)
Momentami ze względu bezpieczeństwa chcemy wyłączyć bezpośrednie logowanie root'a na serwer - przypadek jeśli nie masz su. W jakimś stopniu ochrania nas to przed tzw. "remote root exploit".
Więc do dzieła.
Edytujemy tym razem plik /etc/ssh/sshd_config.
PermitRootLogin no
To "no" właśnie odpowiada za blokadę zdalnego logowania.
--przemek_nnd 14:35, 1 maj 2005 (CEST)
Obserwowanie poczynań innych userów
Czasami chcemy sprawdzić co robią nasi użytkownicy na naszym serwerze, jak długo trwa ich sesja, skąd są zalogowani, jakie polecenia wydają etc.
System Linux standardowo posiada zbiór narzędzi ułatwiających nam te czynności, do takowych należą:
-who
-w
Oczywiście jest historia poleceń .bash_history, niestety może ona zostać zmodyfikowana bądź usunięta przez nadgorliwego usera. Tutaj z pomocą przychodzi nam bash-bofh. Interpreter poleceń bash, z dodatkową opcją logowania zdarzeń do osobnego pliku z logami.
Polecenie who, które nam szybko pokazuje aktualną liste zalogowanych użytkowników, ich host, datę i czas zalogowania oraz numer zajmowanej konsoli.
Polecenie w, posiada właściwie te same opcje co wspomniane who, lecz dodatkowo zostało wzbogacone o informację o zużyciu procesora przez konkretną aplikacje należącą do danego usera .
<Linux Newbe>
Hasło na Lilo
Tuż po uruchomieniu komputera, pojawia nam się bootloader, w którym wybieramy odpowiedni dla nas w danej chwili system. Jednak czasem np. przed wredną siostrą :P trzeba się ochronić. W tym celu można sprowokować bootloadera, by już na samym początku pytał nas o hasło. Aby to uczynić należy do pliku
/etc/lilo.conf dodać: restricted password="nasze_hasło"
Zapisujemy zmiany w pliku i przeładowywujemy lilo, poleceniem... lilo. Teraz przy każdym uruchomeniu komputer będzie nas się pytał o hasło.
Jak ustawić inny tryb niż 100Mbit/Full-Duplex?
Są dwa sposoby (bynajmniej mi znane):
1) z roota uruchamiamy mii-tool
mii-tool <wielkość liter ma znaczenie!!!>
Aby ustawić tryb pół duplex 10MBit na urządzeniu eth0:
mii-tool -F 10baset-HD eth0
Aby ustawić tryb pół duplex 100MBit na urządzeniu eth0:
mii-tool -F 100baset-HD eth0
Aby ustawić tryb full duplex 100MBit na urządzeniu eth0:
mii-tool -F 100baset-FD eth0
Aby ustawić tryb full duplex 10MBit na urządzeniu eth0:
mii-tool -F 10baset-FD eth0.
Ta metoda niestety działa do wyłączenia komputera (mi się tak działo przepraszam jeżeli się mylę. Natomiast drugi sposób przedstawia rozwiązanie problemu na stałe.
2) Poprzez konfigurację boot managera lilo.
Musimy edytować plik eth/lilo.conf, ale potrzebujemy praw admina.
Otwieramy plik lilo.conf:
Nastepnie dopisujemy linijkę:
append="ether=0,0,0x40"
Należy ten wpis umieścić w ramach etykiety (label) linuxa.
Jak nie będzie działać z 40 to 50.
Po wszystkim zapisujemy plik.
Teraz jeszcze musimy uruchomić lilo wpisując:
lilo
I to wszystko.
Powitanie na starcie /etc/motd
Edytujemy plik /etc/motd i wpisujemy to co byśmy chcieli, żeby userzy widzieli po zalogowaniu się.
Można np. wykorzystać programik bgascii - i przerobić grafikę na tekst - potem to wkleić do pliku.
Nic właśnie.
Plik ten przy każdym restarcie ponownie otrzymuje swoją pierwotną zawartosc za sprawą /etc/rc.d/rc.S i to tam właśnie zmienić trzeba :), lub w rc.S zapłotkować linie:
# Create a fresh utmp file: cat /dev/null > /var/run/utmp #echo "NND Router" > /etc/motd # Configure ISA Plug-and-Play devices:
Numlock przy starcie
Do rc.local dodajemy następujące linijki:
echo "NumLock starting"
for i in 1 2 3 4 5 6; do
/usr/bin/setleds +num < /dev/tty${i} > /dev/null
done
I to wszystko.
Automatyczne wylogowywanie nieaktywnego usera
echo "TMOUT=400"
w pliku /etc/profile
Gdzie wartość 400 można zmienić na dowolną nam odpowiadającą.
Przydatne komendy
ifconfig - sprawdzenie zainstalowanych modulow sieciowych net_conf - konfiguracja kart sieciowych pacman -Suy - aktualizacja systemu i bazy pakietow
Przydatne komendy (dla każdego Linuxa)
ls - wylistowanie zawartości katalogu dir - to samo, co wyżej cd / - wyjście do głównego katalogu cd .. - wyjście katalog wyżej cd ~ - wyjście do katalogu głównego użytkownika cd nazwa_katalogu - wejście do podkatalogu w danym katalogu cd /nazwa_katalogu - wejście do katalogu znajdującego się w innym miejscu mkdir nazwa_katalogu - tworzenie nowego katalogu mc - manager plikow (podobny do Norton Commander w DOS-ie) iptraf - pozwala na bardzo dobry podgląd aktualnej sytuacji w sieci mcedit - doskonały edytor plików tekstowych cp raz dwa - skopiuj plik raz do dwa mv raz dwa - przenies plik raz do dwa/ zmien nazwe pliku z raz na dwa find . -name COS - znajdz wszelkie pliki o nazwie COS we wszystkich podkatalogach katalogu . (czyli bieżącego) man KROWA - poczytaj o KROWA w manualu PROGRAM --help - pokaz pomoc programu o nazwie PROGRAM exit - wyjdź z konsoli reboot - zresetuj system halt -p - zamknij system pwd - pokazuje katalog, w którym jesteśmy kill -KILL NUMER - zabija natychmiastowo proces o ID równym NUMER top - pokazuje listę działących procesów; kolejna strona- [shift]+[>], wyjście- [q] whoami - pokazuje nazwę zalogowanego użytkownika write NAZWAUŻYTKOWNIKA - pozwala pisać do innych użytkowników ctr+z - zabij uruchomiony program pacman -S NAZWA - szuka programu NAZWA w internetowym repozytorium i pozwala do zainstalować [TAB] - ten klawisz pozwala dopelnic nazwę pliku, np. cp cos[TAB] wyświetli nazwę pliku znajdującego się w danym katalogu o nazwie zaczynającej się od cos cat NAZWA - pokazuje (bez możliwości edycji) plik tekstowy o nazwie NAZWA touch NAZWA - tworzy pusty (o wielkości 0 bajtów) plik o nazwie NAZWA
Uzywam FTP (proftpd) korzystajacego z kont systemowych - jak zablokowac takim uzytkownikom FTPa dostep do konsoli lub pozwolic im po zalogowaniu tylko na zmiane hasla
Aby uzytkownik nie mogl sie zalogowac wcale ustawiamy mu powloke:
/bin/false
i dopisujemy ja do:
/etc/shells
Aby po zalogowaniu sie uzytkownika na konsole mial on mozliwosc TYLKO zmiany hasla nadajemy mu powloke:
/usr/bin/passwd
Jesli juz mamy uzytkownikow w systemie zmieniamy im powloki w pliku:
/etc/passwd
Pamietajmy ze jesli damy uzytkownikowi powloke /bin/false musimy w konfiguracji proftpd ustawic:
RequireValidShell off
Zrodlo
--TheL 14:46, 11 cze 2007 (CEST)
Apache
Dobry opis apache, plików konfiguracyjnych, instalacji i kompilacji jest również tu: Pakiety:Apache
O Apache
Apache jest popularnym serwerem www. Jeśli zamierzamy budować zaawansowane aplikacje internetowe, zapewne będzie potrzebny. Instalujemy go poleceniem: pacman -S apache od razu gotowy jest do działania w swojej domyślnej (najprostszej) konfiguracji. Należy dopisać jego uruchamianie do rc.conf, a pierwszy raz dla sprawdzenia uruchomić ręcznie. Ale Apache to nie wszystko, najczęściej do rozbudowanych stron będziemy potrzebowali dodatkowo PHP i MySql, instalacja: pacman -S php (PHP) pacman -S mysql (MySql)
Konfiguracja Apache
Jeśli już zainstalujemy owe trzy pakiety musimy przystąpić do konfiguracji Apache a robimy to edytując plik:
/etc/httpd/conf/httpd.conf
Plik httpd.conf ma budowę wierszowo-blokową.
Najważniejsze opcje konfiguracyjne to:
ServerType typ - ustawia, czy Apache jest uruchamiany z inetd (inetd), czy też pracuje jako samodzielny serwer (standalone). Druga opcja jest bardziej wydajna, dlatego jest dużo częściej wykorzystywana.
Port numer - port TCP/IP, na którym samodzielny Apache będzie nasłuchiwał połączenia. Domyślnie 80.
User nazwa, Group nazwa - użytkownik i grupa, spod których będzie pracował serwer Apache.
LoadModule nazwa pliku - jedna z najważniejszych opcji konfiguracyjnych serwera Apache. Za jej pomocą ładuje się moduły rozszerzające, które mogą obsługiwać generowanie zawartości (np. ze skryptów PHP czy programów CGI), odnajdywanie plików związanych z URLem (alias, rewrite), autentyfikację (access, auth), czy przekształcanie zawartości (np. dynamicznie kompresujący treść mod_gzip).
ServerName nazwa - domyślna nazwa serwera. Musi być to działająca domena wskazująca na serwer.
NameVirtualHost adres - bardzo ważna opcja, bez której wirtualne hosty dzielące te samo IP nie będą działać poprawnie. Najlepiej wpisać tę opcję dla każdego IP serwera.
ServerAdmin adres - adres e-mail administratora serwera, będzie publikowany w przypadku błędów.
DocumentRoot ścieżka - katalog, który będzie publikowany przez serwer.
UserDir nazwa - nazwa podkatalogu, z którego pobierane będą pliki publikowane przez użytkowników. Domyślnie jest to public_html; wtedy użytkownicy powinni umieszczać pliki do publikacji w katalogu ~/public_html. Pliki te będą dostępne pod url http://serwer/~użytkownik/. DirectoryIndex nazwy... - nazwy plików, które będą wykorzystywane przez serwer jako strona główna katalogu. Domyślnie index.html. Warto dodać wpis dla każdego używanego rozszerzenia dla dokumentów.
Alias uri ścieżka - publikuje katalog oznaczony ścieżką dostępu w obrębie przestrzeni adresów serwera. Domyślnie istnieje alias z /icons/ do /usr/share/apache/icons, dostarczający ikon do indeksowania katalogów.
Options opcje... - opcje, używane w obrębie bloków <Directory> i <DirectoryMatch>. Są to:
All - wszystkie opcje.
None - żadna z opcji.
Indexes - generuj indeksy katalogów tam, gdzie nie występuje plik indeksu.
Includes - uaktywnia SSI w danym katalogu. Aby opcja ta działała, niezbędne jest załadowanie i skonfigurowanie modułu mod_include.
FollowSymLinks - pozwala na oglądanie plików i katalogów dostępnych za linkiem symbolicznym.
ExecCGI - pozwala na uruchamianie programów CGI.
AllowOverride opcje... - zezwala użytkownikom na skonfigurowanie pewnych aspektów pracy serwera w plikach .htaccess w udostępnianych katalogach. Opcje AllowOverride określają, co użytkownik ma prawo skonfigurować. Najważniejsze z nich to:
All - wszystkie opcje.
None - żadna z opcji.
AuthConfig - konfiguracja autentyfikacji.
Indexes - opcje indeksowania (np. DirectoryIndex).
Limit - kontrola dostępu według adresu klienta.
Options - dyrektywa Options.
Przykłady:
- ServerRoot "/usr" -
- Timeout 300 - Czas do pokazania komunikatu o skończeniu limitu czasu
- LoadModule php4_module lib/apache/libphp4.so - Załadowanie modułu PHP
- LoadModule cgi_module lib/apache/mod_cgi.so - Załadowanie modułu CGI
- LoadModule vhost_alias_module lib/apache/mod_vhost_alias.so - Załadowanie modułu hostów wirtualnych.
- ServerName domena.pl:80 - Nazwa domyślnej domeny hosta i port
- DocumentRoot "/home/public_html/" - katalog w ktorym przechowywane są strony. Ten sam katalog wpisujemy <Directory "/home/public_html">
- UserDir public_html - katalog w którym userzy powinni trzymać strony.
- ScriptAlias /cgi-bin/ "/home/httpd/www/cgi-bin/" - Alias do katalogu w którym trzymane są skrypty CGI
- LanguagePriority pl - Polskie ustawienia
- AddDefaultCharset ISO-8859-2 - Kodowanie polskich znaków
- NameVirtualHost xx.xx.xx.xx:80 - Nazwa hosta wirtualnego i port
Hosty wirtualne
Aby hosty wirtualne działały należy wykonać odpowiedni wpis dotyczący istniejącego konta www:
<VirtualHost xx.xx.xx.xx> ServerAdmin admin@xx.pl //adres email admina DocumentRoot /home/public_html/user1 //katalog ze strona usera ServerName www.user1.xx.pl //nazwa serwera usera ServerAlias user1.xx.pl //alias serwera usera ServerAlias www.user1.xx.pl //alias serwera usera ErrorLog /var/log/httpd/user1_error_log //katalog i plik z logami CustomLog /var/log/httpd/user1-access_log common //katalog i plik z logami </VirtualHost>
