Nội dung bài viết
8 Troubleshooting
NAT có thể là một động vật phức tạp và trong tất cả, nhưng các môi trường cơ bản nhất có ràng buộc để được các vấn đề có được một cấu hình làm việc tốt. Phần này sẽ đi qua một vài vấn đề phổ biến và đề xuất về cách họ có khả năng có thể được giải quyết.
8.1 Port Forward Troubleshooting
Port Forwards nói riêng có thể phức tạp, vì có nhiều điều sai, nhiều trong số đó có thể nằm trong cấu hình máy client chứ không phải pfSense. Hầu hết các vấn đề mà người dùng gặp phải đã được giải quyết bằng một hoặc nhiều gợi ý sau.
Port forward entry incorrect
Trước bất kỳ tác vụ khắc phục sự cố nào khác, hãy xác minh cài đặt cho port forward. Thực hiện lại quy trình trong Adding Port Forwards, và kiểm tra kỹ xem các giá trị có đúng không. Hãy nhớ rằng, nếu địa chỉ IP NAT hoặc các port bị thay đổi, firewall rule cũng có thể cần điều chỉnh nếu liên kết firewall rule không được chọn.
Những điều phổ biến cần kiểm tra:
- Correct interface: Thường là WAN, hoặc bất cứ nơi nào lưu lượng truy cập sẽ vào firewall.
- Correct NAT IP: Địa chỉ IP có thể truy cập được từ giao diện trên firewall.
- Correct port range: Nó phải tương ứng với dịch vụ được forward.
- Nguồn và port nguồn hầu như luôn được đặt thành any.
Missing or incorrect firewall rule
Sau khi kiểm tra cài đặt port forward, hãy kiểm tra kỹ xem firewall rule có cài đặt tương thích không. Firewall rule không chính xác cũng được thấy rõ bằng cách xem firewall logs. Hãy nhớ rằng, đích cho firewall rule là địa chỉ IP nội bộ của hệ thống mục tiêu chứ không phải địa chỉ của interface chứa port forward.
Firewall is enabled on the target machine
Một điều khác cần xem xét là pfSense có thể được chuyển tiếp port đúng cách hay không, nhưng firewall trên máy mục tiêu có thể đang block lưu lượng truy cập. Nếu có firewall trên hệ thống mục tiêu, hãy kiểm tra logs và cài đặt của nó để xác nhận xem lưu lượng truy cập có bị block tại thời điểm đó hay không.
pfSense is not the target system gateway
Để pfSense chuyển tiếp đúng một port cho hệ thống local, pfSense phải là default gateway cho hệ thống mục tiêu. Nếu pfSense không phải là gateway, hệ thống mục tiêu sẽ cố gắng gửi trả lời để forward port lưu lượng truy cập ra bất kỳ hệ thống nào là gateway, và sau đó một trong hai điều sẽ xảy ra: Nó sẽ bị drop tại thời điểm đó vì sẽ không có trạng thái kết nối phù hợp trên router đó hoặc nó sẽ có NAT được áp dụng bởi router đó và sau đó bị drop bởi hệ thống có nguồn gốc yêu cầu kể từ khi trả lời là từ một địa chỉ IP khác với một trong đó yêu cầu ban đầu được gửi.
Target system has no gateway or cannot use pfSense as its gateway
Một tập hợp con của vấn đề lớn hơn của gateway máy mục tiêu là khi thiết bị không có gateway hoặc không có khả năng có gateway. Trong những trường hợp này, hãy khắc phục sự cố đó bằng cách chuyển sang Hybrid hoặc Manual Outbound NAT và tạo rule trên mạng LAN hoặc interface nội bộ khác đối mặt với thiết bị local. Rule này sẽ chuyển đổi lưu lượng truy cập từ bất kỳ nguồn nào đến hệ thống mục tiêu trên port mục tiêu.
Ví dụ, nếu có một file server không hỗ trợ gateway nằm ở 192.168.11.12, hãy chuyển sang Hybrid Outbound NAT và tạo một rule như Hình Manual Outbound NAT Rule for LAN Device with Missing Gateway để truy cập nó từ bên ngoài mạng. File server sẽ xem địa chỉ IP LAN của firewall là nguồn của lưu lượng truy cập và vì đó là “local” đối với server, nó sẽ phản hồi đúng cách.
Manual Outbound NAT Rule for LAN Device with Missing Gateway
Target machine is not listening on the forwarded port
Nếu yêu cầu bị rejected thay vì hết thời gian khi kết nối được kiểm tra, rất có thể pfSense đang chuyển tiếp kết nối đúng cách và kết nối bị rejected bởi hệ thống mục tiêu. Điều này có thể xảy ra khi hệ thống mục tiêu không có dịch vụ lắng nghe trên port được đề cập hoặc nếu port đang được chuyển tiếp không khớp với port mà hệ thống mục tiêu đang lắng nghe.
Ví dụ: nếu hệ thống mục tiêu được cho là lắng nghe các kết nối SSH, nhưng port forward được nhập cho port 23 thay vì 22, yêu cầu rất có thể sẽ bị từ chối bởi server. Sự khác biệt thường có thể được phát hiện bằng cách cố gắng kết nối với port được đề cập bằng cách sử dụng netcat hoặc telnet. Một thông báo chẳng hạn như “Connection refusedi” cho biết điều gì đó, thường là máy chủ bên trong, đang chủ động từ chối kết nối. Sử dụng Diagnostics > Test Port cũng có thể hữu ích.
ISP is blocking the port
Một số ISP filter lưu lượng truy cập đến các port phổ biến. Kiểm tra Terms of Service (ToS) từ ISP để xem nếu có một điều khoản nào về việc chạy server hay không. Những hạn chế như vậy phổ biến hơn đối với kết nối dân cư hơn là kết nối thương mại. Khi nghi ngờ, một cuộc gọi đến ISP có thể làm sáng tỏ vấn đề.
Nếu port đang được filter bởi ISP, di chuyển các dịch vụ đến một port khác nhau có thể làm việc xung quanh các hạn chế. Ví dụ, nếu ISP không cho phép các server trên port 80, hãy thử 8080 hoặc 18080.
Trước khi cố gắng làm việc xung quanh một bộ lọc, tham khảo ý kiến ISP ToS để đảm bảo rằng chạy một server không phải là vi phạm các rule của họ.
Testing from inside the network instead of outside
Theo mặc định, port forwards sẽ chỉ hoạt động khi kết nối được thực hiện từ bên ngoài mạng local. Đây là một sai lầm rất phổ biến khi kiểm tra port forwards.
Nếu port forwards không bắt buộc phải làm việc nội bộ. Tuy nhiên, Split DNS là một giải pháp thích hợp hơn và tao nhã cho vấn đề này mà không cần phải dựa vào NAT reflection hoặc port forwards, và nó sẽ có giá trị thời gian để thực hiện điều đó để thay thế.
Ngay cả với NAT reflection, việc kiểm tra từ bên trong mạng không nhất thiết cho thấy liệu nó có hoạt động từ Internet hay không. Các hạn chế của ISP, các hạn chế đối với các thiết bị upstream từ firewall, trong số các khả năng khác không thể thấy khi kiểm tra từ bên trong mạng.
Incorrect or missing Virtual IP address
Khi sử dụng địa chỉ IP mà không phải là địa chỉ IP thực tế được gán cho một interface, một địa chỉ Virtual IP phải được sử dụng (VIPs). Nếu một port forward trên một địa chỉ IP thay thế không hoạt động, một loại khác nhau của VIP có thể được yêu cầu.
Khi kiểm tra, hãy đảm bảo rằng máy client đang kết nối với VIP thích hợp.
pfSense is not the border/edge router
Trong một số trường hợp, pfSense là một router nội bộ và có những router khác giữa nó và Internet cũng thực hiện NAT. Trong trường hợp như vậy, một port forward cũng phải được nhập trên router biên chuyển tiếp port tới pfSense, sau đó sẽ sử dụng một port forward khác để đưa nó đến hệ thống local.
Forwarding ports to a system behind Captive Portal
Việc forward port tới một host phía sau một cổng thông tin bị khóa cần được xem xét đặc biệt.
Further testing needed
Nếu không có giải pháp nào trong số này dẫn đến việc hoạt động port forward, tham khảo Firewall States để tìm các trạng thái NAT cho biết rằng kết nối đã vượt qua firewall hoặc Packet Capturing để biết thông tin về cách sử dụng packet captures để chẩn đoán các sự cố port forward.
9.2 NAT Reflection Troubleshooting
NAT Reflection là phức tạp, và như vậy có thể không hoạt động trong một số trường hợp nâng cao. Chúng ta nên sử dụng Split DNS thay thế trong hầu hết các trường hợp. Tuy nhiên, NAT Reflection trên các bản phát hành pfSense hiện tại hoạt động khá tốt cho gần như tất cả các trường hợp và mọi sự cố thường là do lỗi cấu hình. Đảm bảo rằng nó đã được bật đúng cách và đảm bảo rằng một loạt các port không được chuyển tiếp một cách không cần thiết.
Các rule NAT Reflection cũng được sao chép cho mỗi interface có trong hệ thống, vì vậy nếu sử dụng nhiều port forward và interface, số lượng bộ phản xạ có thể dễ dàng vượt qua giới hạn của hệ thống. Nếu điều này xảy ra, một mục được in trong system logs. Kiểm tra system logs cho bất kỳ lỗi hoặc thông tin.
Web Access is Broken with NAT Reflection Enabled
Nếu một Port Forward NAT được chỉ định không đúng cách trên firewall, nó có thể gây ra sự cố khi NAT Reflection được enable. Cách phổ biến nhất mà sự cố này phát sinh là với một web server local và port 80 được forward đến đó với một External Address. được chỉ định không đúng.
Nếu NAT Reflection được enable và External Address được set thành any, bất kỳ kết nối nào được thực hiện trên firewall sẽ trở thành web server local. Để khắc phục điều này, hãy chỉnh sửa Port Forward cho port vi phạm và thay đổi External Address thành Interface Address.
Nếu địa chỉ bên ngoài của any được yêu cầu, thì NAT Reflection sẽ không hoạt động và phải sử dụng Split DNS để thay thế.
9.3 Outbound NAT Troubleshooting
Khi manual outbound NAT được enable và có nhiều local subnet, một mục nhập outbound NAT là bắt buộc cho mỗi mạng. Điều này đặc biệt áp dụng nếu lưu lượng truy cập phải thoát bằng NAT sau khi vào pfSense router qua kết nối VPN như OpenVPN.
Một dấu hiệu của một rule NAT outbound bị thiếu sẽ thấy các gói tin rời khỏi interface WAN với địa chỉ nguồn của một private network.
Trong cách sử dụng phổ biến nhất, Network Address Translation (NAT) cho phép nhiều máy tính sử dụng IPv4 được kết nối với Internet bằng một địa chỉ IPv4 public duy nhất. PfSense cho phép các triển khai đơn giản này, nhưng cũng đáp ứng các cấu hình NAT nâng cao và phức tạp hơn được yêu cầu trong các mạng có nhiều địa chỉ IP public.
NAT được cấu hình theo hai hướng: inbound và outbound. Outbound NAT xác định cách thức lưu lượng truy cập rời mạng local dành cho mạng từ xa, chẳng hạn như Internet được chuyển đổi. Inbound NAT đề cập đến lưu lượng truy cập vào mạng từ một mạng từ xa. Loại inbound NAT phổ biến nhất là port forwards, đây cũng là kiểu mà nhiều quản trị viên quen thuộc nhất.
10 Default NAT Configuration
Phần này mô tả cấu hình NAT mặc định có trên pfSense. Cấu hình NAT thích hợp nhất có thể xác định là được tạo tự động. Trong một số môi trường, cấu hình này có thể không phù hợp và pfSense hoàn toàn cho phép thay đổi nó từ interface web. Đây là một sự tương phản từ nhiều bản phân phối firewall mã nguồn mở khác, không cho phép các khả năng thường được yêu cầu trong tất cả các mạng nhỏ, đơn giản.
10.1 Default Outbound NAT Configuration
Trong một thiết lập pfSense hai giao diện điển hình với mạng LAN và WAN, cấu hình NAT mặc định tự động chuyển đổi lưu lượng truy cập internet ràng buộc đến địa chỉ IP WAN. Khi nhiều interface WAN được cấu hình, lưu lượng truy cập để lại bất kỳ interface WAN được tự động chuyển đổi đến địa chỉ của interface WAN đang được sử dụng.
Static port được cấu hình tự động cho IKE (một phần của IPsec).
Để phát hiện interface kiểu WAN để sử dụng với NAT, pfSense tìm kiếm sự hiện diện của một gateway được chọn trên cấu hình interface nếu nó có địa chỉ static IP, hoặc pfSense giả định interface là một WAN nếu nó là một loại dynamic như PPPoE hoặc DHCP..
10.2 Default Inbound NAT Configuration
Theo mặc định, không có gì được phép truy cập Internet trên interface WAN. Nếu lưu lượng truy cập khởi tạo trên Internet phải được allow đến host trên mạng nội bộ, thì cần có c port forwards hoặc NAT 1: 1.