2008-11-29 6 views
0

J'ai deux serveurs dédiés et aucun pare-feu matériel. Je voudrais transférer toutes les demandes qui arrivent dans le serveur principal sur le port 1008 pour être remplies par un autre serveur dédié sur le même réseau. Je sais que je dois mettre en place une sorte de proxy TCP, mais j'ai entendu parler d'IPTables pour la première fois hier. Des astuces rapides?Quelle est la meilleure façon de transférer toutes les demandes sur un certain port vers une autre machine sur le réseau?

Répondre

1

Carson a raison: installer un pare-feu de pont entre les serveurs et les clients. Shorewall (tables IP) peut ensuite rediriger le trafic vers différents ports et différentes machines. Le pare-feu étant un pont, vous n'avez pas besoin de modifier vos paramètres réseau. Cependant, l'interface de pont doit recevoir une adresse IP de chaque client réseau et des serveurs. Sinon, la redirection ne fonctionnera pas. Avertissement: la machine sur laquelle la connexion a été pointée à l'origine doit être en ligne (cela signifie que son adresse IP doit être utilisée), sinon la redirection ne fonctionnera pas. Si la redirection est un moyen de basculement pour la haute disponibilité, je considérerais un équilibreur de charge (cluster) à la place du pare-feu, qui mène au serveur virtuel linux (pour une approche générale) ou à un équilibreur de charge logiciel comme Apache (avec mod proxy_balancer), balance ou pount (si seulement la requête http doit être équilibrée). Il y a aussi des appareils matériels comme f5 pour l'équilibrage de charge.

1

Tout d'abord, je vous recommande d'installer un pare-feu. J'ai utilisé Shorewall pendant longtemps pour gérer iptables et il est assez facile à configurer. Deuxièmement, si vous utilisez quelque chose comme Shorewall, il est facile guides on how to do DNAT (port fowarding).

2

Le moyen le plus simple est d'utiliser quelque chose qui n'est qu'un proxy TCP. Il est possible d'y parvenir en utilisant iptables, mais pas facile.

Il est facile de transférer des demandes de A destinées à B vers C (en utilisant DNAT) mais plus difficile d'obtenir que les réponses de C reviennent à A via B (parce que DNAT ne change pas l'adresse de l'expéditeur). A ignorerait alors les réponses car elles proviendraient de C plutôt que B.

Essentiellement la façon de le faire serait de configurer B comme la passerelle par défaut de C, et en utilisant le transfert, cependant, cela place un point supplémentaire d'échec dans B; si B échoue, le trafic sortant de C (y compris les réponses aux demandes envoyées directement à C) finirait par tomber dans un trou noir. En utilisant IPtables c'est possible sans cette astuce de routage je pense, mais vous auriez besoin d'avoir la même connexion SNAT et DNAT, ce qui est difficile au mieux. Normalement, dans de telles situations, la plupart des gens placent un autre hôte (pare-feu) devant les deux machines et prennent des décisions DNAT - bien sûr cela introduit également un point de défaillance, ce qui explique pourquoi dans les configurations critiques, le pare-feu a généralement une sauvegarde redondante (sa configuration est synchronisée et parfois sa table de suivi de connexion est)

Questions connexes