Tôi có một ví dụ về điều này hoạt động trên mạng LAN của mình, nhưng dựa trên các nhận xét, nó có thể không giải quyết được sự cố của bạn.:
Lưu lượng truy cập web đến từ 192.168.111.122 cho 192.168.111.136 được chuyển tiếp đến 192.168.111.1. Các câu trả lời từ 192.168.111.1 đi ngược lại đường dẫn, quay lại 192.168.111.122. ai nghĩ rằng các gói đến từ 192.168.111.136.
doug@s19:~/iptables/misc$ sudo tcpdump -n -tttt -i br0 not port 22
tcpdump: đầu ra dài dòng bị chặn, sử dụng -v hoặc -vv để giải mã giao thức đầy đủ
nghe trên br0, loại liên kết EN10MB (Ethernet), kích thước chụp 262144 byte
2021-12-19 15:57:47.389745 IP 192.168.111.122.51683 > 192.168.111.136.443: Flags [S], seq 1692549099, win 64240, tùy chọn [mss 1460,nop,wscale 8,OKnop,nop,sack , độ dài 0
2021-12-19 15:57:47.389760 IP 192.168.111.136.51683 > 192.168.111.1.443: Flags [S], seq 1692549099, win 64240, tùy chọn [mss 1460,nop,wscale 8,noK,nop,sack] , chiều dài 0
2021-12-19 15:57:47.390055 IP 192.168.111.1.443 > 192.168.111.136.51683: Flags [S.], seq 1478028943, ack 1692549100, win 64240, tùy chọn [mssOK 1460,nop,nop ,wscale 7], chiều dài 0
2021-12-19 15:57:47.390062 IP 192.168.111.136.443 > 192.168.111.122.51683: Flags [S.], seq 1478028943, ack 1692549100, win 64240, tùy chọn [msOKs 1460,nackop ,wscale 7], chiều dài 0
2021-12-19 15:57:47.390301 IP 192.168.111.122.51683 > 192.168.111.136.443: Flags [.], ack 1, win 1026, độ dài 0
2021-12-19 15:57:47.390306 IP 192.168.111.136.51683 > 192.168.111.1.443: Flags [.], ack 1, win 1026, độ dài 0
2021-12-19 15:57:47.396847 IP 192.168.111.122.51683 > 192.168.111.136.443: Flags [P.], seq 1:518, ack 1, win 1026, length 517
2021-12-19 15:57:47.396852 IP 192.168.111.136.51683 > 192.168.111.1.443: Flags [P.], seq 1:518, ack 1, win 1026, length 517
2021-12-19 15:57:47.397080 IP 192.168.111.1.443 > 192.168.111.136.51683: Flags [.], ack 518, win 501, độ dài 0
2021-12-19 15:57:47.397085 IP 192.168.111.136.443 > 192.168.111.122.51683: Flags [.], ack 518, win 501, độ dài 0
2021-12-19 15:57:47.400934 IP 192.168.111.1.443 > 192.168.111.136.51683: Flags [P.], seq 1:1629, ack 518, win 501, độ dài 1628
2021-12-19 15:57:47.400941 IP 192.168.111.136.443 > 192.168.111.122.51683: Flags [.], seq 1:1461, ack 518, win 501, độ dài 1460
2021-12-19 15:57:47.400942 IP 192.168.111.136.443 > 192.168.111.122.51683: Flags [P.], seq 1461:1629, ack 518, win 501, chiều dài 168
Các quy tắc iptables được tải qua tập lệnh trên máy tính thử nghiệm của tôi:
doug@s19:~/iptables/misc$ cat ask1382639
#!/bin/sh
FWVER=0.01
#
# ask1382639 Smythies 2021.12.18 Ver:0.01
# Xem tại đây:
# https://askubuntu.com/questions/1382639
#
# chạy dưới dạng sudo trên s19.
#
# Lưu ý: Các quy tắc này có thể cần được hợp nhất với
# bất kỳ bộ quy tắc iptables hiện có nào.
echo "Đang tải phiên bản bộ quy tắc ask1382639 $FWVER..\n"
# Vị trí của chương trình iptables
#
IPTABLES=/sbin/iptables
#Đặt các giao diện và địa chỉ BÊN NGOÀI và NỘI BỘ cho mạng
#
# Smythies (để thử nghiệm)
EXTIF="br0"
EXTIP="192.168.111.136"
REDIRECTIP="192.168.111.1"
MẠNG="192.168.111.0/24"
VŨ TRỤ="0.0.0.0/0"
#
# Đối với các máy chủ thực tế của câu hỏi
#
#EXTIF="CHƯA BIẾT"
#EXTIP="10.8.0.6"
#REDIRECTIP="10.8.0.1"
#NETWORK="10.8.0.0/24" GIẢ ĐỊNH, THỰC SỰ KHÔNG BIẾT
#UNIVERSE="0.0.0.0/0"
#CRITICAL: Bật chuyển tiếp IP vì tính năng này bị tắt theo mặc định
#
echo Cho phép chuyển tiếp...
tiếng vang "1" > /proc/sys/net/ipv4/ip_forward
# Xóa mọi cấu hình trước đó
# Hãy cẩn thận ở đây. Tôi có thể làm điều này trên s19, nhưng không biết
# về máy chủ của Admia.
#
echo " Xóa mọi quy tắc hiện có và đặt chính sách mặc định.."
$IPTABLES -P CHẤP NHẬN ĐẦU VÀO
$IPTABLES -F INPUT
$IPTABLES -P CHẤP NHẬN ĐẦU RA
ĐẦU RA $IPTABLES -F
$IPTABLES -P CHẤP NHẬN VỀ PHÍA TRƯỚC
$IPTABLES -F PHÍA TRƯỚC
$IPTABLES -t nat -F
# Xóa chuỗi do người dùng xác định
$IPTABLES -X
# Đặt lại tất cả các bộ đếm IPTABLES
$IPTABLES -Z
# Smythies: Trong khi tài liệu tham khảo của tôi không có nó, tôi nghĩ điều này là cần thiết.
$IPTABLES -t nat -Z
# Đầu tiên: chuyển hướng lưu lượng cổng 443 sang máy chủ khác.
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 443 -j DNAT --to $REDIRECTIP
# Thứ hai: Desination cần biết địa chỉ IP nào để trả lời.
$IPTABLES -t nat -A POSTROUTING -p tcp -o $EXTIF --dport 443 -d $REDIRECTIP -j SNAT --to $EXTIP
echo ask1382639 phiên bản bộ quy tắc $FWVER đã xong.
và:
doug@s19:~/iptables/misc$ sudo iptables -t nat -xvnL
PREROUTING chuỗi (chính sách CHẤP NHẬN 177 gói, 13129 byte)
pkts byte đích prot chọn không tham gia đích nguồn
6 312 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 đến:192.168.111.1
ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN 177 gói, 13129 byte)
pkts byte đích prot chọn không tham gia đích nguồn
Chuỗi POSTROUTING (chính sách CHẤP NHẬN 3 gói, 252 byte)
pkts byte đích prot chọn không tham gia đích nguồn
6 312 SNAT tcp -- * br0 0.0.0.0/0 192.168.111.1 tcp dpt:443 đến:192.168.111.136
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 3 gói, 252 byte)
pkts byte đích prot chọn không tham gia đích nguồn