Skocz do zawartości

Iptables Yum


MC'

Rekomendowane odpowiedzi

Witam,

bawię się właśnie iptables i ciekawostka majac domyślne polityki na DROP nie mogę odblokować yuma.

Wykombinowałem coś takiego:

#initaiating yum conection
        iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
        iptables -A OUTPUT -p tcp -m state ESTABLISHED,RELATED -j ACCEPT

#rest of the yum connection
        iptables -A INPUT --sport 80 -j ACCEPT
        iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Ale okazuje się, że jednak nie działa. Bo anatomia połaczenia yum przez http jest taka wydaje mi sie że wychodzi na 80 servera yum i wraca na jakiś wysoki port klienta...

Jest jakaś luka w tych regułach ale nie wiem jaka ;/

 

Odnośnik do komentarza
Udostępnij na innych stronach

Masz błędy. Tak mi się przynajmniej wydaje na szybko patrząc.

To w ogóle daje się uruchomić? Wg mnie powinno sypać błędami przy starcie.

 

iptables -A OUTPUT -p tcp -m state ESTABLISHED,RELATED -j ACCEPT

Wg mnie brakuje "--state", czyli powinno być

iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

 

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Dot. części "#rest of the yum connection". Tutaj "--state" jest, ale łańcuch to chyba powinien być INPUT jak w poleceniu o wiersz wyżej.

 

[EDIT]

Google: "yum iptables" → http://www.kernelhardware.org/linux-iptables-blocking-yum/

Odnośnik do komentarza
Udostępnij na innych stronach

Problem w tym że źle przepisałem ;)

#initaiating yum conection 
        iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
        iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

#rest of the yum connection 
        iptables -A INPUT --sport 80 -j ACCEPT
        iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

Natomiast to co znalażłeś czytałem i na podstawie tego budowałem swoje regułki ;) Niestety nwet zakomentowanie moich i wklejenie tych:

 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp -m state --state NEW --dport 80 -j ACCEPT

nic nie zmienia yum jak był zblokowany tak dalej jest

Odnośnik do komentarza
Udostępnij na innych stronach

Problem w tym że źle przepisałem ;)
Dlatego nie należy przepisywać a kopiować. Po to Bóg kazał stworzyć funkcje copy i paste.

I nadal w drugiej części masz łańcuch OUTPUT a nie INPUT.

 

A przepisując reguły z linku, który znalazłem należy przeanalizować całość wpisów. Przetwarzanie reguł jest kończone na pierwszej pasującej, więc jeśli przed wpisanymi regułkami jest inna, która powoduje zakończenie przetwarzania, to te przepisane nigdy nie są przetwarzane.

 

Czyli jeśli pierwsza regułą jest (przykład prawdopodobnie bez sensu ale chodzi o zasadę)

iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j DROP

to jeśli nawet w następnej linii napiszesz

iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

to i tak wszystki pakiety ustanowione i skorelowane będą odrzucane na podstawie 1. reguły, która mówi "DROP".

 

Ergo: sprawdź cały skrypt. Pokaż może "iptables-save" albo jakieś tam "iptables -L" (osobiście wolę to pierwsze polecenie - jest jakoś imho bardziej czytelne)

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jedyne DROP mam na domyślnej polityce cała reszta to ACCEPT więc nie ma gdzie się zatrzymać by nie przeszło.

Skopiowałem te regułki z linka i ale przedtem nie dodałem regułek dla DNS dlatgo ine daiłało mirror list yuma.

Teraz dochodzi do :

#  yum update
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile

i stoi ... Gdzie links(http) działa przy tych ustawieniach DNS:

      
       iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
        iptables -A INPUT  -p udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

Odnośnik do komentarza
Udostępnij na innych stronach

Jedyne DROP [...]
To był tylko przykład :D

 

Chodzi mi o to, że jeżeli reguła blokująca jakieś działanie jest wcześniej a reguła zezwalająca na podobne działanie występuje później, to wykona się tylko wcześniejsza. Tak więc rozgryzienie problemu wymaga analizy wszystkich reguł od początku do końca. Wyrwane z kontekstu, dopisane na końcu (opcja "-A") reguły mogą być nigdy nie wykonywane.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Rozumiem ;)

Proszę bardzo, oto skrypt do momentu wywołania regułem dla yuma w obu wersjach przekopiowanej z linka oraz mojej (obie nie działają) ;):

iptables -F
#ssh
	iptables -A INPUT  -p tcp --dport 22 -j ACCEPT
	iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
# def
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP


#  localhost

	iptables -A INPUT  -i lo -j ACCEPT
#	   iptables -A OUTPUT -o lo -j ACCEPT


# Accept packets belonging to established and related connections
	iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#icmp
#incoming ping:
	iptables -A INPUT  -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
	iptables -A OUTPUT -p icmp -m state --state	 ESTABLISHED,RELATED -j ACCEPT

#outgoing ping:
	iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
	iptables -A INPUT  -p icmp -m state --state	 ESTABLISHED,RELATED -j ACCEPT


# DNS 
	iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
	iptables -A INPUT  -p udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
#http
#initaiating yum conection
	iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
	iptables -A OUTPUT -p tcp  -j ACCEPT

#rest of the yum connection
	iptables -A INPUT --sport 80 -j ACCEPT
	iptables -A OUTPUT --dport 80 -j ACCEPT

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#  iptables -A OUTPUT -p tcp -m tcp -m state --state NEW --dport 80 -j ACCEPT

Odnośnik do komentarza
Udostępnij na innych stronach

Wg mnie powinieneś skupić się na łańcuchu OUTPUT. Ja mam nieco niefrasobliwie ustawiony OUTPUT na ACCEPT natomiast domyślnie odrzucany INPUT pokonuję regułką, którą masz wpisaną przed tymi, o których pisałeś wcześniej (nazwijmy ją #1)

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

i yum działa bez problemów.

Poza tym wg mnie wpis

iptables -A INPUT --sport 80 -j ACCEPT

jest zbędny, bo to Ty nawiązujesz połączenie czyli yum załapuje się na wejściu na regułę #1.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...