Tôi đang sử dụng Iptables để định tuyến lưu lượng truy cập https từ Internet đến mạng nội bộ thông qua HAproxy.
Các quy tắc Iptables NAt là:
iptables -i eth0 -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.7
iptables -i eth0 -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7
iptables -t nat -A POSTROUTING -j MASQUERADE
were 10.0.0.0/24 là một Wireguard VPN (IP của máy chủ là 10.0.0.1, IP của haproxy là 10.0.0.7)
Sau đó, tôi muốn xem IP gốc đã đăng nhập HAproxy, nhưng tôi chỉ có thể thấy IP của máy chủ VPN:
# đuôi -f /var/log/haproxy
Ngày 14 tháng 7 18:27:02 localhost haproxy[13304]: 10.0.0.1:57539 [14/Jul/2021:18:27:02.199] fe-frontend-https~ fe-frontend-https/<NOSRV> -1/- 1/-1/-1/0 503 99 - - SC-- 1/1/0/0/0 0/0 "NHẬN /.env HTTP/1.1
Làm cách nào tôi có thể ủy quyền lưu lượng truy cập theo cách minh bạch để HAproxy có thể ghi lại IP gốc bên ngoài?
Cảm ơn
chỉnh sửa:
Tất cả các quy tắc của Iptables:
# iptables -L --line-numbers -v
ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN gói 757M, byte 641G)
num pkts byte target prot opt in out đích nguồn
1 0 0 CHẤP NHẬN udp -- virbr10 mọi nơi mọi nơi udp dpt:domain
2 0 0 CHẤP NHẬN tcp -- virbr10 mọi nơi mọi nơi tcp dpt:domain
3 83841 27M CHẤP NHẬN udp -- virbr10 mọi nơi mọi nơi udp dpt:bootps
4 0 0 CHẤP NHẬN tcp -- virbr10 mọi nơi mọi nơi tcp dpt:67
5 12 1008 CHẤP NHẬN icmp -- bất kỳ 10.0.0.0/8 bất kỳ ở bất kỳ đâu icmp echo-request
6 0 0 CHẤP NHẬN icmp -- bất kỳ 10.0.0.0/8 bất kỳ ở bất kỳ đâu icmp echo-reply
Chuỗi FORWARD (chính sách CHẤP NHẬN gói 482M, byte 578G)
num pkts byte target prot opt in out đích nguồn
1 589M 441G CHẤP NHẬN tất cả -- bất kỳ virbr10 nào ở bất kỳ đâu 192.168.100.0/24 ctstate LIÊN QUAN, THÀNH LẬP
2 744M 637G CHẤP NHẬN tất cả -- virbr10 mọi 192.168.100.0/24 mọi nơi
3 0 0 CHẤP NHẬN tất cả -- virbr10 virbr10 mọi nơi mọi nơi
4 0 0 TỪ CHỐI tất cả -- mọi virbr10 mọi nơi mọi nơi từ chối-với icmp-port-không truy cập được
5 296 11864 TỪ CHỐI tất cả -- virbr10 mọi nơi mọi nơi từ chối-với icmp-port-không thể truy cập
ĐẦU RA chuỗi (chính sách CHẤP NHẬN gói 753M, byte 664G)
num pkts byte target prot opt in out đích nguồn
1 83839 28M CHẤP NHẬN udp -- bất kỳ virbr10 nào ở mọi nơi mọi nơi udp dpt:bootpc
# iptables -L -n -t nat -v
PREROUTING chuỗi (chính sách CHẤP NHẬN 31M gói, 1964M byte)
pkts byte đích prot chọn không tham gia đích nguồn
23743 1296K DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 đến:10.0.0.7
3935 182K DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 tới:10.0.0.7
Chuỗi INPUT (chính sách CHẤP NHẬN 0 gói, 0 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 9549 gói, 531K byte)
pkts byte đích prot chọn không tham gia đích nguồn
0 0 TRẢ LẠI tất cả -- * * 192.168.100.0/24 255.255.255.255
4660 280K MASQUERADE tcp -- * * 192.168.100.0/24 !192.168.100.0/24 cổng mặt nạ: 1024-65535
7729 704K MASQUERADE udp -- * * 192.168.100.0/24 !192.168.100.0/24 cổng mặt nạ: 1024-65535
2 168 MẶT MẠI tất cả -- * * 192.168.100.0/24 !192.168.100.0/24
0 0 TRẢ LẠI tất cả -- * * 192.168.100.0/24 224.0.0.0/24
0 0 TRẢ LẠI tất cả -- * * 192.168.100.0/24 255.255.255.255
0 0 MASQUERADE tcp -- * * 192.168.100.0/24 !192.168.100.0/24 cổng masq: 1024-65535
0 0 MASQUERADE udp -- * * 192.168.100.0/24 !192.168.100.0/24 cổng masq: 1024-65535
0 0 GIẢ MẠO tất cả -- * * 192.168.100.0/24 !192.168.100.0/24
19M 1143M MẶT MẶT tất cả -- * * 0.0.0.0/0 0.0.0.0/0
0 0 GIẢ MẠO tất cả -- * * 0.0.0.0/0 0.0.0.0/0
0 0 GIẢ MẠO tất cả -- * * 0.0.0.0/0 0.0.0.0/0
ĐẦU RA chuỗi (chính sách CHẤP NHẬN 20209 gói, 2137K byte)
pkts byte đích prot chọn không tham gia đích nguồn
(hầu hết là các quy tắc NAT mặc định cho libvirt)