Nội dung bài viết
6 Chọn cấu hình NAT
Cấu hình NAT tốt nhất cho một triển khai nhất định phụ thuộc chủ yếu vào số lượng địa chỉ IP public khả dụng và số lượng dịch vụ local yêu cầu truy cập vào từ Internet.
6.1 Địa chỉ IP Public duy nhất trên một mạng WAN
Khi chỉ có một IP public duy nhất trên một mạng WAN là khả dụng, tuỳ chọn NAT sẽ bị giới hạn. Các rule NAT 1:1 có thể được sử dụng với địa chỉ IP WAN, nhưng điều đó có hể có nhược điểm. Trong trường hợp này, chúng ta nên chỉ sử dụng port forwards.
6.2 Nhiều địa chỉ IP Public trên một mạng WAN
Khi nhiều địa chỉ IP public khả dụng trên một mạng WAN, nhiều tuỳ chọn khả dụng cho cấu hình NAT inbound và outbound. Port forward, NAT 1:1, và Hybrid hoặc Manual Outbound NAT tất cả có thể cần thiết, tuỳ thuộc vào nhu cầu của website.
7 Khả năng tương thích của NAT và Protocol
Một số giao thức không hoạt động tốt với NAT và những giao thức khác sẽ không hoạt động. Các giao thức có vấn đề nhúng địa chỉ IP và/hoặc số port trong các gói tin(ví dụ: SIP và FTP), một số không hoạt động đúng nếu port nguồn được viết lại (SIP từ một PBX, IPsec), và mọt số là khó khó khăn và những hạn chế của pf.
7.1 FTP
FTP đặt ra vấn để của cả hai NAT và firewall vì thiết kế của giao thức. FTP ban đầu được thiết kế vào những năm 1970, và tiêu chuẩn hiện tại xác định các thông số kỹ thuật của giao thức được viết vào năm 1985. Vì FTP đã được tạo ra hơn một thập kỷ trước NAT và rất lâu trước khi firewall phổ biến, nó hoạt động theo những cách rất không thân thiện với NAT và firewall.
pfSense không bao gồm FTP proxy theo mặc định, nhưng có một proxy máy client có sẵn dưới dạng gói tiện ích bổ sung.
FTP Limitations
Bởi vì pf thiếu khả năng xử lý đúng lưu lượng FTP mà ko cần proxy và việc triển khai gói tin FTP proxy hơi thiếu, nên có một số hạn chế đối với việc sử dụng FTP.
FTP servers behind NAT
Đối với FTP server sau NAT, tất cả các port liên quan phải được forward theo cách thủ công tới server và được cho phép trong các firewall rule. hoặc trong trường hợp NAT 1:1, chỉ các firewall rule là cần thiết. Tùy thuộc vào mode FTP, phần mềm server và phần mềm máy client, một số cấu hình server cũng có thể được yêu cầu.
FTP modes
FTP có thể hoạt động ở nhiều chế độ làm thay đổi hoạt động của client và server, và bên nào lắng nghe các kết nối đến. Sự phức tạp của NAT và các firewall rule phụ thuộc vào các mode này và liệu một ứng dụng máy client từ xa đang cố gắng truy cập đến server đằng sau pfSense hay một ứng dụng client đằng sau pfSense đang cố gắng truy cập server từ xa.
Active Mode
Với Active Mode FTP, khi yêu cầu truyền file, máy client sẽ lắng nghe trên một port local và sau đó cho server biết địa chỉ IP và port của máy client. Sau đó, server sẽ kết nối lại với địa chỉ IP và port đó để truyền dữ liệu. Đây là một vấn đề đối với firewall vì port thường ngẫu nhiên, mặc dù các máy client hiện đại cho phép giới hạn phạm vi được sử dụng. Trong trường hợp máy client đứng sau NAT, địa chỉ IP được cung cấp sẽ là địa chỉ local, không thể truy cập từ server. Không chỉ vậy, firewall rule sẽ cần được thêm vào cùng với một port forward cho phép lưu lượng truy cập vào port này.
Khi gói tin proxy FTP đang được sử dụng và một ứng dụng client đang kết nối pfSense với remote server, proxy sẽ cố gắng thực hiện ba điều chính: Đầu tiên, nó sẽ viết lại lệnh FTP PORT để địa chỉ IP là địa chỉ IP WAN của firewall và một port được chọn ngẫu nhiên trên địa chỉ IP đó. Tiếp theo, nó add thêm một port forward kết nối địa chỉ IP đã chuyển đổi và port với địa chỉ IP ban đầu và port được chỉ định bởi FTP client. Cuối cùng, nó cho phép lưu lượng truy cập từ FTP server kết nối với port “public” đó. Với Multi-WAN, proxy sẽ chỉ hoạt động trên mạng WAN chứa default gateway.
Server không bao giờ biết nó đang nói chuyện với một client đằng sau NAT và client không bao giờ biết rằng server không kết nối trực tiếp.
Passive Mode
Passive Mode (PASV) hoạt động ngược lại. Đối với client, NAT và firewall thân thiện hơn vì server lắng nghe trên một port khi chuyển file được yêu cầu chứ không phải client. Thông thường, mode PASV sẽ hoạt động cho các FTP client đằng sau NAT mà không cần sử dụng bất kỳ proxy hoặc xử lý đặc biệt nào.
Tương tự như tình huống trong phần trước, khi một máy client yêu cầu mode PASV, server sẽ cung cấp cho client địa chỉ IP của nó và một port ngẫu nhiên mà máy client có thể cố gắng kết nối. Vì server nằm trên mạng riêng nên địa chỉ IP và port đó sẽ cần được chuyển đổi và cho phép thông qua firewall.
Extended Passive Mode
Extended Passive Mode (EPSV) hoạt động giống như mode PASV nhưng cho phép sử dụng trên IPv6. Khi client yêu cầu chuyển, server sẽ trả lời bằng port mà client sẽ kết nối. Cảnh báo tương tự cho các server ở mode PASV cũng được áp dụng tại đây.
FTP Servers và Port Forwards
Đối với FTP server cung cấp mode passive cho client, cấu hình của FTP server phải xác định phạm vi port passive và cũng phải đặt địa chỉ NAT bên ngoài, thường là địa chỉ IP WAN của firewall. Phương tiện thiết lập các giá trị này khác nhau tùy thuộc vào việc triển khai phần mềm FTP server. Trên firewall, phạm vi port passive phải được forward với port forwards cùng với TCP port 21.
FTP Servers và NAT 1:1
với NAT 1:1, firewall rule phải cho phép port 21 và phạm vi cổng passive.
7.2 TFTP
Lưu lượng truy cập TCP và UDP tiêu chuẩn khởi tạo kết nối từ remote hosts sử dụng một port nguồn ngẫu nhiên trong phạm vi port tạm thời, thay đổi tùy theo hệ điều hành nhưng nằm trong khoảng 1024-65535 và port đích của giao thức đang được sử dụng.
Trả lời từ server đến client rằng: port nguồn là port đích của máy client và ngược lại port đích là port nguồn của máy client. Đây là cách pf liên kết lưu lượng truy cập trả lời với các kết nối được khởi tạo từ bên trong mạng.
Tuy nhiên TFTP (Trivial File Transfer Protocol) không tuân thủ theo quy ước này. Tiêu chuẩn xác định TFTP, RFC 1350, chỉ định phản hồi từ TFTP server tới máy client sẽ được lấy từ một số port giả ngẫu nhiên. TFTP client có thể chọn một port nguồn là 10325 (làm ví dụ) và sử dụng port đích cho TFTP, cổng 69. Sau đó, server cho các giao thức khác sẽ gửi trả lời bằng cách sử dụng port nguồn 69 và port đích 10325.
TFTP không phải là một giao thức được sử dụng phổ biến trên Internet. Tình huống duy nhất thỉnh thoảng xảy ra khi đây là sự cố là với một số điện thoại IP kết nối với các nhà cung cấp VoIP bên ngoài trên Internet bằng cách sử dụng TFTP để lấy cấu hình và thông tin khác. Hầu hết các nhà cung cấp VoIP không yêu cầu điều này.
Nếu lưu lượng truy cập TFTP phải đi qua firewall, một proxy TFTP có sẵn được cấu hình trong System > Advanced trên tab Firewall & NAT.
7.3 PPTP / GRE
Những hạn chế với PPTP trong pfSense là do hạn chế về khả năng của pf với NAT giao thức GRE. Như vậy, những hạn chế áp dụng cho bất kỳ việc sử dụng giao thức GRE, tuy nhiên PPTP đã được sử dụng phổ biến nhất của GRE trong tự nhiên.
Mã theo dõi trạng thái trong pf cho giao thức GRE chỉ có thể theo dõi một phiên duy nhất trên mỗi địa chỉ IP public trên mỗi server bên ngoài. Điều này có nghĩa là nếu có kết nối VPN PPTP, chỉ một máy nội bộ có thể kết nối đồng thời với cùng một server PPTP trên Internet. Một nghìn máy có thể kết nối đồng thời với một nghìn PPTP server khác nhau, nhưng chỉ một máy đồng thời với một server duy nhất. Một máy client duy nhất cũng có thể kết nối với số lượng không giới hạn các outside PPTP server.
Công việc khả dụng duy nhất hiện nay là sử dụng nhiều địa chỉ IP public trên firewall, một địa chỉ IP cho mỗi máy client qua Outbound hoặc NAT 1: 1 hoặc sử dụng nhiều địa chỉ IP public trên external PPTP server. Đây không phải là vấn đề với các loại kết nối VPN khác.
Do bảo mật cực kỳ thiếu sót trong PPTP (Xem Cảnh báo PPTP), bao gồm cả sự xâm phạm hoàn toàn của toàn bộ giao thức, nên ngừng sử dụng nó càng sớm càng tốt, do đó vấn đề này không liên quan đến các tiêu chuẩn bảo mật hiện tại.
7.4 Online Games
Các loại game thường thân thiện với NAT ngoài một số lưu ý. Phần này đề cập đến cả hệ thống game PC và game console với khả năng trực tuyến. Phần này cung cấp tổng quan về trải nghiệm của nhiều người dùng pfSense
Static Port
Một số game không hoạt động bình thường trừ khi port tĩnh được bật trên các outbound NAT rule. Nếu một game gặp sự cố khi thiết lập kết nối, điều tốt nhất bạn nên thử trước tiên là enable port tĩnh cho lưu lượng truy cập đến từ bảng điều khiển.
Multiple players hoặc thiết bị đằng sau một thiết bị NAT
Một số trò chơi có vấn đề trong đó nhiều người chơi hoặc thiết bị ở phía sau một thiết bị NAT. Những vấn đề này có vẻ là cụ thể đối với NAT, không phải pfSense, vì những người dùng đã thử firewall khác cũng gặp phải vấn đề tương tự với chúng.
Khắc phục sự cố NAT với UPnP
Nhiều hệ thống trò chơi hiện đại hỗ trợ Universal Plug-and-Play (UPnP) để tự động định cấu hình bất kỳ NAT port forwards cần thiết nào và các firewall rules. Enable UPnP trên pfSense thường sẽ cho phép các trò chơi hoạt động với ít hoặc không có sự can thiệp.