Nowe posty

Autor Wątek: Iptables  (Przeczytany 2442 razy)

jawor92

  • Gość
Iptables
« dnia: 2015-03-18, 09:52:26 »
Witam, potrzebna problem chciałbym przy pomocy firewalla zablokować strony i udostępnić użytkownikowi dostęp tylko do jednej strony. Używam Fedora

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Iptables
« Odpowiedź #1 dnia: 2015-03-18, 10:21:50 »
Dlaczego zakładasz, że strony blokuje się za pomocą firewalla i ograniczasz się do takiego (może nieprawidłowego) rozwiązania?

Jakiemu użytkownikowi? Lokalnemu, z dostępem przez ssh, po prostu łączącemu się z zewnątrz do serwera www?

Jakie masz strony? Jak są skonfigurowane, że jest ich wiele?

Lektura obowiązkowa: http://rtfm.killfile.pl/

jawor92

  • Gość
Iptables
« Odpowiedź #2 dnia: 2015-03-18, 10:26:31 »
Użytkownikowi lokalnemu. Ma mieć możliwość korzystania tylko ze strony banku

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Iptables
« Odpowiedź #3 dnia: 2015-03-18, 11:11:59 »
Ah, więc o to ci chodzi. Nie ma jak jasno zadać pytanie :)

Poniższy kod pozwoli na dostęp 'uzytkownikowi' tylko do wp.pl (212.77.100.101).
iptables -A OUTPUT -m owner --uid-owner uzytkownik -d '212.77.100.101' -j ACCEPT
iptables -A INPUT -m owner --uid-owner uzytkownik -s '212.77.100.101' -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner uzytkownik -j REJECT
iptables -A INPUT -m owner --uid-owner uzytkownik -j REJECT
Jest jednak kilka "ale":
- Przydałoby się dodać także dostęp do sieci lokalnej.
- Użytkownik musi mieć także dostęp do używanych w jego systemie DNSów, inaczej wejdzie tylko po IP.
- Wreszcie strona może używać zewnętrznych zasobów (np. linkować jquery ze stron google).
Wchodzi na to, że trzeba się trochę namęczyć, żeby w ten sposób dobrze ograniczyć dostęp do jednej wybranej strony.

DNS możesz dla ułatwienia ustawić sobie własny np. na routerze, wtedy będzie częścią sieci lokalnej.
Albo ustawić go na maszynie na jakiś znany publiczny, np. 8.8.8.8 google (jeśli lubiesz być szpiegowany).
Lub po prostu wklepać te od swojego ISP w regułkę, o ile nie zmieniają się losowo (dla neostrady: 194.204.159.1,194.204.152.34).

Regułki mogą więc wyglądać tak:
iptables -A OUTPUT -m owner --uid-owner uzytkownik -d '212.77.100.101,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,194.204.159.1,194.204.152.34' -j ACCEPT
iptables -A INPUT -m owner --uid-owner uzytkownik -s '212.77.100.101,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,194.204.159.1,194.204.152.34' -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner uzytkownik -j REJECT
iptables -A INPUT -m owner --uid-owner uzytkownik -j REJECT
Można jeszcze dla wybranych adresów ograniczać po portach: 80 http, 443 https, ale stworzenie odpowiednich regułek pozostawiam już tobie.

Justa123

  • Gość
Iptables
« Odpowiedź #4 dnia: 2015-03-20, 21:11:41 »
Wydaje mi się, że lepiej użyć innej zapory.

Pozdrawiam

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3070
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Iptables
« Odpowiedź #5 dnia: 2015-03-20, 22:45:36 »
Cytat: Justa123
Wydaje mi się, że lepiej użyć innej zapory.
Justa123: Dostajesz pierwsze ostrzeżenie za śmiecenie na forum nic nie wnoszącymi postami. Choć chętnie posłucham, jaką inną zaporę proponujesz?
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy