Table of Contents

Firewall

The Firewall page allows you to configure options to protect or facilitate various types of network communications.

Firewall

advanced-firewall-1.jpg


WAN interfaces respond to ping and traceroute: lets your device reply to ping/traceroute request packets from Internet hosts.

This is needed for ping and traceroute to work via the Internet. It also may be needed for proper functioning of some VPN or IPv6 protocols.


Limit communication to: specifies the maximum number of requests per second to which the Firewall replies.

Setting a limit is recommended to prevent DDoS attacks.


advanced-firewall-2.jpg


Enable TCP SYN cookies: uses “SYN cookies” to protect the router from SYN Flood attacks.

This uses a standard method for preventing SYN floods. It encodes information from the SYN packet into the (SYN/ACK) response. Its limitations may cause issues with some old TCP/IP stacks.


Enable DCSP Fix: enables a workaround for packet marking, a well-known DCSP issue when using Comcast.


Allow DHCP Spoofing: makes FreshTomato accept/process packets from DHCP servers with different IP than the one it advertises.

Such behaviour is often categorized as a DHCP spoofing attack, but rarely, might be legitimate. Using this lowers security.


Smart MTU black hole detection: detects ICMP black holes and smartly tries to adjust the path MTU.

For details on MTU and black holes, see this blog post: The CloudFlare Blog: Path MTU Discovery in Practice


TCP MSS Clamping:

This adjusts the Maximum Segment Size of forwarded TCP connections on WAN and VPN interfaces to match the discovered path MTU.

This helps avoid MTU-related connection problems, especially on PPPoE links, VPN tunnels, IPv6 tunnels, or networks with blocked ICMP fragmentation-needed messages.

Disabling this option reduces the number of firewall rules and may slightly improve performance on low-end routers, but can cause connection stalls or TLS handshake timeouts on links with reduced MTU.

Recommended setting: enabled, unless MTU/MSS is handled manually or the network works reliably without MSS clamping.

NAT

NAT loopback: The NAT Loopback (Hairpinning) logic is implemented in the firewall subsystem (firewall.c) using iptables rules applied to the PREROUTING and POSTROUTING chains of the nat table.


1. Disabled
Under the Hood (iptables): FreshTomato omits loopback rules in the NAT chains.


Behavior: When a local LAN client sends traffic destined for the router’s public WAN IP address (or DDNS domain name), the router receives it, sees that there is no active rule translating internal LAN traffic back into the LAN, and simply drops or rejects the traffic.


Pros: - Lowest router CPU load and max throughput (zero extra NAT inspection or packet rewriting for LAN traffic). - Forces proper network boundary segregation.


Cons: - LAN devices cannot access local servers using public domain names or public IP addresses nor the router admin interface on the WAN.



2. Forwarded Only (default)

Under the Hood (iptables): FreshTomato generates rules that apply loopback translation only to traffic aimed at ports that are explicitly defined in the Port Forwarding rules.


Matches LAN traffic destined for WAN_IP:PORT only if PORT exists in nat PREROUTING / port-forward tables. These are essentially ports you find defined under Port Forwarding.


Behavior: If you forward port 8443 to an internal server at 192.168.1.10:443, a LAN device reaching out to [https://yourdomain.com:8443](https://yourdomain.com:8443) gets rewritten and looped back inside the LAN. However, if you try to reach [https://yourdomain.com:443](https://yourdomain.com:443) (a port with no active forward rule), it is rejected/dropped.


Pros: - Security & Control: Prevents local LAN traffic from hitting closed or un-forwarded router ports via the external WAN identity. - Performance: Limits loopback processing overhead to explicitly required ports only.


Cons: - Will not work for dynamic or non-forwarded services (e.g., UPnP-opened ports or DMZ configurations depending on implementation). It will not work for the router administration GUI called on its WAN interface from a LAN device.



3. All

Under the Hood (iptables): FreshTomato inserts a blanket PREROUTING NAT rule matching all traffic coming from the LAN interface aimed at the WAN interface IP address, regardless of whether a port forward rule exists.


Behavior: Any LAN connection sent to the WAN IP (only to the WAN IP, not the Internet!) is looped back to the router or LAN destination.


Pros: - “It just works” convenience—applies to UPnP mapped ports, DMZ hosts, and all services without needing individual port forward rules. This is the only mode supporting the WAN router administration called from the LAN.


Cons: - Performance Bottlenecks (minor): Every single piece of LAN-to-“WAN-IP” traffic runs through blanket SNAT/DNAT rule-matching cycles, bypassing hardware NAT/CTF (Cut-Through Forwarding) acceleration on supported chipsets. NOTE: this is to the WAN-IP not the Internet! - Unintended Loops/Routing Anomalies (rare): Can cause severe instability or packet loops when using dual routers, wireless bridges, or complex multi-subnets.



NAT target: defines how NAT is implemented in loopback situations.

Masquerade is the default, but involves an additional lookup, and the mapping is done towards an interface. SNAT is minutely faster, as its NAT mapping points directly to the destination IP, thus bypassing the lookup stage. However, SNAT is less reliable than Masquerade.

Multicast




Enable IGMP proxy: enables the Internet Group Management Protocol service.

LAN0 - LAN3 specify which bridges will participate in IGMP, with the router acting as a proxy between chosen LANs. This lets IGMP work between VLANs.



Enable quick leave: this IGMPv2 feature lets the router stop multicasting to an IP that has sent it a “quick leave” packet.


Custom Configuration: lets you configure advanced settings for the IGMP proxy daemon. Consult official documentation.




Enable Udpxy: like IGMP proxy, this lets devices on different VLANs do multicast communications.

Since they are similar, use one or the other, but not both at the same time.


Upstream interface: here, enter the expected stream source location.

(Default: blank).


LAN0/LAN1/LAN2/LAN3 - specifies the location streaming clients should be found.


Enable client statistics: causes FreshTomato to collect statistics about Udpxy clients.


Max clients: the maximum number of simultaneous Udpxy clients.

Udpxy is is a lightweight protocol, so it works well for a limited number of clients. You might want to set a maximum limit.


Udpxy port: specifies the port on which to receive Udpxy information from your router.




Efficient Multicast Forwarding (IGMP Snooping): IGMP snooping makes the router's switch facilitate discovery of Multicast IGMP clients. This helps to send multicast traffic only towards ports with at least one multicast subscriber, reducing overall multicast traffic.

However, caution is advised. IGMP Snooping can interfere with functioning of UPnP or DLNA. This can make Multicast configuration errors or deficiencies appear as UPnP issues. Enabling IGMP snooping on a router's switch interferes with UPnP/DLNA device discovery. Specifically, it can interfere with SSDP protocol transmissions. If IGMP snooping is improperly configured (say, without an active querier/IGMP proxy), it can make UPnP appear unreliable.

A common symptom of this is a network host (say, a Smart TV) which appears after it's powered on, but then “disappears” from the network after a few minutes. To be more precise, typically 30 minutes. This is because the default setting for when IGMP group membership will expire. Please be aware of the wireless multicast forwarding setting in the the Advanced/Wireless menu.


Force IGMPv2: forces IGMPv2 to be used on the network.

IGMPv2 enhances IGMP with additional messages/behavior to optimize end-to-end client-server communication. Probably the most important one is the “Leave Group” message. When a host wants to stop listening to a multicast group address, it reports to the router that it has stopped listening. In v1, the host simply stopped listening, without informing the router.


Other features of IGMPv2 include:

Group specific membership query: Now, the router can send a membership query for a specific group address. When the router receives a leave group message, it will use this query to check if there are still hosts interested in receiving the multicast traffic.

MRT (Maximum Response Time) field. This new field in query messages specifies how much time hosts have to respond to the query.

Querier election process. When two routers are on the same subnet, only one should send query messages. Having an “election” process ensures only one router, with the lowest IP address, becomes the active querier.