firewall-init

Marek Guevara Braun mguevara w acn.waw.pl
Nie, 26 Paź 2003, 01:09:15 CEST


Andrzej Krzysztofowicz wrote:
>
> Jak bardzo bedzie ograniczalo funkcjonalnosc uzycie jako skladni pliku
> konfiguracyjnego - skladni linii polecen dla iptables.

Podstawowe pytanie - jaki jest cel tego pliku konfiguracyjnego?

> Taka propozycja padla, nikt sie do niej nie ustosunkowal.
> Cos sie przy niej traci? Co konkretnie - przyklady.

Jak na teraz (dla firewall-init z Ra) - definiowanie własnych chainów.
Nie wiem jak jest z accountingiem - można?

Dla iptables można pomyśleć o tych co korzystają/będą chcieli korzystać 
z własnych łańcuchów (w firewall-init 2.99 to jest), dodatkowych
ficzerów, takich jak ebtables ...

Złożoność enginu przetwarzającego plik konfiguracyjny o *pełnej*
funkcjonalności polecenia ${iptables} będzie taka sama jak
enginu przetwarzającego wszelkie wariacje skryptu shellowego
z wywołaniami iptables - trzeba wszystko uwzględnić.

>>rozwiązanie z firewall-init z Ra i dodać tylko weryfikację wszystkich
>>przekazywanych z konfiga wartości, coby nikt ';rm -rf /' jako parametr
>>firewalla nie podał ;-)
> 
> Tego akurat mozna latwo uniknac.

s/można/trzeba/ :-) i nie do końca łatwo - zarówno dla podejścia "plik
konfiguracyjny modyfikowany przez usera" jak i "sudo na iptables",
pozostaje otwarta kwestia bezpieczeństwa samego polecenia iptables -
jego odporność na ciągi formatujące, przepełnienie bufora itp.

Do tej pory zakładaliśmy że iptables może wywołać root i to root
odpowiedzialny jest za wszystkie parametry przekazywane do tego
polecenia gdy jest ono wywoływane na prawach roota.

Jeśli w poleceniu jest dziura, ale by z niej skorzystać trzeba mieć
roota, to jej istnienie jest mało istotne. Gdy nie będąc
rootem mamy wpływ na to co jest wywoływane z prawem roota
i w poleceniu jest eksplojtowalna luka to .. mamy roota
- nie jestem pewien czy /usr/sbin/iptables jest poleceniem
bezpiecznym :-(.

>>Co do psucia przez userów poza firewallem, to przy dawaniu userom prawa
>>do wywoływania skryptów z 'sudo ${iptables} ..' trzeba pamiętać by
>>skrypty te nigdy nie były wykonywane przez root-a, a tylko przez tego
>>usera.
> 
> Jak proponujesz to zagwarantowac?

Po prostu - userzy nie mają prawa do zapisu swoich poleceń do skryptów
wywoływanych przez init-skrypty firewalla z prawem roota.

> 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.

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.

> Wlasnie do unikniecia tego daze: do _separacji_ skryptow i konfiguracji.

Taka separacja nie daje do końca pewności że "jest bezpiecznie"

> Jak ktos chce uzywac wlasnych skryptow, to mu niepotrzebne init.d/firewall*
> - moze uzywac wlasnego. Mozemy nawet takie rozwiazanie wspierac, ale IMVHO,
> nie jako podstawowe.

IMO dawanie userom prawa do modyfikacji firewalla nie powinno być
dostarczane jako rozwiązanie standardowe.

Pozdrawiam,
Marek

PS. Zawsze ${iptables} może być równe '/usr/bin/sudo /usr/sbin/iptables'
;-)









Więcej informacji o liście dyskusyjnej pld-devel-pl