rendered paste body#!/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