Cách cấu hình Proton VPN trên pfSense bằng OpenVPN
- Đọc
- 14 phút
- Danh mục
- Bộ định tuyến
Trong hướng dẫn này, chúng tôi sẽ chỉ cách thiết lập Proton VPN trên pfSense 23.09 và pfSense 2.7.x sử dụng giao thức OpenVPN. Việc này cho phép bộ định tuyến bảo vệ mọi thiết bị kết nối bằng kết nối Proton VPN.
Nếu đang sử dụng pfSense 2.7.x, khuyến nghị nên sử dụng giao thức WireGuard® thay thế.
Lưu ý không khuyến nghị sử dụng nhiều kết nối khi dùng OpenVPN. Với trường hợp này, một lần nữa khuyến nghị nên sử dụng WireGuard.
Trước khi bắt đầu, cần có:
- Bản cài đặt mới pfSense 23.09 hoặc pfSense 2.7.x
- Máy tính kết nối với mạng LAN để có thể truy cập giao diện điều khiển pfSense
- Tên người dùng và mật khẩu OpenVPN. Thông tin này khác với tên người dùng và mật khẩu Proton VPN thông thường. Để tìm các thông tin này, hãy đăng nhập vào account.protonvpn.com và đi tới Tài khoản → Tên người dùng OpenVPN.

1. Tạo tệp cấu hình OpenVPN
Đăng nhập vào Proton VPN bằng tên người dùng và mật khẩu Tài khoản Proton tại account.protonvpn.com, đi tới Tải xuống → Tệp cấu hình OpenVPN, rồi tải xuống tệp cấu hình OpenVPN. Hãy nhớ Chọn nền tảng: Bộ định tuyến.
Tìm hiểu cách tải xuống tệp cấu hình OpenVPN từ Proton VPN
Để cấu hình pfSense, cần có chứng chỉ TLS(cửa sổ mới) từ tệp cấu hình này. Để tìm chứng chỉ này, hãy mở tệp cấu hình OpenVPN đã tải xuống bằng trình chỉnh sửa văn bản và tìm đoạn văn bản bắt đầu bằng —–BEGIN CERTIFICATE—- và kết thúc bằng –—-END CERTIFICATE—–.

Cũng cần có địa chỉ IP và số cổng của máy chủ VPN. Có thể tìm thấy thông tin này trên dòng remote đầu tiên được liệt kê trong chứng chỉ. Số đầu tiên là địa chỉ IP, và số thứ hai là số cổng. Trong ví dụ bên dưới, địa chỉ IP là 185.159.157.6, và số cổng là 51820

Và cuối cùng, cần có khóa OpenVPN Static key. Khóa này bắt đầu bằng —–BEGIN OpenVPN Static key V1—- và kết thúc bằng —–END OpenVPN Static key V1—–.

2. Thêm chứng chỉ TLS vào pfSense
Nhập 192.168.1.1 vào thanh URL của trình duyệt để mở giao diện web pfSense. Đăng nhập và đi tới System → Certificates → Add → Import certificate.

Cấu hình các cài đặt sau:
Tạo / Chỉnh sửa CA. Đi tới Authorities → Add và thay đổi các cài đặt sau:
- Descriptive name: Có thể dùng bất kỳ tên nào thuận tiện để mô tả chứng chỉ TLS của Proton
- Method: Nhập một Certificate Authority hiện có
Certificate Authority hiện có
- Sao chép chứng chỉ TLS từ tệp cấu hình OpenVPN và dán vào đây

Nhấp vào Save sau khi hoàn tất.
3. Cấu hình OpenVPN Client
Bây giờ, bạn sẽ thêm một OpenVPN client để mã hóa dữ liệu và truyền qua đường hầm đến máy chủ VPN.
Đi tới VPN → OpenVPN → Clients, nhấp vào Add, và cấu hình các cài đặt sau:
Thông tin chung:
- Description: Chọn tên hiển thị cho cấu hình này
- Disabled: Không chọn
Cấu hình chế độ
- Server Mode: Peer to Peer (SSL/TLS)
- Device mode: tun – Layer 3 Tunnel Mode
Cấu hình điểm cuối
- Protocol: Chọn UDP on IPv4 only hoặc TCP on IPv4 only (tùy chọn, nhưng cần khớp với tệp cấu hình đã tải xuống). Tìm hiểu thêm về UDP và TCP.
- Interface: WAN
- Local Port: –
- Server host or address: Vui lòng tham khảo Bước 1 để tìm thông tin này.
- Server port: Vui lòng tham khảo Bước 1 để tìm thông tin này.
- Proxy host or address: –
- Proxy port: –
- Proxy Authentication: none

Cài đặt xác thực người dùng
- Username: Tên người dùng Proton VPN OpenVPN
- Password: Mật khẩu Proton VPN OpenVPN
- Authentication Retry: Không chọn
Lưu ý: Các thông tin này khác với tên người dùng và mật khẩu Proton VPN thông thường. Để kích hoạt các tính năng bổ sung, hãy thêm các hậu tố sau vào tên người dùng OpenVPN.
- NetShield Ad-blocker: +f1
- NetShield Ad-blocker nâng cao (chỉ khả dụng với gói trả phí, đồng thời chặn phần mềm độc hại và trình theo dõi): +f2
Ví dụ: để kích hoạt NetShield Ad-blocker, hãy nhập tên_người_dùng+f1.

Cài đặt mật mã
- Use a TLS Key: Đã chọn
- Automatically generate a TLS Key: Không chọn
- TLS Key: Dán OpenVPN Static key từ tệp cấu hình OpenVPN (xem Bước 1)
- TLS Key Usage Mode: Mã hóa và Xác thực TLS
- TLS keydir direction: Sử dụng hướng mặc định
- Peer Certificate Authority: Proton AG (hoặc tên mô tả đã sử dụng ở Bước 2)
- Peer Certificate Revocation List: Giữ nguyên
- Client Certificate: Không có (Yêu cầu tên người dùng và/hoặc mật khẩu)
- Data Encryption Negotiation: Đã chọn
- Data Encryption Algorithms: AES-256-GCM, CHACHA20-POLY1305
- Fallback Data Encryption Algorithm: AES-256-GCM
- Auth digest algorithm: SHA256 (256-bit)
- Hardware Crypto: Việc tính năng này có được hỗ trợ hay không tùy thuộc vào thiết bị. Nếu được hỗ trợ, trước tiên phải kích hoạt bằng cách đi tới System → Advanced → Miscellaneous. Nếu không chắc chắn, hãy chọn No hardware crypto acceleration.
- Server Certificate Key Usage Validation: Đã chọn

Cài đặt đường hầm
- IPv4 Tunnel Network: –
- IPv6 Tunnel Network:-
- IPv4 Remote network(s): –
- IPv6 Remote network(s): –
- Limit outgoing bandwidth: – (trừ khi có tùy chọn khác)
- Allow Compression: Từ chối mọi nén không phải stub (Bảo mật nhất)
- Topology: Subnet — Một địa chỉ IP cho mỗi máy khách trong một mạng con chung
- Type of service: Không chọn
- Don’t pull routes: Chọn
- Don’t add/remove routes: Không chọn
- Pull DNS: Chọn

Cài đặt Ping
- Giữ nguyên tất cả các giá trị mặc định.

Cấu hình nâng cao
- Tùy chọn tùy chỉnh: Thêm các mục sau:
tun-mtu 1500;
mssfix 0;
reneg-sec 0;
remote-cert-tls server;
Lưu ý: các cài đặt cấu hình này thay thế các cài đặt hiển thị trong ảnh chụp màn hình bên dưới.
Để cải thiện độ tin cậy của kết nối, hãy mở tệp cấu hình OpenVPN đã tải xuống bằng trình chỉnh sửa văn bản và tìm các dòng bắt đầu bằng remote. Từ dòng remote thứ hai trở đi, sao chép từng dòng bắt đầu bằng remote vào trường Custom Options trong pfSense, tiếp theo là dấu chấm phẩy.

- UDP Fast I/O: Đã chọn
- Exit Notify: Đã vô hiệu hóa
- Send/Receive Buffer: Mặc định
- Gateway creation: Chỉ IPv4
- Verbosity level: 3 (khuyên dùng)

Nhấp vào Lưu và đi tới Status → OpenVPN. Client VPN mới sẽ hiển thị với Status là up.

4. Cấu hình giao diện OpenVPN
Client VPN hiện đã hoạt động, nhưng chưa có lưu lượng nào được định tuyến qua đó. Để định tuyến tất cả lưu lượng mạng qua đường truyền Proton VPN bảo mật, cần cấu hình các giao diện và quy tắc tường lửa.
Đi tới Interfaces → Interface Assignments → Available network ports và chọn client VPN vừa thêm từ menu thả xuống → Add.
Thao tác này sẽ tạo một giao diện có tên OPTx (trong đó x tùy thuộc vào số lượng giao diện vật lý của bộ định tuyến). Nhấp vào giao diện mới được tạo để cấu hình.

Đi tới tab Interfaces, nhấp vào OPTx và nhập các cài đặt cấu hình sau·
Cấu hình chung:
- Kích hoạt: đã chọn
- Description: Chọn tên mô tả cho giao diện
Các mạng dự phòng:
- Block bogon networks: Chọn
Giữ nguyên các trường còn lại.
Nhấp vào Lưu và Áp dụng thay đổi.

5. Cấu hình các quy tắc tường lửa
Sử dụng các quy tắc tường lửa để định tuyến tất cả lưu lượng qua giao diện Proton VPN vừa thiết lập. Đi tới Firewall → NAT → Outbound và chọn Manual Outbound NAT rule generation. Sau đó nhấp vào Lưu và Áp dụng thay đổi.

Trong mục Mappings, sẽ có sáu quy tắc được liệt kê. Trong cột Source, 4 quy tắc trong số này hiển thị các địa chỉ 127.0.0.0/8 và ::1/128. Bỏ qua các quy tắc này và Chỉnh sửa (nhấp vào biểu tượng bút chì trong cột Actions) hai quy tắc còn lại.

Đối với cả hai quy tắc, hãy đổi Interface thành Giao diện Proton VPN đã tạo ở Bước 4. Nhấp vào Lưu và Áp dụng thay đổi.

Lưu ý: thao tác này cũng sẽ tự động tạo một cổng có cùng tên với giao diện.

Cài đặt Mappings bây giờ sẽ trông như thế này:

Đi tới Firewall → Rules → LAN. Nhấp vào biểu tượng ✓ bên cạnh Default allow LAN IPv6 to any rule để vô hiệu hóa quy tắc này.

Đi tới Default allow LAN to any rule → Edit (biểu tượng bút chì).

Nhấp vào Display advanced → Gateway và chọn cổng đã tạo ở Bước 5. Nhấp vào Save và Apply Changes.

Bây giờ, hãy chuyển đến Status → OpenVPN và nhấp vào biểu tượng Service → Restart để khởi động lại máy khách OpenVPN với các cài đặt mới.

Cấu hình cài đặt DNS
Tất cả lưu lượng internet đi qua tường lửa pfSense giờ đây sẽ được định tuyến qua máy chủ Proton VPN. Tuy nhiên, các yêu cầu DNS thì không. Để khắc phục điều này, cần thay đổi cài đặt DNS trong pfSense.
Đi tới System → General Setup → DNS Servers → DNS servers và nhập các cài đặt sau:
- DNS Servers → Address: 10.2.0.1
- DNS servers → Gateway: chọn giao diện VPN đã tạo ở Bước 4
- DNS Server Override: tích chọn
- DNS Resolution Behavior: Sử dụng máy chủ DNS từ xa, bỏ qua DNS cục bộ

Bây giờ, hãy chuyển đến Services → DNS Resolver → Outgoing Network Interfaces và nhập các cài đặt sau:
- Outgoing Network Interfaces: chọn giao diện VPN đã tạo ở Bước 4
- DNS Query Forwarding: tích chọn
Nếu đã kích hoạt tính năng Trình chặn quảng cáo NetShield bằng cách thêm hậu tố +f1 hoặc +f2 vào tên người dùng OpenVPN (xem Bước 3), phải vô hiệu hóa hỗ trợ DNSSEC.

Nhấp Save và Apply changes.
Quá trình thiết lập hiện đã hoàn tất. Tất cả lưu lượng từ mạng hiện sẽ được định tuyến an toàn qua máy chủ Proton VPN đã chọn. Có thể kiểm tra bằng cách truy cập trình quét IP bảo mật miễn phí từ bất kỳ thiết bị nào trong mạng.
Tinh chỉnh tùy chọn
Có thể loại trừ một số máy tính trong mạng khỏi việc sử dụng giao diện VPN. Ví dụ: người dùng có thể muốn máy chơi game truy cập internet mà không cần kết nối với VPN. Để làm điều này:
1. Đi tới Firewall → Rules → LAN → Add.

2. Cấu hình các cài đặt như sau:
- Action: Pass
- Disabled: Không chọn
- Interface: LAN
- Address Family: IPv4
- Protocol: Any
- Source: Single Host or Alias và thêm IP của thiết bị muốn loại trừ
- Destination: Any
- Log: Unchanged
- Description: Thêm mô tả

3. Nhấp vào Display Advanced và đổi Gateway thành WAN.

4. Nhấp Save và Apply Changes.

5. Đi tới Firewall → NAT → Outbound và chuyển Mode sang Automatic, sau đó nhấp vào Save và Apply Change. Tiếp theo, chuyển Mode trở lại Manual, sau đó nhấp Save và Apply Change.

Thao tác này tạo ra hai quy tắc mới cho phép thiết bị đã chọn truy cập mạng WAN cục bộ.

Thiết bị hiện đã bị loại trừ khỏi giao diện VPN và sẽ truy cập internet bằng địa chỉ IP do ISP cấp. Tuy nhiên, thiết bị sẽ sử dụng máy chủ DNS của Proton VPN.