Puncte:0

Pot bloca în siguranță aceste tipuri de mesaje ICMPv6 pe un server web?

drapel ca

Am un VPS Debian 11 pe un furnizor de cloud, cu atât IPv4, cât și IPv6 activate și interfața eth0 cu atât o adresă IPv6 la nivel global (publică), cât și o adresă IPv6 la nivel de legătură (fe80::/10).

Unicul scop al serverului este de a găzdui un site web public.

Implementez un firewall pe server folosind iptables/ip6tables. Am citit RFC4890, dar încă nu sunt sigur cum să gestionez unele tipuri de mesaje ICMPv6 și dacă sunt într-adevăr necesare pentru cazul meu de utilizare. În timp ce permit orice trafic în domeniul de aplicare a link-ului, Nu sunt sigur dacă pot bloca în siguranță următoarele tipuri de mesaje ICMPv6 pe de anvergură globală:

  • Solicitare router (Tip 133)

  • Publicitate pentru router (Tip 134)

  • Solicitare vecin (Tip 135)

  • Anunț pentru vecin (Tip 136)

  • Solicitare de descoperire inversă a vecinului (tip 141)

  • Anunț de descoperire inversă a vecinilor (tip 142)

  • Interogare de ascultător (Tip 130)

  • Raport ascultător (Tip 131)

  • Ascultător gata (Tip 132)

  • Raport ascultător v2 (Tip 143)

  • Solicitare cale de certificat (tip 148)

  • Anunț pentru calea certificatului (Tip 149)

  • Publicitate de ruter multicast (Tip 151)

  • Solicitare ruter multicast (tip 152)

  • Terminare ruter multicast (Tip 153)

Multumesc mult pentru orice ajutor.

Puncte:3
drapel cn

Permiteți toate tipurile ICMPv6. Limitați viteza pachetelor ICMPv6 pe secundă, acolo unde este posibil, pentru a limita utilizarea resurselor pe dispozitivele IP. Aceasta este calea ușoară și nu este atât de nesigur pe cât pare.


Sau, metoda de cercetare este să citești Recomandări RFC 4890 pentru filtrarea mesajelor ICMPv6 în firewall-uri. Rețineți lipsa trebuie sa să fie abandonat recomandări pentru început.

„Link-global” nu este un termen standard. Cred că te referi la unicast (global). Spre deosebire de link-local sau multicast, care sunt în intervale definite. În plus, veți dori un firewall cu un concept de zonă. Deoarece probabil că doriți o politică diferită pentru prefixele dvs. față de internet, dar ambele sunt la nivel global de unicast.

RFC explică că multe dintre aceste mesaje locale nu necesită filtrare specială. Routerele compatibile nu vor redirecționa legătura din sursă locală. Gazdele conforme care primesc mesaje de descoperire a vecinilor vor confirma că nu au trecut printr-un router. Și multe firewall-uri sunt routere, așa că aveți nevoie de descoperirea vecinilor, inclusiv RA-uri, pentru a funcționa.


Ca exemplu practic, să aruncăm o privire rapidă asupra gestionării implicite ICMPv6 a unui router libre, OpenWrt. Această întrebare include mai mult sau mai puțin regulile implicite de firewall ICMPv6.

Zona „lan” implicit acceptă toți.Zona „wan” este implicit doar de ieșire. Firewall simplu tipic. Regulile de permitere provin din wan:

regula de configurare
        numele opțiunii „Allow-ICMPv6-Input”
        opțiunea src 'wan'
        opțiunea proto 'icmp'
        listă icmp_type 'echo-request'
        listă icmp_type „echo-reply”
        list icmp_type 'destination-unreachable'
        list icmp_type 'pachet-prea-mare'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'tip-antet-necunoscut'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        listă icmp_type 'router-publicitate'
        list icmp_type 'vecin-reclamă'
        limita opțiunii „1000/sec”
        familia de opțiuni „ipv6”
        opțiune țintă „ACCEPT”

regula de configurare
        numele opțiunii „Allow-ICMPv6-Forward”
        opțiunea src 'wan'
        opțiunea dest '*'
        opțiunea proto 'icmp'
        listă icmp_type 'echo-request'
        listă icmp_type „echo-reply”
        list icmp_type 'destination-unreachable'
        list icmp_type 'pachet-prea-mare'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'tip-antet-necunoscut'
        limita opțiunii „1000/sec”
        familia de opțiuni „ipv6”
        opțiune țintă „ACCEPT”

De cele mai multe ori nu trebuie abandonate tipurile, vezi secțiunea 4.4.1. Rețineți în „Allow-ICMPv6-Forward” tipurile de eroare și ecoul sunt întotdeauna permise, de intrare sau de ieșire.

regula de configurare
        numele opțiunii „Allow-MLD”
        opțiunea src 'wan'
        opțiunea proto 'icmp'
        opțiunea src_ip „fe80::/10”
        listă icmp_type „130/0”
        listă icmp_type „131/0”
        listă icmp_type „132/0”
        listă icmp_type „143/0”
        familia de opțiuni „ipv6”
        opțiune țintă „ACCEPT”

Mesaje de notificare a receptorului multicast cu link-local.

În general, permite totul în zona internă și permite erorile, ecoul, descoperirea vecinilor și ICMP legate de multicast să provină de pe internet.Nu permite altor lucruri precum SEND să traverseze internetul. Nu este singura modalitate de a filtra aceste lucruri, dar cel puțin nu rupe IPv6.

drapel ca
Vă mulțumesc că mi-ați indicat terminologia corectă (referitor la link și domeniul global), am reparat-o. Desigur, vă mulțumesc pentru răspuns, lăsați-mă să-l studiez și să detaliez înainte de a da un feedback.
drapel ca
Pe baza sugestiilor dvs. și a exemplelor de reguli incluse în RFC și pe baza celor observate până acum pe cutia mea Debian (adică singurele reguli ip6tables care numără pachetele fiind tipurile ICMPv6 128, 135, 136), am ajuns cu un set de reguli care permit următoarele tipuri pe sfera globală: 1, 2, 3, 4, 128, 135, 136. În timp ce link-scope (fe80::/10) permite tot traficul. Bănuiesc că alte tipuri ICMPv6 nu sunt necesare deoarece adresa IPv6 și gateway-ul sunt alocate static. Urmăresc această situație pentru a vedea dacă se strică ceva. Până acum, bine. Orice feedback este apreciat.
Puncte:0
drapel ca

Pe baza cercetărilor mele am ajuns să am următoarele reguli. Am un număr de pachete 0 după regula LOG REJECT pentru tipurile ICMPv6 în regulile comentate (adică: tipuri dezactivate).

#
# INBOUND ICMPv6
# Tipurile comentate nu sunt necesare;
# acele tipuri care ar fi permise numai pentru link-local sunt comentate, de asemenea 
# deoarece link-local este permis tot traficul.
#

ip6tables -N ICMP6

ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 1 -j ACCEPT # Destinație inaccesabilă
ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 2 -j ACCEPT # Pachet prea mare
ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 3 -j ACCEPT # Timp depășit
ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 4 -j ACCEPT # Problemă de parametru
ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 128 -j ACCEPT # Solicitare Echo
#ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 133 -j ACCEPT # Solicitare router
#ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 134 -j ACCEPT # Publicitate router
ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 135 -j ACCEPT # Solicitare vecin
ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 136 -j ACCEPT # Neighbor Advertisement
#ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 141 -j ACCEPT # Solicitare de descoperire inversă a vecinului
#ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 142 -j ACCEPT # Publicitate Inverse Neighbor Discovery
#ip6tables -A ICMP6 -s fe80::/10 -p icmpv6 --icmpv6-type 130 -j ACCEPT # Interogare ascultator
#ip6tables -A ICMP6 -s fe80::/10 -p icmpv6 --icmpv6-type 131 -j ACCEPT # Ascultător Raport
#ip6tables -A ICMP6 -s fe80::/10 -p icmpv6 --icmpv6-type 132 -j ACCEPT # Ascultător gata
#ip6tables -A ICMP6 -s fe80::/10 -p icmpv6 --icmpv6-type 143 -j ACCEPT # Listener Report v2
#ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 148 -j ACCEPT # Solicitare cale certificat
#ip6tables -A ICMP6 -p icmpv6 --icmpv6-type 149 -j ACCEPT # Certificate Path Advertisement
#ip6tables -A ICMP6 -s fe80::/10 -p icmpv6 --icmpv6-type 151 -j ACCEPT # Multicast Router Advertisement
#ip6tables -A ICMP6 -s fe80::/10 -p icmpv6 --icmpv6-type 152 -j ACCEPT # Solicitare router multicast
#ip6tables -A ICMP6 -s fe80::/10 -p icmpv6 --icmpv6-type 153 -j ACCEPT # Terminare router multicast

# DROP totul în lanțul ICMP6
ip6tables -A ICMP6 -p icmpv6 -j LOG --log-level 7 --log-prefix "[FW.IN drop ICMP6] "
ip6tables -A ICMP6 -p icmpv6 -j DROP

ip6tables -A INTRARE -p icmpv6 -j ICMP6

Deci concluzia mea este că un server web are nevoie doar de tipurile 1,2,3,4,128,135,136

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.