firewall-init
Marek Guevara Braun
mguevara w acn.waw.pl
Nie, 26 Paź 2003, 02:58:22 CET
Andrzej Krzysztofowicz wrote:
> Marek Guevara Braun wrote:
>>Podstawowe pytanie - jaki jest cel tego pliku konfiguracyjnego?
>
> separacja uprawnien. wieksze bezpieczenstwo.
OK
> ZTCW wsparcie dla wlasnych lancuchow w RA jest. Nie sprawdzalem jak dziala
> (potencjalnie widze problem z kolejnoscia ich aktywacji - ale to mozna
> rozwiazac poprzez odpowiednie nazwy)
No nie wiem. Wydawało mi się ze tylko input, output i forward.
Może źle przeczytałem.
>>Złożoność enginu przetwarzającego plik konfiguracyjny o *pełnej*
>>funkcjonalności polecenia ${iptables} będzie taka sama jak
>
>
> dla
> iptables $LINE
OK. To jest proste, ale jeśli user ma wpływ na $LINE to potencjalnie
może wrzucić tam coś nieporządanego, co bez analizy składniowej
parametrów (złożone i pracochłonne) może nie zostać odfiltrowane.
Oczywiście można założyć że niezaufany user nie ma dostępu do
tego pliku.
> Rzeczywiscie zlozony parser bedzie potrzebny ;)
Odrzucanie podejrzanych znaków - nie wiem jak z escapeowaniem unikodu
ale to może być problem w najbliższym czasie, jeśli shelle zaczną
interpretować eskejpowany unikod (już rozpoznają ??), dla niektórych
modułów iptables ich parametry mogą pokrywać się z "zastrzerzonymi"
znakami.
> Patrz wyzej. Nigdzie nie twierdze, ze chce sie wzorowac w skladni pliku
> konfiguracyjnego na RA.
Chyba byłoby to trudne/mało elastyczne. Z drugiej strony to co daje
firewall-init dla Ra wystarcza w wielu zastosowaniach.
> Mozna ograniczyc zakres dozwolonych znakow w pliku konfiguracyjnym.
> Np. bez ; ` ( ) { } itp. Nie ograniczy to raczej funkcjotalnosci.
Jeszcze
& -- iptables .... && chmod 777 /etc/passwd
> -- iptables .... && echo "blabla" > /etc/passwd
| -- iptables .... | moj_program
interpretowane przez shell sekwencje escapowe -- nie mam pomysłu ;)
/ - nie za bardzo można bo /24
....
Tego może być dużo :-(
> Nawet do RA to jak widze warto dodac.
Tam przynajmiej jest tak, że tylko root pisze do konfiguracji.
> Tak, ale w jaki sposob user X moze zmienic zachowanie firewalla przy starcie
> systemu ?
> Do tego daze.
Jeśli user dodaje jakieś wpisy to firewall-init może robić
iptables-save iptables-restore z uwzględnieniem tej konfiguracji
(nie jest to idealne rozwiązanie bo w trakcie działania firewalla
reguły mogą być modyfikowane, a przy starcie możemy chcieć mieć tylko
konfigurację bazową bez tego co zmienił np. snort, ale już z wpisami
naszego usera).
Oczywiście danie userowi prawa do wpisu do pliku konfiguracyjnego
jest łatwiejsze.
> Przeciez usetrzy nie beda sobie tworzyc wlasnych firewalli, to jest funkcja
> ogolnosystemowa, nie per user.
Tak.
>>>konfiguracja firewalla zalezna nie od systemu, ale od usera, ktory wola
>>>skrypty startowe? Paranoja.
>>
>>Chcesz dać userom prawo do modyfikacji firewalla. To nie powinno być
>>czymś standardowym, by każdy user mógł modyfikować reguły firewalla.
>
>
> Nie chce tego nikomu dawac domyslnie. Chce miec *mozliwosc* zrobienia tego,
> jesli zechce.
> Obecne firewall-init nie daje takiej mozliwosci.
Można to dodać bardzo tanim kosztem (zaraz opiszę).
>>Jeśli chcesz by konfiguracja wprowadzona przez usera była wywoływana
>>automatycznie przez init-skrypty to zawsze można umieścić
>>w strukturze /etc/sysconfig/firewall-users/{benio,jasio,grzes}
>>a skrypt firewall przed wykonaniem poleceń z odpowiednich
>>skryptów przyjmowałby euid/egid danego usera - wtedy sudo na iptables
>>musiało by być bezhasłowe.
>
> Zmiana konfiguracji - to rowniez usuniecie istniejacej reguly.
> I to niekoniecznie wprowadzonej przez danego usera.
Racja - dla wielu plików zarządzanych niezależnie mogą być
problemy związane z kolejnością i ogólnym rozbiciem na wiele plików.
To nie był najlepszy pomysł.
> Ale zgodzisz sie, ze jest wowczas bezpieczniej, niz gdy pozwala sie im
> edytowac skrypty odpalane przez root-a ?
Z drugiej strony root nie musi wcale odpalać skryptów firewalla - można
utworzyć nowego usera (rolę w systemie) aka firewall-admin, który by
miał tylko sudo do odpowiednich binarek iptables - skrypty używać mogą
ospowiednio przypisanego ${iptables}
Można mieć 2 tryby pracy:
* normalny gdzie tylko root grzebie w konfigach i to on odpala firewall
(tak jak teraz)
* user-enabled, gdzie grzebać w konfigu może ten pół root, ale by nie
nabroił skrypty odpala się z euid/egid firewall-admina, do
zmiennych ${iptables} ${iptables6} przypisuje się 'sudo iptables/6'
i pomimo wprowadzenia "niezaufanych" poleceń shellowych w skryptach
nie mają one dużego wpływu (bo odpala je nie root)
> Jezeli ktos ma dostac uprawnienia do modyfikacji firewalla, to musi to byc
> odpowiedzialna osoba. Taki pol-root. Co nie oznacza, ze nalezy mu od razu
> pozwolic na wszystko.
Tak.
Pozdrawiam,
Marek
Więcej informacji o liście dyskusyjnej pld-devel-pl