Puncte:0

Ufw permite tot traficul de intrare ca răspuns la solicitările de ieșire?

drapel zm

Sunt confuz cum funcționează ufw. Am căutat pe site, dar majoritatea problemelor opresc traficul, problema mea permite traficul.

Am configurat ufw pentru a permite numai portul meu personalizat ssh; cu toate acestea, rulez un program java pe server care se conectează la un alt server prin portul 4246 și totuși toate datele de pe celălalt server sunt permise în serverul meu, chiar dacă nu am setat portul 4246/tcp deschis. De asemenea, nu am permis niciun http sau https, dar toate comenzile apt funcționează fără probleme.

După cum am înțeles, funcția implicită a ufw este „deny (incoming), allow (outgoing)”. Înseamnă asta că atâta timp cât conexiunea este creată din interiorul serverului, orice date ca răspuns sunt permise? Există o modalitate reală de a preveni acest lucru și de a permite accesul datelor numai dacă sunt configurate în ufw, indiferent dacă s-a făcut o conexiune din interiorul serverului?

Mulțumesc anticipat!

drapel ar
„*Inseamnă asta că atâta timp cât conexiunea este creată din interiorul serverului, orice date ca răspuns sunt permise?*” **Da!**
Doug Smythies avatar
drapel gn
Puteți face ceea ce doriți, dar ar putea fi mai ușor să utilizați iptables direct, mai degrabă decât UFW. Dacă doriți o politică implicită de DROP pentru lanțul OUTPUT, atunci va trebui să gestionați lucruri precum DNS și DHCP cu reguli iptables individuale, în plus față de traficul personalizat de port ssh.
drapel ar
„*De asemenea, nu am permis niciun http sau https, dar toate comenzile apt funcționează fără probleme.*” Așa funcționează Internetul. Browserul web cum ar fi crome sau, în acest caz, programul `apt` trimite un mesaj la portul 80 (sau 443) al serverului web și îi spune să trimită datele (pagina web) înapoi folosind portul XXXXXX, unde XXXXXX este un număr aleatoriu. Când „negați (intrare)” nu respinge pachetele de intrare care sunt solicitate în mod specific de pachetul de ieșire.
drapel ar
Consultați [această întrebare și răspunsuri](https://stackoverflow.com/questions/2301075/client-use-high-port-number) pentru răspunsuri mai specifice despre modul în care funcționează porturile efemere/neînregistrate.
Doug Smythies avatar
drapel gn
@user68186 : „nu respinge pachetele de intrare care sunt solicitate în mod special de pachetul de ieșire.” bine, ufw (care este doar un front end pentru iptables) face asta în mod implicit, dar nu trebuie să ACCEPTĂ astfel de răspunsuri dacă nu doresc.
drapel ar
@DougSmythies destul de corect. Poate ai putea sa scrii un raspuns.
drapel zm
mulțumesc pentru informații @user68186 și pentru răspunsul la o parte a întrebării.
Puncte:0
drapel gn

Întrebarea era despre UFW, dar acest răspuns folosește iptables direct și ar putea să nu fie ceea ce se dorește.

Puteți bloca pachetele de rețea de ieșire și de intrare, cu excepția celor SSH cu acest script iptables:

#!/bin/sh
FWVER=0,01
#
# ask1393247 Smythies 2022.02.16 Ver:0.01
#       Vezi aici:
# https://askubuntu.com/questions/1393247/does-ufw-allow-all-incoming-traffic-in-response-to-outbound-requests?noredirect=1#comment2409932_1393247
# rulați ca sudo pe s19.
# A început de mai jos:
#
# ask1368071 Smythies 2021.10.08 Ver:0.01
#       Vezi aici:
# https://askubuntu.com/questions/1368071/iptables-that-only-allow-incoming-traffic-to-openssh-and-block-all-other-traffic
# rulați ca sudo pe s19.
# intrări de jurnal sunt numai pentru fiecare pachet ssh NOU. Pare nerezonabil să înregistrezi fiecare pachet ssh, dar s-ar putea face.
#

echo „Se încarcă versiunea setului de reguli ask1393247 $FWVER..\n”

# Locația programului iptables
#
IPTABLES=/sbin/iptables

#Setarea interfețelor și adreselor EXTERNE și INTERNE pentru rețea
#
# Setat pentru computerul Smythies s19 (pentru testare). Editați pentru computerul lui ask1393247.
EXTIF="br0"
EXTIP="192.168.111.136"
NETWORK="192.168.111.0/24"
UNIVERS="0.0.0.0/0"

# Ștergerea oricărei configurații anterioare
# Fii atent aici. Pot face asta pe s19, dar nu știu
# despre computerul altor utilizatori.
#
echo „Ștergerea oricăror reguli existente și setarea politicilor implicite..”
$IPTABLES -P INTRARE DROP
$IPTABLES -F INTRARE
$IPTABLES -P CĂDERARE IEȘIRE
$IPTABLES -F IEȘIRE
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F

# Ștergeți lanțurile definite de utilizator
$IPTABLES -X
# Resetați toate contoarele IPTABLES
$IPTABLES -Z
# Smythies: Deși referințele mele nu îl au, cred că este necesar.
$IPTABLES -t nat -Z

# interfețe loopback sunt valide.
#
$IPTABLES -A INTRARE -i lo -s $UNIVERS -d $UNIVERS -j ACCEPT

# Permiteți orice trafic asociat să revină pe server.
# Din motive necunoscute, ask1393247 nu dorește versiunea generică. Așa a comentat.)
#$IPTABLES -A INTRARE -i $EXTIF -s $UNIVERS -d $EXTIP -m stare --stare ESTABLISHED,RELATED -j ACCEPT
# ask1393247 pare să dorească asta:
ecou „steagul 1”
$IPTABLES -A INTRARE -i $EXTIF -s $UNIVERS -d $EXTIP -m stare --stare ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
ecou „steagul 2”

# Permiteți și înregistrați noile conexiuni SSH. Nu este necesar dacă nu doriți să înregistrați sesiuni, dar apoi trebuie să adăugați NOU mai sus.
# Notă: folosesc portul 22, pentru că nimeni altcineva nu poate ajunge aici oricum. Schimbați-vă în portul dvs.
#
$IPTABLES -A INTRARE -i $EXTIF -m stare --stare NOU -p tcp -s $UNIVERSE -d $EXTIP --dport 22 -j LOG --log-prefix „trafic ssh:” --log-level info
$IPTABLES -A INTRARE -i $EXTIF -m stare --stare NOU -p tcp -s $UNIVERS -d $EXTIP --dport 22 -j ACCEPT

# Acum, de asemenea, eliberează doar ssh:
$IPTABLES -A IEȘIRE -o $EXTIF -p tcp --sport 22 -m stare --state ESTABLISHED,RELATED -j ACCEPT

# Notă: dacă computerul dvs. utilizează DCHP, atunci va trebui să îl permiteți, atât intrarea cât și ieșirea.

# Terminat.
#
echo ask1393247 set de reguli versiunea $FWVER gata.

Și acesta este rezultatul:

doug@s19:~/iptables/misc$ sudo iptables -xvnL
INTRARE în lanț (politica DROP 133 pachete, 11819 octeți)
    pkts bytes target prot opt ​​in out source destination
       0 0 ACCEPT toate -- lo * 0.0.0.0/0 0.0.0.0/0
     202 13689 ACCEPT tcp -- br0 * 0.0.0.0/0 192.168.111.136 stare RELATED,STABLISHED tcp dpt:22
       4 280 LOG tcp -- br0 * 0.0.0.0/0 192.168.111.136 stare NOU tcp dpt:22 LOG semnalizatoare 0 nivel 6 prefix „ssh traffic:”
       4 280 ACCEPT tcp -- br0 * 0.0.0.0/0 192.168.111.136 stare NOU tcp dpt:22

Lanț FORWARD (politica ACCEPT 0 pachete, 0 octeți)
    pkts bytes target prot opt ​​in out source destination

IEȘIRE în lanț (politica DROP 14 pachete, 3240 octeți)
    pkts bytes target prot opt ​​in out source destination
     164 25505 ACCEPT tcp -- * br0 0.0.0.0/0 0.0.0.0/0 tcp spt:22 stare RELATED,STABLISHED
drapel zm
mulțumesc pentru informațiile despre partea „Există o modalitate reală de a preveni acest lucru” a întrebării. Este puțin probabil să implementez acest lucru, dar sunt informații utile. Îl voi marca ca răspuns.

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.