Я бы вам предложил сделать сервак гейтом, чтобы он во внешку одним интефейсом смотрел (eth0, например, если у тебе провайдер выделил статический ip 212.0.0.110), а другим в локальную сеть(eth1 192.168.0.1). Роутер тогда будет входить в локалку, и настроить его только как точку доступа для wi-fi.
На сервере поднять squid, dns и dhcp.
На серваке, уже ваше дело: можно squid прозрачный сделать для http и https, а остальные порты закрыть в iptables для локальной сети. Потом, если будет нужно, что-то пустить через NAT, что-то через тот же прокси.
Для iptables:
1) чтобы сбросить все правила (но это только в цепочке filter):
sudo iptables -F
sudo iptables -X
2) чтобы закрыть все порты по-умолчанию:
sudo iptables -P FORWARD DROP
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
3) Открываем доступ для лупа:
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
4) Делаем NAT, если нужен полный доступ локалки ко внешке:
разрешаем FORWARDING пакетов:
sudo echo "1" > /proc/sys/net/ipv4/ip_forward
а) в случае динамического ip для внешки:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d ! 192.168.0.1 -j MASQUERADE
б) в случае со статическим ip:
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -d ! 192.168.0.1 -j SNAT --to-source 212.0.0.110
4) Прописываем правила для состояний пакетов:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
5) Прописываем правила для dhcp в локалке:
sudo iptables -A INPUT -i eth1 -p udp -m udp -s 0.0.0.0 --sport 68 -d 255.255.255.255 --dport 67 -j ACCEPT
sudo iptables -A OUTPUT -o eth1 -p udp -m udp -s 192.168.0.1 --sport 67 -d 255.255.255.255 --dport 68 -j ACCEPT
sudo iptables -A INPUT -i eth1 -p udp -m udp -s 192.168.0.0/24 --sport 68 -d 192.168.0.1 --dport 67 -j ACCEPT
sudo iptables -A OUTPUT -o eth1 -p udp -m udp -s 192.168.0.1 --sport 67 -d 192.168.0.0/24 --dport 68 -j ACCEPT
sudo iptables -A OUTPUT -o eth1 -p icmp -m icmp -s 10.0.0.1 -d 192.168.0.0/24 --icmp-type 8/0 -j ACCEPT
6) Прописываем правила для dns
sudo iptables -A OUTPUT -o eth0 -p tcp -m tcp -s 212.0.0.110 --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -o eth0 -p udp -m udp -s 212.0.0.110 --dport 53 -j ACCEPT
sudo iptables -A INPUT -i eth1 -p tcp -m tcp -s 192.168.0.0/24 -d 192.168.0.1 --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A INPUT -i eth1 -p udp -m udp -s 192.168.0.0/24 -d 192.168.0.1 --dport 53 -j ACCEPT
7) Правило для прокси
sudo iptables -A INPUT -i eth1 -p tcp -m tcp -s 192.168.0.0/24 -d 192.168.0.1 --dport 3128 -m state --state NEW -j ACCEPT

Все остальное блокируем и заносим в журнал
sudo iptables -N In_RST
sudo iptables -A INPUT -j In_RST
sudo iptables -A In_RST -j LOG --log-level info --log-prefix "RST -- DENY"
sudo iptables -A In_RST -j DROP
sudo iptables -N In_ALL
sudo iptables -A OUTPUT -j In_ALL
sudo iptables -A INPUT -j In_ALL
sudo iptables -A FORWARD -j In_ALL
sudo iptables -A In_ALL -j LOG --log-level info --log-prefix "ALL -- DENY"
sudo iptables -A In_ALL -j DROP
В принципе все. Потом можно уже пилить дальше: настроить защиту сервака, smb расшарить, другие порты открыть и т.д.