Điểm:0

Máy chủ phụ trợ VM của tôi không thể thấy IP bên ngoài được định tuyến bằng Iptables sang IP nội bộ VPN

lá cờ ar

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)

djdomi avatar
lá cờ za
chỉ là một câu hỏi tương tự, tại sao không sử dụng HA-proxy trước trên MAchine đầu tiên của bạn và sử dụng nó để truy cập các mục tiêu lan?
Điểm:0
lá cờ cz

Quy tắc MASQUERADE mà bạn đã chỉ định quá rộng. Bạn đã chỉ định giả mạo tất cả lưu lượng truy cập rời khỏi máy chủ này qua không tí nào giao diện, do đó tất cả lưu lượng truy cập được NATted và địa chỉ nguồn của nó được viết lại, mặc dù điều đó là không cần thiết và trong trường hợp này là không mong muốn.

(Và vì lý do nào đó, quy tắc này có ba lần.)

Việc giả mạo chỉ nên được áp dụng cho lưu lượng truy cập rời khỏi ranh giới tới Internet, do đó, bạn nên chỉ định giao diện đầu ra (có địa chỉ IP toàn cầu của bạn) trong quy tắc giả mạo của bạn. Ví dụ:

iptables -t nat -o eth0 -A POSTROUTING -j MASQUERADE

Các quy tắc giả trang sai lầm khác nên bị xóa.

lá cờ ar
Cảm ơn rất nhiều về đề xuất chỉ về MASQUERADE cho giao diện. Thật không may, trong nhật ký HAproxy, tôi vẫn chỉ thấy IP riêng 10.0.0.1 thay vì IP gốc bên ngoài ...
Michael Hampton avatar
lá cờ cz
@Ecofintech Bạn cũng phải xóa các quy tắc khác.
lá cờ ar
Bạn có nghĩa là các quy tắc liên quan đến 192.168.100.0/24 không? libvirt NAT?
lá cờ ar
Tôi sợ phá vỡ virbr10 của libvirt NAT...
lá cờ ar
Đối với bất kỳ tài liệu tham khảo nào, tôi đã làm theo hướng dẫn này về cấu hình Iptables NAT tùy chỉnh libvirt: https://jamielinux.com/docs/libvirt-networking-handbook/custom-nat-basing-network.html
Michael Hampton avatar
lá cờ cz
Không, những quy tắc đó có thể được giữ nguyên. Ý tôi là ba quy tắc mà bạn đã thêm vào. Hay nguồn lưu lượng truy cập là một trong các máy ảo của bạn? Bạn nói nó đến từ Internet?
lá cờ ar
Tôi đã xóa ba quy tắc MASQUERADE, vâng. Đó là những sai lầm của tôi khi làm bài kiểm tra. Máy chủ lưu trữ gửi lưu lượng cổng 443 và 80 tới máy ảo bằng HAproxy, lắng nghe trong giao diện Wireguard VPN.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.