HOME


 
Jeżeli ładowanie trwa zbyt długo (powyżej 2 min.), to zapraszam o innej porze.
Zobacz statystyki odwiedzin by ustalić porę najmniejszego obciążenia serwera.

Spakowana witryna o Linuksie w formacie RAR
 
gorzow-wlkp.pl/linux
/etc/hosts.allow
/etc/hosts.deny


 
Bezpieczeństwo Linuksa opiera się na wielu znanych powszechnie narzędziach np. ścianie ogniowej (firewall), analizatorach logów itd. Jednak najstarszym i podstawowym sposobem zabezpieczania serwera jest konfiguracja plików /etc/hosts.*. Uwaga: pliki hosts.* nie zastępują ściany ogniowej, a działają "obok". Pamiętaj, że jeżeli ściana ogniowa jest skonfigurowana na blokadę połączenia, to pliki hosts.* nie udostępnią połączenia. Na potrzeby poniższej konfiguracji plików hosts.* przyjąłem, że ściana ogniowa jest w wersji dopuszczającej każde połączenie z każdego hosta.



Otrzymując z sieci wezwanie do uruchomienia usługi serwerowej, Twój komputer wykonuje po kolei: pobiera dane odległego komputera (adres IP, domenę oraz rodzaj usługi). Następnie czyta zawartość pliku /etc/hosts.allow (hosts czyli komputery w sieci, allow znaczy dozwolone) i gdy znajdzie wpis zezwalający, to dopuszcza połączenie. Jeżeli takiego wpisu nie znajdzie, wówczas analizuje plik /etc/hosts.deny (deny znaczy blokowane).

Aby zmaksymalizować bezpieczeństwo połączeń przyjmij zasadę, że w pliku /etc/hosts.deny BLOKUJESZ WSZYSTKIM dostęp, a w pliku /etc/hosts.allow DOPUSZCZASZ WYBRANE HOSTY do wskazanych usług. Uwaga: jeżeli oba pliki hosts.* będą puste, to każde połączenie z każdym klientem będzie dopuszczone.

Tak więc, gdy w pliku /etc/hosts.allow odległy klient o nr IP 217.96.171.131 został odnotowany w postaci wiersza:
sshd:217.96.171.131
to system nie sprawdza już wpisu w pliku /etc/hosts.deny i zezwala na połączenie (na usłudze sshd).

Natomiast jeżeli klient nie został wpisany w /etc/hosts.allow, to w następnej kolejności system sprawdza plik /etc/hosts.deny . Szukać tam będzie wpisu:
ALL:ALL
lub nr IP zablokowanego klienta. Jeżeli nie znajdzie, to zezwoli na połączenie.

Uwaga: system zawsze sprawdza hosts.* podczas próby połączenia z odległego komputera, więc po wykonaniu korekt nie trzeba wykonywać restartu, aby nabrały legalności.




Tak więc na początku uszczelniania swojego Linuksa wstaw do pliku /etc/hosts.deny wiersz:
ALL: ALL
W ten sposób nikt nie będzie miał dostępu do serwera. Nawet aplikacja działajaca na serwerze wobec serwera (czytaj poniżej).

Z powodu ewentualnych kłopotów w testowaniu ustawień wskazanym jest odblokować samego siebie (czyli serwer działający na serwerze w tzw. pentelce) i wpisać:
ALL:ALL EXCEPT localhost:DENNY
lub
ALL:ALL EXCEPT 127.0.0.1:DENNY
Oczywiście localhost lub 127.0.0.1 to Twój serwer, który w ten sposób akceptuje samego siebie.





Teraz w /etc/hosts.allow wpisz swoje zaufane maszyny np.:


ALL:192.168.0.2
ALL:192.168.0.22
ALL:192.168.0.4
in.telnet:192.168.0.3
sshd: 192.168.0.
sshd: 192.168.0., pod101.wroclaw.sdi.tpnet.pl
ftp: 192.168.0.10, 192.168.1.

ALL znaczy wszystkie, ssh, telnet, ftp to usługi. W powyższym przykładzie wszystkie komputery z IP 192.168.0.2, 22 i 4 mają dostęp do wszystkich usług (ALL), natomiast host 192.168.0.3 tylko do telnetu (in znaczy wejście do serwera). Wpis sshd 192.168.0. (adres IP z kropką na końcu) da dostęp do logowania się na sshd z domowej sieci 192.168.0.0/24 . Przypominam, że 192.168.xxx.xxx to adresy nierutowalne (niewidoczne z Internetu adresy komputerów sieci wewnętrznej). Ostatni wpis umożliwia logowanie na serwer ftp z dwóch adresów.

Uwaga: posiadacze programu PortSentry muszą się liczyć z automatycznie robionymi wpisami w pliku /etc/hosts.deny . Przeglądnij pliki konfiguracyjne w katalogu /etc/potrsentry/*




W plikach /etc/hosts.allow i hosts.deny klientów można definiować:

  • adresami IP np. 192.168.1.5
  • słowami ALL oraz LOCAL
  • nazwami domenowymi np. nazwa.serwer.pl
  • częściowymi adresami IP np. 192.168.
  • częściowymi nazwami domenowymi np. .serwer.pl
  • składnią sieć/maska np. 192.168.1.0/255.255.255.0
  • wykorzystując słowo EXCEPT ("za wyjątkiem")
  • ciąg adresów oddzielamy przecinkiem i spacją np. 192.168.0.5, 217.96.171.151




Jak zauważyłeś, w plikach hosts.* podajemy nazwy usług np. sshd, ftp, a nie numery portów. W razie potrzeby system odczytuje nazwę usługi, a następnie szuka informacji w pliku /etc/services.




 
twarogal@wp.pl

Wszelkie prawa są zastrzeżone, z wyłączeniem hobbystów, którzy umieszczają opracowania na stronach bez reklam. Dla hobbystów zawartość tej strony jest dostępna bez ograniczeń - używanie i przerabianie moich artykułów są jak najbardziej wskazane, ale na swoją odpowiedzialność.

Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).

 




 

gorzow-wlkp.pl