Điểm:1

iptables PREROUTING không có hiệu lực

lá cờ ru
Cal

Chúng tôi đang chạy Ubuntu 20.04 trong AWS. Chúng tôi đang cố gắng thiết lập quy tắc iptables để mọi lưu lượng truy cập MySQL có địa chỉ IP giả sẽ được chuyển tiếp đến cơ sở dữ liệu MySql tại 172.31.6.173 trong cùng một VPC. Hãy để tôi giải thích:

Địa chỉ IP trong tác vụ này:

Máy chủ Ubuntu(nguồn): 172.31.0.151

Máy chủ MySql (đích): 172.31.6.173

MySql IP giả: 6.6.6.6

Từ 172.31.0.151 (nguồn), chúng tôi sẽ kết nối với mysql tại IP giả (6.6.6.6) và nó sẽ được NAT đến đích (172.31.6.173).

Các quy tắc chúng tôi đã sử dụng:

Sudo iptables -t nat -A PREROUTING -s 172.31.0.151 -d 6.6.6.6 -j DNAT --to-destination 172.31.6.173
sudo iptables -A FORWARD -p tcp -d 172.31.6.173 -j CHẤP NHẬN

Dòng đầu tiên chỉ định bất kỳ lưu lượng truy cập nào từ 172.31.0.151, với đích đến là 6.6.6.6, sẽ được chuyển tiếp đến 172.31.6.173

Dòng thứ hai chấp nhận chuyển tiếp tất cả tcp tới 172.31.6.173.

Đây là những quy tắc duy nhất trong iptables, nếu tôi chạy Sudo iptables -t nat -L, kết quả là:

PREROUTING chuỗi (CHẤP NHẬN chính sách)
đích prot opt ​​nguồn đích
DNAT tất cả -- 172.31.0.151 6.6.6.6 đến:172.31.6.173

ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN)
đích prot opt ​​nguồn đích

ĐẦU RA chuỗi (chính sách CHẤP NHẬN)
đích prot opt ​​nguồn đích

Chuỗi POSTROUTING (CHẤP NHẬN chính sách)
đích prot opt ​​nguồn đích

Tuy nhiên, với hai quy tắc này, từ máy chủ nguồn (172.31.0.151), khi tôi cố đăng nhập MySql tại IP giả:

mysql -h 6.6.6.6 -u tên người dùng -p

Đầu ra tcpdump: (máy chủ MySql là phiên bản RDS, nghĩa là tôi không thể đăng nhập để chạy tcpdump, vì vậy tôi chỉ có thể lấy tcpdump từ máy chủ nguồn):

13:41:41.768171 IP 172.31.0.151.50374 > 6.6.6.6.mysql: Flags [S], seq 3441229166, win 62727, tùy chọn [mss 8961,sackOK,TS val 2723434614 ecr 0,nop,wscale 7], độ dài 0

13:41:45.992114 IP 172.31.0.151.50374 > 6.6.6.6.mysql: Flags [S], seq 3441229166, win 62727, tùy chọn [mss 8961,sackOK,TS val 2723438838 ecr 0,nop,wscale 7], độ dài 0

13:41:54.184186 IP 172.31.0.151.50374 > 6.6.6.6.mysql: Flags [S], seq 3441229166, win 62727, tùy chọn [mss 8961,sackOK,TS val 2723447030 ecr 0,nop,wscale 7], độ dài 0

Quy tắc PREROUTING không có hiệu lực, nỗ lực đăng nhập vẫn đang tìm kiếm máy chủ tại 6.6.6.6, thay vì NAT'd với địa chỉ IP thực là 172.31.6.173.

Bất kỳ lời khuyên sẽ được đánh giá cao. Cảm ơn bạn.

Điểm:1
lá cờ cl
A.B

Tôi cho rằng quy tắc của OP đã được thêm vào hệ thống Ubuntu với địa chỉ IP 172.31.0.151, cùng một hệ thống sau đó đang khởi tạo các kết nối mysql đến một địa chỉ giả.

Như có thể thấy trong này Netfilter và Mạng chung sơ đồ: Luồng gói trong Netfilter và Mạng chung

  • gói đầu tiên trong một luồng được bắt đầu bởi một quy trình cục bộ không đi qua nat/PREROUTING,
  • nhưng nó đi ngang nat/OUTPUT,
  • chỉ gói đầu tiên (trạng thái MỚI) của kết nối đi qua tự nhiên table (vì vậy các gói tiếp theo như trả lời không quan trọng ở đây).

Vì vậy, nat/PREROUTING không có tác dụng chuyển hướng kết nối được khởi tạo cục bộ. Điều này nên được thực hiện trong nat/OUTPUT. Vì điều này có thể thay đổi ngay cả giao diện sẽ sử dụng (có thể không phải trong trường hợp của OP), điều này sẽ kích hoạt kiểm tra lại tuyến đường sau này để xử lý trường hợp như vậy.

Cuối cùng, quy tắc của bạn nên được thêm vào với:

Sudo iptables -t nat -A OUTPUT -s 172.31.0.151 -d 6.6.6.6 -j DNAT --to-destination 172.31.6.173

Nếu hệ thống chỉ có một địa chỉ IP: 172.31.0.151, -s 172.31.0.151 trở nên thừa:

Sudo iptables -t nat -A OUTPUT -d 6.6.6.6 -j DNAT --to-destination 172.31.6.173

Đă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.