rendered paste body#!/bin/bash
echo "The firewall is starting up...:-)"
# Define variables
IPT=/sbin/iptables # change if needed
EXT_IF=eth0 # external interface (connected to internet)
# Enable TCP SYN Cookie Protection
# ** comment the line below if it throws an error;
# ** TCP_SYN_COOKIES must be enabled in the kernel
# ** for this to work
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Disable ICMP Redirect Acceptance
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Do not send Redirect Messages
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
# Enable bad error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Enable broadcast echo protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Disable source-routed packets
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Log spoofed packets, source-routed packets, and redirect packets
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# Let's allow redirects from trusted gateways only:
echo 1 > /proc/sys/net/ipv4/conf/all/secure_redirects
# Reduce chances of DOS'ing by reducing timeouts
# Defaults:
# echo 60 > /proc/sys/net/ipv4/tcp_fin_timeout
# echo 7200 > /proc/sys/net/ipv4/tcp_keepalive_time
# echo 8192 > /proc/sys/net/ipv4/tcp_max_orphans
# echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 3600 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 4096 > /proc/sys/net/ipv4/tcp_max_orphans
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
# Let's load the module allowing Connection Tracking for FTP:
/sbin/modprobe ip_conntrack_ftp
# Let's load the module allowing Connection Tracking for IRC:
/sbin/modprobe ip_conntrack_irc
# Set default policy to DROP
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP
# Flush old rules
$IPT -F
# Allow loopback traffic
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# Allow packets of established connections and those
# which are related to established connections
$IPT -A INPUT -i $EXT_IF -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow incoming ssh from internet
# ** (uncomment the line below if you want to allow incoming ssh)
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 22 -m state --state NEW -j ACCEPT
# Allow incoming conections
# Azureus
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 46661 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $EXT_IF -p udp --destination-port 46661 -m state --state NEW -j ACCEPT
# httpd
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 80 -m state --state NEW -j ACCEPT
# IRCD
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 6886 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $EXT_IF -p udp --destination-port 46661 -m state --state NEW -j ACCEPT
# MAIL
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 25 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 110 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 935 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 995 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 1024 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 22 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $EXT_IF -p tcp -s 195.70.38.0/24 -d 195.70.38.0/24 --dport 1:65535 -j REJECT
#$IPT -A INPUT -i $EXT_IF -p tcp -s 195.70.38.0/24 -d 195.70.38.0/24 --sport 1:65535 -j REJECT
$IPT -A INPUT -i $EXT_IF -p udp --destination-port 1:65535 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 2611 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 111 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 3306 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 8080 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 825 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 3333 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 5555 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 4444 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 2611 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 7634 -j DROP
$IPT -A INPUT -i $EXT_IF -p tcp --destination-port 7777 -j DROP
# Set default policy to DROP
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP