Kirjoittaja Aihe: Ulospäin menevän pingin blokkaus käyttäjältä ei onnistu  (Luettu 1873 kertaa)

pmw

  • Vieras
Moi,

olen vähän ymmälläni.  Tein tällaisen joskus aikasemmin jo ja kaikki toimi oikein.  Eli käyttäjältä "foobar" estetään liikennettä.   Muuten homma toimii hyvin, kaikki portit ovat kiinni, pelkästään ssh, webbi, dns toimii ja niitä pystyy rajotteleen connlimitillä.  Mutta tuo icmp ei vain blokkaudu.

Mitä en ole huomannut?

Koodia: [Valitse]
#!/bin/sh

iptables -F
iptables -X

uid=foobar

#iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p tcp --dport 6666:6670 -m connlimit --connlimit-above 3 -j DROP

iptables -A OUTPUT -o wlan0 -m multiport -m owner --uid-owner $uid -p tcp --dports 6666:6670,80 -j ACCEPT
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p udp --dport 53 -j ACCEPT

iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -j DROP
« Viimeksi muokattu: 24.02.11 - klo:15.23 kirjoittanut pmw »

ditl

  • Vieras
Pari vuotta sitten harjoittelin webbiserverin pystyttämistä ja silloin tutustuin iptables komentoihin.

Se osuu tuossa listassasi silmään että siitä ei näy policy määrittelyjä. Tähän tapaan:

iptables --policy INPUT DROP
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT

Yleensä halutaan tukkia sisäänpyrkijöiden reitti. Ulospäin menevät oletetaan ystävällismielisiksi, siksi oletus ACCEPT. Noita sitten lievennetään komento kerrallaan.

Icmp osalta sallin silloin kyselyt ja vastaukset:

iptables -A INPUT -s 192.168.11.0/24 -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -s 192.168.11.0/24 -p icmp --icmp-type echo-request -j ACCEPT

Muistaakseni netissä oli veivattu puoleen ja toiseen kysymystä onko hyötyä estää icmp ja muistaakseni parhaat perustelut oli sille että paras sallia icmp.

Kumpi esto sinun tapauksessa ei toimi, icmp kysely vai vastaus? Ainakin näytät yrittävän estää kyselyn.

pmw

  • Vieras
Nimenomaan ulospäin.  Asetin vähän tarkemmin noita ehtoja tuohon.
Ja nimenomaan pingi ulospäin koska on käyttäjärajoitus. INPUTilla ei pysty määrittelemään käyttäjää.

Jostain käsittämättömästä syystä tämä ei vain toimi.  Omat aivoni ei enää keksi mikä tässä voisi olla vikana.

Koodia: [Valitse]
#!/bin/sh

iptables -F
iptables -X
iptables --policy INPUT ACCEPT
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


uid=petteri

#iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p tcp --dport 6666:6670 -m connlimit --connlimit-above 3 -j DROP

iptables -A OUTPUT -o wlan0 -m multiport -m owner --uid-owner $uid -p tcp --dports 6666:6670,80,22 -j ACCEPT
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p udp --dport 53 -j ACCEPT

iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -j DROP

ditl

  • Vieras
Minkälaista laitetta olet konfaamassa?

Nämä rivit tuossa ihmetyttää:
iptables --policy INPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Koska 1. rivi sallii kaikki, niin jälkimmäinen rivi on tarpeeton.

Jos olisi tavallisemmin
iptables --policy INPUT DROP
niin tuo rivi
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
olisi mielekäs.

Tässä samanlainen tapaus:
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -j DROP
Viimeinen rivi tiputtaa kaikki joten kaksi ensimmäsitä riviä turhia.

Tässä taas päällekkäisiä
iptables --policy OUTPUT ACCEPT
iptables -A OUTPUT -o wlan0 -m multiport -m owner --uid-owner $uid -p tcp --dports 6666:6670,80,22 -j ACCEPT
iptables -A OUTPUT -o wlan0 -m owner --uid-owner $uid -p udp --dport 53 -j ACCEPT

Sulla on OUTPUT puolella välillä drop, välillä ACCEPT.

En ole expertti asiassa mutta minusta näyttää että et ole ihna ymmärtänyt miten iptables rakennetaan.
Siis ensin policy ja sitten päinvastaiset ehdot.
Mitä yrität rakentaa?

pmw

  • Vieras
Näköjään sinne meni aamutuiman konffauksissa rivejä miten sattuu.
Oli miten oli, tuo ICMP tuntuu jotenkin bugittavan. Kaikki normaalit TCP/UDP-kyselyt ulospäin estyvät ipt_ownerin kanssa, mutta ICMP ei.

Nopean googlettelun mukaan monella muulla sama juttu, debian-forumilla kyselin hommaa ja siellä sanoivat myös etteivät saa toimiin.

Liekö ihan bugi netfilterissä?

ditl

  • Vieras
Kokeilin Debian 6.0 testikoneessani tuota

iptables --policy OUTPUT ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

ja kyllä se toimi.

Tuo user id esto ei toiminut. Tuleekohan nuo icmp kernelistä?

"Packets from kernel threads do have a socket, but usually no owner."
« Viimeksi muokattu: 25.02.11 - klo:08.58 kirjoittanut ditl »

pmw

  • Vieras
Jep tämäkin kone 6.0.  Ja ilmeisesti se on niin että pingit menee rootin kautta, eli pitäisi rootiltakin estää.

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
CSF:llä voi blokata pingit kumpaankiin suuntaan.

pmw

  • Vieras
Tietyiltä käyttäjiltä?