2 votes

Capture de paquets VPN sur l'ASA5505

Suite à un question précédente concernant la façon de capturer les paquets sur l'ASA5505, j'ai quelques difficultés à distinguer le trafic qui provient du VPN et celui qui est généré par le pare-feu lui-même.

Pour résumer le problème, j'ai une application qui se connecte à un serveur telnet via un vpn et elle reçoit des paquets de réinitialisation lorsqu'elle envoie des données après que la connexion soit restée inactive pendant un certain temps. J'aimerais savoir d'où proviennent ces réinitialisations, soit du routeur/serveur telnet de l'autre côté d'un VPN, soit de l'ASA5505 de mon côté derrière lequel se trouve le serveur d'application. J'ai lu que la série ASA abandonnait des connexions en raison d'un faible délai d'attente par défaut et j'espère que c'est là le problème.

J'ai capturé des paquets sur le serveur d'application pour identifier les réinitialisations. J'ai maintenant capturé les paquets sur l'interface interne du pare-feu et les réinitialisations sont là aussi. Ce que je ne peux pas faire, c'est capturer les paquets sortant du tunnel VPN pour voir s'ils sont là aussi. J'ai essayé de capturer tous les paquets sur l'interface extérieure mais il n'y a pas de paquets du tout, donc je suppose que les données VPN ne peuvent pas être capturées via l'interface extérieure. Quelqu'un sait-il comment je peux capturer les paquets dès qu'ils sortent du tunnel VPN ?

Pour capturer les paquets à l'intérieur, j'ai fait correspondre le serveur telnet comme source :

capture capture1 interface Inside match tcp 171.28.18.50 255.255.255.255 any

Pour tenter de capturer les paquets à l'extérieur, j'ai fait correspondre toute source/destination qui n'est pas la connexion ssh que j'ai établie pour surveiller la capture :

capture capture2 interface Outside match tcp any neq 22 any neq 22

La ligne timeout conn dans la config est :

timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02

Mise à jour : Suite à la suggestion de Shane Madden, j'ai capturé les paquets ESP et j'ai maintenant établi que le reset est bien généré par l'ASA. Je vais maintenant essayer d'augmenter le nombre de paquets ESP. timeout conn

Mise à jour : Je n'ai pas encore augmenté le timeout conn mais j'ai surveillé la connexion VPN à l'aide du graphique de l'ASDM et il semble que lorsqu'elle est inactive pendant 30 minutes, le tunnel est fermé. Je soupçonne que lorsqu'il est fermé, la connexion TCP est rompue et qu'en envoyant plus de données sur la connexion après une heure, l'ASA répond avec la réinitialisation. 30 minutes est la valeur par défaut pour vpn-idle-timeout . Lorsque j'exécute show run | include vpn-idle-timeout Je n'obtiens rien en retour, donc j'espère que je dois juste trouver comment régler l'option vpn-idle-timeout variable.

2voto

Shane Madden Points 112034

Les paquets ESP devraient être capturés sans problème - ils ne seront simplement pas très utiles pour voir s'il y a une réinitialisation, puisqu'ils sont toujours cryptés (quelle est la liste de contrôle d'accès (ACL) ou la déclaration de correspondance (match statement) sur votre site Web ? capture ressembler ?).

Essayer de faire correspondre les horodatages des paquets ESP aux horodatages des paquets de réinitialisation est le meilleur moyen auquel je pense pour déterminer si l'ASA génère les réinitialisations.

Question bête : quel est votre timeout conn sur l'ASA est réglé sur ?

0voto

joeqwerty Points 106914

Cette ligne provient-elle de la configuration réelle de l'ASA ?

timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02

Si oui, alors c'est votre réponse, c'est le pare-feu. TCP n'implémente aucun mécanisme pour déterminer si une connexion est toujours vivante ou non (à ma connaissance). Le client et le serveur devraient donc, en théorie, être parfaitement satisfaits de maintenir la session même si aucune donnée ne circule. L'un ou l'autre peut implémenter les keepalives TCP mais cela aurait l'effet inverse de ce que vous voyez. Un keepalive TCP de l'un ou l'autre côté amènerait le pare-feu à considérer la connexion comme active.

La terminaison normale d'une connexion TCP consiste pour l'hôte qui a initié la connexion à envoyer un FIN à l'autre extrémité, ce qui donne une connexion à moitié fermée du point de vue de l'initiateur et (sauf problème) la connexion TCP se poursuivra par le processus de fermeture. Ce processus est gracieux et ne provoque pas de RST TCP. Si l'un des deux côtés de la connexion tombe en panne, il en résultera une connexion semi-ouverte, mais là encore, aucun des deux côtés ne peut le détecter (à ma connaissance) et aucun RST ne sera émis, sauf par le pare-feu. Aucun des deux côtés ne devrait envoyer de RST en raison d'une longue connexion inactive, à moins que le logiciel de l'un ou l'autre côté (logiciel client telnet ou logiciel serveur telnet) ne soit programmé pour émettre un RST ou un type de commande de fin pour les connexions inactives longues.

À titre de test (et pour pouvoir effectuer une capture sur l'interface externe du pare-feu), vous pourriez envisager d'établir une session telnet vers un autre serveur (si disponible) qui ne transite pas par la connexion VPN et la laisser en veille. Vous pourriez aussi probablement faire un test en établissant une connexion FTP vers un serveur externe qui ne transite pas par la connexion VPN et la laisser inactive. Si vous constatez le même comportement RST, je pense qu'il est fort probable que le pare-feu en soit la cause.

0voto

Tim Points 106

Avez-vous envisagé d'appliquer un timeout TCP sur la connexion entre le serveur d'applications et le serveur telnet ? J'essaierais de l'appliquer sur l'interface de votre ASA la plus proche de votre serveur d'applications, après l'avoir testé.

Voici un exemple : access-list no_tcp_timeout extended permit ip object appserver object telnetserver

class-map no_tcp_timeout match access-list no_tcp_timeout

politique-map dmz_policy classe no_tcp_timeout

politique de service dmz_policy interface dmz

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X