Tomcat과 2개의 MS SQL 서버(SqlOLD - 192.168.4.23 및 SqlNew - 192.168.4.28)가 있는 Linux 웹 서버(CentOS7)가 있습니다. 이전 SQL의 패킷을 새 SQL(포트 tcp/1433)로 전달하려면 웹 서버에 규칙을 추가해야 합니다.
고정 IP로 컴파일된 일부 웹 앱이 있고 내 방식대로 다시 빌드할 수 없기 때문에 이것이 필요합니다.
답변1
이것은 흥미로운 질문입니다. 주소를 다시 쓰는 일반적인 방법은 NAT PREROUTING
테이블을 사용하는 것이지만 여기서는 작동하지 않습니다. 트래픽이 원본 웹 서버로 이동하지 않고 에 있기 때문에 테이블 DNAT
에서는 사용할 수 없습니다 . 대신 이는 (NAT 테이블이기는 하지만) 체인에 배치되어야 하는 매우 드문 경우 중 하나입니다.PREROUTING
DNAT
POSTROUTING
DNAT
OUTPUT
iptables -t nat -I OUTPUT -o eth0 --dst 192.168.4.23 -j DNAT --to 192.168.4.28
그러면 인터페이스를 통해 192.168.4.23으로 전송된 모든 출력 헤더를 가져와 eth0
(CentOS 환경에 맞게 조정해야 할 수도 있음) 192.168.4.28로 다시 작성합니다. 포트 번호~해야 한다끊임없는. 커널에 conntrack 모듈이 있으면 반환된 패킷이 자동으로 다시 작성되어야 합니다.
규칙을 나열하려면 iptables
5개의 개별 명령(5개의 규칙 세트가 있음)을 실행해야 하지만 실제로는 대부분의 경우 관리하려는 규칙에 대해 처음 두 명령이면 충분합니다.
iptables -nvL # Blocking and permitting packets ("-t filter")
iptables -t nat -nvL # Rewriting packets, eg different destinations
iptables -t mangle -nvL # Not used so often
iptables -t raw -nvL # Used rarely
iptables -t security -nvL # SELinux
규칙을 삭제하려면 규칙을 반복하거나 변경 -I
(삽입) 또는 -A
(추가)를 -D
(삭제)하면 됩니다.
이에 대한 많은 튜토리얼이 있습니다 iptables
. 이제 CentOS를 사용하고 있으므로 고급 방화벽 도구를 배울 가치가 있다는 것을 알게 될 것입니다 firewalld
( man firewalld
출발점으로 리소스를 참조하고 물론 많은 Google-fu도 참조하세요).