#!/bin/bash # Flush any existing rules and set the default policies iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Accept anything from myself #iptables -A INPUT -s 127.0.0.1/32 -j ACCEPT iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # Allow myself to be a non-passive FTP client #iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT # Do not allow a local user to connect to a remote Telnet # server and thus give away login and password information: iptables -A OUTPUT -p tcp --dport telnet -j REJECT # Steam iptables -A INPUT -p tcp --dport 27000:27041 -j ACCEPT iptables -A INPUT -p udp --dport 27000:27041 -j ACCEPT # Steam Friends Service iptables -A INPUT -p udp --dport 1200 -j ACCEPT # Quake 3 iptables -A INPUT -p tcp --dport 27960 -j ACCEPT iptables -A INPUT -p udp --dport 27960 -j ACCEPT # Quake 2 iptables -A INPUT -p udp --dport 27910 -j ACCEPT iptables -A INPUT -p udp --dport 27910 -j ACCEPT # StarCraft iptables -A INPUT -p tcp --dport 6112 -j ACCEPT iptables -A INPUT -p udp --dport 6112 -j ACCEPT # AIM DCC iptables -A INPUT -p tcp --dport 5190:5200 -j ACCEPT iptables -A INPUT -p udp --dport 5190:5200 -j ACCEPT # Custom DC++ Port iptables -A INPUT -p tcp --dport 27072 -j ACCEPT iptables -A INPUT -p udp --dport 27072 -j ACCEPT # If it's not one of the above allowed cases, block connection # attempts to privileged TCP and UDP ports. # # Silently drop unwanted packets to waste the attacker's time. iptables -A INPUT -p tcp --dport 1:65535 -j DROP iptables -A INPUT -p udp --dport 1:65535 -j DROP # Report what happened echo 'Firewall rules installed:' iptables -L exit