====== Networking - Router - Build a Router ====== A router is defined as a system that performs the following duties: * Network Address Translation (NAT). * Handing out IP addresses to clients via DHCP. * Allowing incoming connections to a local web server. * Doing DNS caching for the LAN. * Providing wireless connectivity (requires a supported card). The following interfaces are needed: * WAN * LAN * WiFi (Optional) ---- ===== Networking ===== ==== Enable IP Forwarding ==== echo 'net.inet.ip.forwarding=1' >> /etc/sysctl.conf ---- ==== Configure IP Address ==== Set an IP Address for the device. Either DHCP or a Static IP. ---- Configure the WiFi Network. ---- ===== DHCP ===== The DHCP resolver should be started at boot time to provide client machines with local IP addresses. Example for DHCP servers include: * dhcpd. ---- ===== Configure Primary IP Addresses ===== **NOTE:** Any RFC 1918 address space may be specified here. Usually there is an option to point to the local DNS server. * This will be configured later. * For now, enter an IP for this if known. ---- ===== Firewall ===== Configure Firewall with: * Default policy: **drop**. * Block any connections in on the WAN to unroutable addresses. Only incoming and outgoing connections which have been explicitly put in the firewall rules will be allowed. * Block any return connections to unroutable addresses. * Allow outgoing IPv4 traffic from both the gateway itself and the LAN clients. * Allow internal LAN traffic. **NOTE:** Unroutable addresses include: 0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 ---- ===== DNS ===== ==== Use Unbound ==== A DNS cache is recommended. An example configuration would include: server: interface: 192.168.1.1 interface: 192.168.2.1 interface: 127.0.0.1 access-control: 192.168.1.0/24 allow access-control: 192.168.2.0/24 allow do-not-query-localhost: no hide-identity: yes hide-version: yes forward-zone: name: "." forward-addr: 1.2.3.4 # IP of the upstream resolver. **NOTE:** The above configuration assumes that the 192.168.1.0/24 subnet is used for the wired clients and 192.168.2.0/24 for the wireless. ---- ===== Configure /etc/resolv.conf ===== nameserver 127.0.0.1 nameserver 1.2.3.4 search localdomain **NOTE:** * **nameserver 127.0.0.1**: Needed as the router is using the caching resolver. * **nameserver 1.2.3.4**: The IP of the DNS Resolver. ---- Reboot the system.