Cách ly đến / đi cho VPN


7

Tình huống của tôi là tôi muốn tất cả các kết nối gửi đi từ máy chủ Debian của mình đi qua dịch vụ VPN thương mại mà tôi đã đăng ký, nhưng tôi vẫn muốn chạy các dịch vụ có thể truy cập công khai trên máy chủ này và không cho chúng đi qua VPN.

Đó là, tôi có BIND9 (có thẩm quyền), SMTP, Apache, SSH, v.v. đang chạy trên máy chủ này và tôi muốn các kết nối đến có thể truy cập các dịch vụ này mà không cần sử dụng VPN.

Để làm rõ, tôi chỉ muốn sử dụng VPN để ẩn các kết nối gửi đi của mình , nhưng vẫn có thể trả lời các yêu cầu trên IP thực của tôi cho bất kỳ điều gì xảy ra theo cách đó.

Để làm cho vấn đề phức tạp hơn nữa, tôi sử dụng BIND làm cả máy chủ có thẩm quyền cho tên miền của mình (trên internet công cộng) và tôi cũng đã bật đệ quy để tôi có thể sử dụng nó làm trình giải quyết cho mạng cục bộ của mình (phạm vi ip riêng tư). Có thể VPN các kết nối DNS gửi đi từ BIND nhưng vẫn cho phép các yêu cầu đến đạt đến bit có thẩm quyền?

Tôi tập hợp cái này có cái gì đó để làm iproute2, nhưng tôi không thể tìm ra cấu hình chính xác.

Tôi đang dùng Debian 6.0.7. VPN là OpenVPN.

Câu trả lời:


5

Bạn nên sử dụng định tuyến chính sách để thực hiện điều này. Các quy tắc sẽ không quá phức tạp.

Tuyến đường mặc định (chính) của bạn sẽ hướng đến giao diện VPN. Bạn có thể sẽ sử dụng --redirect-gateway def1tùy chọn của OpenVPN để quản lý điều này tự động cho bạn khi VPN xuất hiện. Nó làm cho OpenVPN ghi đè lên tuyến mặc định của hệ thống bằng một vài /1tuyến có cùng tác dụng và đảm bảo OpenVPN vẫn có thể tiếp cận ngang hàng từ xa theo cách thông thường mà không cần vòng lặp định tuyến rõ ràng.

Tuyến mặc định này sẽ làm cho lưu lượng truy cập có nguồn gốc cục bộ đi qua VPN và nó cũng sẽ thực hiện trả lời cho lưu lượng truy cập thông qua VPN đi ra VPN.

Bây giờ bạn muốn ghi đè điều này bằng quy tắc chính sách cho các gói được liên kết với các kết nối xuất hiện trên giao diện không phải VPN. Bạn muốn làm cho các gói đó quay trở lại thông qua giao diện không phải VPN.

Sau đây sẽ thực hiện điều này bằng cách (1) các gói phù hợp có địa chỉ IP công cộng không phải VPN làm địa chỉ nguồn và yêu cầu chúng được định tuyến qua bảng định tuyến khác, (2) trong bảng định tuyến đó, gửi mọi thứ đến bản gốc của bạn ( tuyến đường mặc định không VPN).

ip route add table 42 default via X.Y.Z.W
ip rule add from A.B.C.D/32 table 42

A.B.C.Dphải là địa chỉ IP công cộng (không phải VPN) X.Y.Z.Wcủa bạn và phải là tuyến mặc định hệ thống ban đầu của bạn (thông qua ISP, không phải qua VPN).

Cấu hình tương tự cho lưu lượng IPv6 được để lại như một bài tập cho bạn :-)


Đẹp! Điều này đã lừa Cảm ơn bạn đã giúp đỡ!
lloydsmart

Câu hỏi tiếp theo: Có cách nào để định cấu hình máy chủ SMTP của tôi (Postfix trong trường hợp này) để sử dụng tuyến không VPN không? Tôi có nghĩa là cho cả đến và đi . Có lẽ một cách để làm cho tất cả lưu lượng truy cập cổng 25 không phải là VPN? Cảm ơn!
lloydsmart

Tôi nghĩ rằng nó có thể đã làm điều đó nếu bạn chỉ đơn giản làm cho Postfix liên kết với địa chỉ không phải VPN thay vì địa chỉ ký tự đại diện (mặc định). Đó là, hãy thử thay đổi smtp inettrong /etc/postfix/master.cfđể A.B.C.D:smtp inet.
Celada

Cảm ơn - đó là ý tưởng cơ bản, nhưng hóa ra cấu hình thực tế để đưa Postfix liên kết với địa chỉ chính xác là trong main.cf, sử dụng tùy chọn "smtp_bind_address = ABCD". Đạo cụ cho trang này để trả lời: faqforge.com/tag/smtp_bind_address
lloydsmart

Tôi đã thử các hướng dẫn này trên một máy phía sau bộ định tuyến trên mạng LAN. Đối với ABCD, tôi đã sử dụng IP LAN của máy (không phải IP bên ngoài) và cho XYZW, tôi đã sử dụng địa chỉ của bộ định tuyến. Điều này làm việc cho các kết nối bên ngoài. Bây giờ tôi có thể ssh với máy của mình từ thế giới bên ngoài và các kết nối có nguồn gốc từ máy của tôi sẽ đi qua VPN. Tuy nhiên, bây giờ tôi không thể kết nối từ một máy tính khác trong mạng của tôi với máy thông qua ssh (nhưng tôi có thể nếu đi qua internet bên ngoài). Làm thế nào để các hướng dẫn cần được sửa đổi để hoạt động trên một máy phía sau bộ định tuyến mạng?
Daniel S.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.