Điểm:0

Phản chiếu lưu lượng đến trên một cổng cụ thể sang một IP khác, sử dụng đường hầm Strongswan IPSec của tôi

lá cờ za

Tôi muốn xuất bản nội bộ máy chủ SMTP (IP 10.0.0.10) đằng sau đường hầm VPN trên máy chủ nội bộ của tôi (192.168.0.12) bằng cách sử dụng thiên nga mạnh mẽ. Của tôi thiên nga mạnh mẽ đang chạy trong vùng chứa docker.

Đối với điều này, tôi muốn máy chủ nội bộ của mình 192.168.0.12 để lắng nghe cổng 25 của nó và chuyển tiếp lưu lượng đến máy chủ được tạo đường hầm trên cùng một cổng 10.0.0.10:25.

Cho đến nay tôi đã thử sử dụng iptables nhưng không thành công.

net.ipv4.ip_forward được kích hoạt trên cả máy chủ và bộ chứa docker!

của tôi iptables-save trên 192.168.0.12 sau khi Strongswan được kết nối với đường hầm: (và vâng, tôi có thể ping 10.0.0.10 từ 192.168.0.12)

# Được tạo bởi iptables-save v1.8.4 vào Thứ Sáu ngày 23 tháng 7 09:55:05 năm 2021
*lọc
:INPUT CHẤP NHẬN [0:0]
:CHẤP NHẬN VỀ PHÍA TRƯỚC [0:0]
:CHẤP NHẬN ĐẦU RA [0:0]
-A INPUT -s 10.0.0.0/16 -d 192.168.0.10/32 -i eth0 -m policy --dir in --pol ipsec --reqid 1 --proto esp -j ACCEPT
-A OUTPUT -s 192.168.0.10/32 -d 10.0.0.0/16 -o eth0 -m policy --dir out --pol ipsec --reqid 1 --proto esp -j ACCEPT
LÀM
# Hoàn thành vào Thứ Sáu 23/07 09:55:05 2021
# Được tạo bởi iptables-save v1.8.4 vào Thứ Sáu ngày 23 tháng 7 09:55:05 năm 2021
* tự nhiên
:CHẤP NHẬN TRƯỚC [0:0]
:INPUT CHẤP NHẬN [0:0]
:CHẤP NHẬN ĐẦU RA [2:1600]
:CHẤP NHẬN SAU ĐÓ [2:1600]
:DOCKER_OUTPUT - [0:0]
:DOCKER_POSTROUTING - [0:0]
-A ĐẦU RA -d 127.0.0.11/32 -j DOCKER_OUTPUT
-A POSTROUTING -d 127.0.0.11/32 -j DOCKER_POSTROUTING
-A DOCKER_OUTPUT -d 127.0.0.11/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination 127.0.0.11:45165
-A DOCKER_OUTPUT -d 127.0.0.11/32 -p udp -m udp --dport 53 -j DNAT --to-destination 127.0.0.11:53306
-A DOCKER_POSTROUTING -s 127.0.0.11/32 -p tcp -m tcp --sport 45165 -j SNAT --to-source :53
-A DOCKER_POSTROUTING -s 127.0.0.11/32 -p udp -m udp --sport 53306 -j SNAT --to-source :53
LÀM

chỉ huy ip r đầu ra:

mặc định qua 192.168.16.1 dev eth0
192.168.16.0/20 dev eth0 liên kết phạm vi kernel proto src 192.168.16.10 # đây là mạng nội bộ docker cho các dịch vụ của tôi
192.168.0.10/30 dev eth1 liên kết phạm vi kernel proto src 192.168.0.12

Tôi đã thử các lệnh khác nhau như sau:

iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 10.0.0.10:25
iptables -t nat -A POSTROUTING -p tcp -d 10.0.0.10 --dport 25 -j SNAT --to-source 192.168.0.12

Nhưng không thành công.

Tôi không thể cung cấp bất kỳ thông tin nào về ip r của vật chủ cũng như của iptables-save.

Tôi đang làm gì sai?

Tom Yan avatar
lá cờ in
Vui lòng cung cấp đầu ra của các lệnh sau trên *cả máy chủ vùng chứa và vùng chứa*: `ip r` (và có thể cả `ip a`), `iptables-save` và `sysctl net.ipv4.ip_forward`.
lá cờ za
@TomYan đã thêm tất cả thông tin mà tôi có thể thu thập, tôi bị hạn chế trên máy chủ. Tôi đã cố gắng hỏi máy chủ xem chuyển tiếp IP đã được bật chưa và nó đã được bật.
Tom Yan avatar
lá cờ in
Tôi không hiểu. Bạn không có quyền kiểm soát `máy chủ nội bộ của tôi (192.168.0.10)`? Hay nó thực sự là một container khác? (Chạy song song với Strongswan, đó là `192.168.0.12`?)
Tom Yan avatar
lá cờ in
Ngoài ra, đầu ra `ip r` cũng có vẻ tắt.`192.168.0.12` thậm chí không phải là địa chỉ máy chủ hợp lệ với `/30` (vì nó sẽ là ID mạng con).
lá cờ za
@TomYan cảm ơn sự giúp đỡ của bạn, tôi đã cập nhật IP để chúng chính xác. Tôi không có quyền kiểm soát máy chủ đang chạy vùng chứa docker. Tôi chỉ kiểm soát chính bộ chứa docker `192.168.0.12`. Tôi chắc chắn rằng vấn đề không nằm ở máy chủ, mà là ở cấu hình `iptables` bên trong bộ chứa docker.
Tom Yan avatar
lá cờ in
Vấn đề là máy chủ/bộ chứa sẽ phục vụ/chuyển tiếp cho ai/(những) máy chủ nào? Và địa chỉ này trên `eth1` này được định cấu hình như thế nào? DHCP? Tĩnh? (Bởi bạn?) Như tôi đã nói, đầu ra của `ip r` không thực sự hợp lý. Nó thậm chí còn là một miếng dán "thật"? (Hay là "viết/nhập nó xuống"?) Và "mạng nội bộ docker" (`eth0`) này có phải là không liên quan đến mục tiêu/khách hàng của bạn ở đây không?
Tom Yan avatar
lá cờ in
Ngoài ra, nếu máy chủ/thiết bị chuyển tiếp này ở đây là cùng một thùng chứa với máy chủ Strongswan, thì đường dẫn đến đường hầm ở đâu? Bạn đã định cấu hình định tuyến chính sách hay chưa?
lá cờ cn
Làm thế nào để bạn kiểm tra điều này? Bằng cách kết nối với cổng 25 của máy chủ? Hoặc từ một container khác? Dù bằng cách nào, các gói này có thực sự đi vào vùng chứa và đạt các quy tắc NAT không?
lá cờ za
@ecdsa Tôi kiểm tra điều này với `telnet 10.0.0.10 25` trên `strongswan container` và mục tiêu là `telnet Strongswan 25` với giả định rằng tên vùng chứa là `strongswan`
Điểm:0
lá cờ za

Tôi đã giải quyết vấn đề của mình bằng cách sử dụng traefik.

Tôi đã cài đặt traefik trên máy chủ (192.168.0.12) có đường hầm Strongswan và sử dụng một bộ định tuyến TCP để chuyển tiếp tất cả lưu lượng đến đường hầm.

traefik cài đặt:

wget -O /traefik.tar.gz https://github.com/traefik/traefik/releases/download/v2.4.12/traefik_v2.4.12_linux_amd64.tar.gz \
    && tar -zxvf /traefik.tar.gz \
    && ln -s /traefik /usr/bin/traefik

traefik.yaml:

các điểm nhập cảnh:
  smtp:
    địa chỉ: ":1025"

Nhật ký truy cập: {}

nhà cung cấp:
  tập tin:
    thư mục: /traefik-conf/dynamic/
    xem: đúng

API:
  bảng điều khiển: đúng
  không an toàn: đúng

của tôi /traefik-conf/dynamic/dynamic.yaml:

tcp:
  bộ định tuyến:
    smtp-bộ định tuyến:
      quy tắc: "HostSNI(`*`)"
      các điểm nhập cảnh:
        - smtp
      dịch vụ: smtp-dịch vụ

  dịch vụ:
    dịch vụ smtp:
      cân bằng tải:
        may chủ:
          - địa chỉ: 10.0.0.10:25

Chạy traefik (Tôi không biết làm thế nào để chạy nó như một daemon nền):

traefik --configfile /traefik-conf/traefik.yml &

Bây giờ tôi có thể kết nối với đường hầm máy chủ SMTP từ mọi nơi trong mạng của tôi bằng cách sử dụng 192.168.0.12:1025.

Tôi đã tạo một ví dụ bằng docker over ở đây trên github

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