In this video we use Vyatta to setup an Internet Gateway. We set it up with the following features: Firewall DHCP Server DNS forwarding+Cache NAT Web Cache Web Filtering Reverse NAT (Port Forwarding)
As requested here is the config for the router in the video: firewall { all-ping enable broadcast-ping disable conntrack-table-size 32768 conntrack-tcp-loose enable ip-src-route disable ipv6-receive-redirects disable ipv6-src-route disable log-martians enable name ALLOW_ESTABLISHED { default-action drop rule 10 { action accept state { established enable } } } name WAN_IN { default-action drop rule 10 { action accept destination { address 192.168.10.10 port 80 } log enable protocol tcp } rule 20 { action accept destination { address 192.168.10.10 port 3389 } log enable protocol tcp } rule 30 { action accept destination { address 192.168.10.0/24 } } } receive-redirects disable send-redirects enable source-validation disable syn-cookies enable } interfaces { ethernet eth0 { address dhcp description Outside duplex auto firewall { in { name WAN_IN } local { name ALLOW_ESTABLISHED } } hw-id 00:0c:29:7b:1a:29 smp_affinity auto speed auto } ethernet eth1 { address 192.168.10.1/24 description Inside duplex auto hw-id 00:0c:29:7b:1a:33 smp_affinity auto speed auto } ethernet eth2 { description DMZ duplex auto hw-id 00:0c:29:7b:1a:3d smp_affinity auto speed auto } loopback lo { } } service { dhcp-server { disabled false shared-network-name POOL1 { authoritative disable subnet 192.168.10.0/24 { default-router 192.168.10.1 dns-server 192.168.10.1 domain-name Vyatta.local lease 86400 start 192.168.10.10 { stop 192.168.10.200 } } } } dns { forwarding { cache-size 150 listen-on eth1 name-server 208.67.222.222 name-server 208.67.220.220 } } nat { rule 10 { outbound-interface eth0 source { address 192.168.10.0/24 } type masquerade } rule 20 { destination { address 192.168.0.84 port 80 } inbound-interface eth0 inside-address { address 192.168.10.10 port 80 } protocol tcp type destination } rule 30 { destination { address 192.168.0.84 port 3389 } inbound-interface eth0 inside-address { address 192.168.10.10 port 3389 } protocol tcp type destination } } ssh { allow-root true port 22 protocol-version v2 } webproxy { cache-size 200 default-port 3128 listen-address 192.168.10.1 { } url-filtering { squidguard { auto-update daily block-category malware block-category porn block-category warez block-category proxy default-action allow local-block facebook.com redirect-url http://www.google.com } } } } system { host-name vyatta login { user root { authentication { encrypted-password $1$ORKO400D$9GoL/vifapZLo3p.sLkUs/ plaintext-password "" } level admin } user vyatta { authentication { encrypted-password $1$Z9oMjC/m$r.T2vNILnVuZnIwkKhg58. } level admin } } ntp-server 0.vyatta.pool.ntp.org package { auto-sync 1 repository community { components main distribution stable password "" url http://packages.vyatta.com/vyatta username "" } repository kenwood { components main distribution kenwood password "" url http://packages.vyatta.com/vyatta-dev/kenwood/unstable/ username "" } repository lenny { components main distribution lenny password "" url http://packages.vyatta.com/debian/ username "" } } syslog { global { facility all { level notice } facility protocols { level debug } } } time-zone GMT }
/* Warning: Do not remove the following line. */ /* === vyatta-config-version: "cluster@1:dhcp-relay@1:dhcp-server@4:firewall@3:ipsec@1:nat@3:quagga@1:system@1:vrrp@1:wanloadbalance@1:webgui@1" === */ /* Release version: VC6_a2 */