rendered paste body#!/bin/sh
#
# iptables rules for central de vendas em informatica ltda.
#
iptables=`which iptables`
modprobe=`which modprobe`
#
# some network definitions.
#
central_ext = "eth0"
central_ext_ip = "201.12.35.51"
central_int = "eth1"
central_int_net = "192.168.1.0/24"
odin_int = "192.168.1.134"
odin_ext = "201.12.35.52"
saint_int = "192.168.1.53"
saint_ext = "201.12.35.54"
saint_net = "200.230.207.0/24"
sicredi_ext_ip = "201.77.95.20"
sicredi_net = "172.16.0.0/12"
#
# Some proc definitions.
#
# Drop connections from non-routable IPs.
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $i
done
# Don't accept source routed packets.
for interface in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $interface
done
# Enable syn-flood protection.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Log martians.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# Ignore ICMP redirect messages.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Enable IP forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward
# Reduce some timeouts.
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
# Fix some issues with DNS.
echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout
# Set local port range.
echo "32768 61000" > /proc/sys/net/ipv4/ip_local_port_range
#
# Flush iptables.
#
# Attempt to flush all rules in filter table.
$iptables -F
$iptables -X
# Flush built-in rules.
$iptables -F INPUT
$iptables -F OUTPUT
$iptables -F FORWARD
$iptables -t nat -F 2>/dev/null
$iptables -t nat -X 2>/dev/null
$iptables -t mangle -F 2>/dev/null
$iptables -t mangle -X 2>/dev/null
# Set default policy.
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptables -P OUTPUT ACCEPT
$iptables -t nat -P POSTROUTING ACCEPT 2>/dev/null
$iptables -t nat -P PREROUTING ACCEPT 2>/dev/null
$iptables -t mangle -P OUTPUT ACCEPT 2>/dev/null
$iptables -t mangle -P PREROUTING ACCEPT 2>/dev/null
# Reset iptables counters.
$iptables -Z
$iptables -t nat -Z 2>/dev/null
$iptables -t mangle -Z 2>/dev/null
#
# Chain VALID - Check for invalid flags.
#
# Create the chain.
$iptables -N VALID
# Limit/Log first.
# (NMAP) FIN/URG/PSH.
$iptables -A VALID -p tcp --tcp-flags ALL FIN,URG,PSH \
-m limit --limit 3/m --limit-burst 5 -j LOG --log-level $LOGLEVEL --log-prefix "Stealth XMAS scan: "
# SYN/RST/ACK/FIN/URG.
$iptables -A VALID -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG \
-m limit --limit 3/m --limit-burst 5 -j LOG --log-level $LOGLEVEL --log-prefix "Stealth XMAS-PSH scan: "
# ALL/ALL.
$iptables -A VALID -p tcp --tcp-flags ALL ALL \
-m limit --limit 3/m --limit-burst 5 -j LOG --log-level $LOGLEVEL --log-prefix "Stealth XMAS-ALL scan: "
# NMAP FIN Stealth.
$iptables -A VALID -p tcp --tcp-flags ALL FIN \
-m limit --limit 3/m --limit-burst 5 -j LOG --log-level $LOGLEVEL --log-prefix "Stealth FIN scan: "
# SYN/RST.
$iptables -A VALID -p tcp --tcp-flags SYN,RST SYN,RST \
-m limit --limit 3/m --limit-burst 5 -j LOG --log-level $LOGLEVEL --log-prefix "Stealth SYN/RST scan: "
# SYN/FIN (probably).
$iptables -A VALID -p tcp --tcp-flags SYN,FIN SYN,FIN \
-m limit --limit 3/m --limit-burst 5 -j LOG --log-level $LOGLEVEL --log-prefix "Stealth SYN/FIN scan(?): "
# Null scan.
$iptables -A VALID -p tcp --tcp-flags ALL NONE \
-m limit --limit 3/m --limit-burst 5 -j LOG --log-level $LOGLEVEL --log-prefix "Stealth Null scan: "
# Bad flags.
$iptables -A VALID -p tcp --tcp-option 64 \
-m limit --limit 3/m --limit-burst 1 -j LOG --log-level $LOGLEVEL --log-prefix "Bad TCP flag(64): "
$iptables -A VALID -p tcp --tcp-option 128 \
-m limit --limit 3/m --limit-burst 1 -j LOG --log-level $LOGLEVEL --log-prefix "Bad TCP flag(128): "
# Drop them.
# NMAP FIN/URG/PSH.
$iptables -A VALID -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
# SYN/RST/ACK/FIN/URG.
$iptables -A VALID -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
# ALL/ALL Scan.
$iptables -A VALID -p tcp --tcp-flags ALL ALL -j DROP
# NMAP FIN Stealth.
$iptables -A VALID -p tcp --tcp-flags ALL FIN -j DROP
# SYN/RST.
$iptables -A VALID -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# SYN/FIN -- Scan(probably).
$iptables -A VALID -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# NMAP Null Scan.
$iptables -A VALID -p tcp --tcp-flags ALL NONE -j DROP
# Bad flags.
$iptables -A VALID -p tcp --tcp-option 64 -j DROP
$iptables -A VALID -p tcp --tcp-option 128 -j DROP