TCP Wrappers

TCP Wrappers to mechanizm wykorzystywany do ograniczania dostępu do usług uruchomionych w systemie. TCP Wrappers mogą kontrolować dostęp do takich usług jak ftp, ssh, telnet, tftp, finger, rsh i talk. Pliki konfiguracyjne tego mechanizmu to /etc/host.allow i /etc/hosts.deny. Domyślnie pliki nie zawierają żadnych restrykcji. Jeżeli te pliki nie zawierają żadnych wpisów odnośnie użytkownika lub źródła, z którego pochodzi połączenie, to wrappery przyznają dostęp do usługi.

Gdy klient TCP żąda połączenia z usługą, demon tcpd sprawdza plik .allow i zezwala na dostęp do usługi jeżeli znajdzie w pliku wpis pasujący do klienta. Jeżeli plik nie zawiera wpisu pasującego do klienta to demon zagląda do pliku .deny i odmawia dostępu jeżeli tutaj znajdzie pasujący do klienta wpis. Jeżeli w pliku .allow i .deny brak wpisów dotyczących klienta to demon przyznaje dostęp do usługi. Wrapper bierze pod uwagę tylko pierwszy znaleziony wpis we wspominanych plikach i po czym przerywa skanowanie plików.

Format obu plików jest identyczny i oparty jest na konstrukcji:

<nazwa usługi> : <użytkownik@host>

Jeżeli we wpisie brak użytkownika reguła pasuje do wszystkich użytkowników. Brak hosta we wpisie oznacza wszystkie hosty. Wrappery obsługują znaki wildcard takie jak: ALL, LOCAL, KNOWN, UNKNOWN oraz EXCEPT.

  • ALL oznacza wszystkich klientów.
  • LOCAL oznacza hosty z sieci lokalnej.
  • KNOWN oznacza hosty, których nazwy domenowe mozna resolvować w adresy IP.
  • UNKNOWN – przeciwne do KNOWN.
  •  oznacza wyjątek w regule.

Poniższa tabela zawiera przykłady.

service :
user@source
/etc/hosts.allow /etc/hosts.deny
ALL:ALL Zezwala na dostęp do wszystkich usług ze wszystkich hostów. Zabrania dostępu do wszystkich usług ze wszystkich hostów.
ALL:user1 Zezwala na dostęp do wszystkich usług użytkownikowi user1. Zabrania dostępu do wszystkich usług użytkownikowi user1.
ALL:user1@server1 Zezwala na dostęp do wszystkich usług użytkownikowi user1 z hosta server1. Zabrania dostępu do wszystkich usług użytkownikowi user1 z hosta server1.
ALL:.example.com Zezwala na dostęp do wszystkich usług hostom z domeny example.com. Zabrania dostępu do wszystkich usług hostom z domeny example.com.
ALL:192.168.0.  Zezwala na dostęp do wszystkich usług hostom z podsieci 192.168.0.0/24. Zabrania dostępu do wszystkich usług hostom z podsieci 192.168.0.0/24.
sshd:ALL Zezwala na dostęp do ssh ze wszystkich hostów. Zabrania dostępu do ssh ze wszystkich hostów.
sshd:LOCAL Zezwala na dostęp do ssh z sieci lokalnej. Zabrania dostępu do ssh z sieci lokalnej.
vsftpd:192.168.0. Zezwala na dostęp do ftp z podsieci 192.168.0.0/24. Zabrania dostępu do ftp z podsieci 192.168.0.0/24.
vsftpd:192.168.0.0/24 Zezwala na dostęp do ftp z podsieci 192.168.0.0/24. Zabrania dostępu do ftp z podsieci 192.168.0.0/24.
vsftpd:192.168.0. EXCEPT
192.168.0.25
Zezwala na dostęp do ftp z podsieci 192.168.0.0/24 z wyjątkiem hosta 192.168.0.25. Zabrania dostępu do ftp z podsieci 192.168.0.0/24 z wyjątkiem hosta 192.168.0.25.
vsftpd:192.168.0. EXCEPT
192.168.0.25, 192.168.0.26
Zezwala na dostęp do ftp z podsieci 192.168.0.0/24 z wyjątkiem hostów 192.168.0.25, 192.168.0.26. Zabrania dostępu do ftp z podsieci 192.168.0.0/24 z wyjątkiem hostów 192.168.0.25, 192.168.0.26.
vsftpd,sshd:user1@192.168.0. Zezwala na dostęp do ftp i ssh użytkownikowi user1 z podsieci 192.168.0.0/24. Zabrania dostępu do ftp i ssh użytkownikowi user1 z podsieci 192.168.0.0/24.
vsftpd,sshd@192.168.0.110:
192.168.1.
Zezwala na dostęp do ftp i ssh wszystkim użytkownikom z hosta 192.168.0.110 i podsieci 192.168.1.0/24. Zabrania dostępu do ftp i ssh wszystkim użytkownikom z hosta 192.168.0.110 i podsieci 192.168.1.0/24.
ALL EXCEPT
sshd:192.168.0.
Zezwala na dostęp do wszystkich usług z wyjątkiem ssh z podsieci 192.168.0.0/24. Zabrania dostępu do wszystkich usług z wyjątkiem ssh z podsieci 192.168.0.0/24.

Wszystkie komunikaty związane z wrapperami logowane są do pliku /var/log/secure.

Leave a Reply

Your email address will not be published. Required fields are marked *