Si vous bloquez toutes les connexions entrantes, comment pouvez-vous toujours utiliser Internet?

22

Si votre FAI ou votre pare-feu bloque toutes les connexions entrantes, comment les serveurs Web peuvent-ils toujours vous envoyer des données vers votre navigateur? Vous envoyez la demande (sortante) et le serveur envoie des données (entrantes). Si vous bloquez tous les appels entrants, comment le serveur Web peut-il répondre?

Qu'en est-il du streaming vidéo et des jeux multijoueurs, où il utilise UDP? UDP est sans connexion, il n'y a donc pas de connexion à établir, alors comment le pare-feu ou le FAI va-t-il gérer cela?

Kunal Chopra
la source
2
Bloquer tous les appels téléphoniques entrants / Transférer tous les appels téléphoniques entrants vers la messagerie vocale? Cela ne vous empêche pas d'appeler quelqu'un.
WernerCD

Réponses:

43

"Blocage entrant" signifie que les nouvelles connexions entrantes sont bloquées, mais le trafic établi est autorisé. Donc, si de nouvelles connexions sortantes sont autorisées, la moitié entrante de cette conversation est correcte.

Le pare-feu gère cela en suivant l'état des connexions (un tel pare-feu est souvent appelé «pare-feu avec état»). Il voit le TCP SYN sortant et le permet. Il voit un SYN / ACK entrant, et peut vérifier qu'il correspond au SYN sortant qu'il a vu, et le laisse passer, et ainsi de suite. S'il autorise une prise de contact à trois voies (par exemple, il est autorisé selon les règles du pare-feu), il autorisera cette conversation. Et quand il verra la fin de cette conversation (FIN ou RST), il supprimera cette connexion de la liste des paquets à autoriser.

UDP se fait de la même manière, bien qu'il implique que le pare-feu se souvienne suffisamment pour prétendre qu'UDP a une connexion ou une session (ce qui n'est pas le cas pour UDP).

gowenfawr
la source
1
Pour UDP, puisqu'il n'y a pas de connexion réelle, le pare-feu suivra généralement l'IP et le port de destination des paquets UDP sortants, et s'il y a un paquet entrant avec la même IP et le même port que la source, il supposera qu'il s'agit d'une réponse et le laissera in.
WhiteWinterWolf
17

@gowenfawr a l'image de haut niveau vers le bas. Cependant, j'ai pensé ajouter quelques détails sur la façon dont la "correspondance" pour le suivi des connexions est effectuée, car cela pourrait sembler magique aux non-initiés.

Chaque connexion TCP a un numéro de port de chaque côté. Comme la plupart des techniciens le savent, les serveurs HTTP fonctionnent sur le port 80. Lorsque votre navigateur se connecte à un serveur Web, il demande au système d'exploitation de générer un numéro de port "local", qui sera quelque chose de aléatoire comme 29672 qui n'est utilisé par aucun autre Connexion TCP à partir de cet ordinateur (et le système d'exploitation peut le faire car il connaît toutes les connexions TCP actives). Ensuite, un paquet de configuration TCP initial sera envoyé depuis l'IP (IP_YOURS) et le numéro de port 29672 de votre machine vers l'IP du serveur Web (IP_WEBSERVER) et le numéro de port 80. À ce stade, le pare-feu dynamique indiquera "aha, futurs paquets du port IP_WEBSERVER 80 allant vers le port IP_YOURS 29672 ne sont pas de nouvelles connexions, ce sont des réponses à une connexion existante et doivent être autorisées ". Les pare-feu avec état maintiennent une table,

Atsby
la source
3
C'est généralement correct, mais, comme quelques points mineurs, les numéros de port s'arrêtent à 65535 (ce sont des numéros non signés 16 bits) et, en plus du délai d'attente, les paquets avec les drapeaux FIN ou RST définis peuvent également signaler qu'un TCP la connexion est maintenant fermée.
reirab
@reirab Oh whoops, ouais le numéro de port échoue. À la fermeture, il serait bien sûr possible d'inspecter les drapeaux TCP, mais le fait de prendre en compte la perte éventuelle de paquets et la retransmission de séquences proches est suffisamment compliqué pour que je suppose que la plupart des pare-feu réutilisent simplement l'entrée de table la moins récemment utilisée plutôt que de conserver suivre avec précision.
@atsby Vous pouvez toujours modifier votre message et remplacer les numéros de port par quelque chose de plus approprié?
Ce sont toutes d'excellentes informations. Je voulais juste ajouter une chose aux ports discutés par les commentaires ci-dessus. Ils sont appelés «ports éphémères» et leur plage est définie par un noyau spécifique à chaque système d'exploitation. Sous Linux, vous pouvez les obtenir par "cat / proc / sys / net / ipv4 / ip_local_port_range" --- la plage par défaut est "32768 à 61000"
Arul Selvan