[Back]
# /etc/sysconifg/iptables
# /etc/init.d/iptables restart after edit
# Based on Martin's workstation iptables ruleset
# My IP: 172.16.1.100
#
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
# Handle loopback addresses
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
# Allow outbound packets if state related, and inbound if established
-A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Drop if no flags set or all flags set
-A INPUT -p tcp -s 0/0 -d 172.16.1.100 --tcp-flags ALL NONE -j DROP
-A INPUT -p tcp -s 0/0 -d 172.16.1.100 --tcp-flags ALL ALL -j DROP
# Drop stealth scans
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,RST FIN,RST
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags ACK,FIN FIN
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags ACK,URG URG
# Allow port 25. SMTP
-A INPUT -s 0/0 -p tcp -m tcp --dport 25 -j ACCEPT
# Allow & log SSH in from ben, jerry, and MSU
-A INPUT -p tcp --syn --dport 22 -j LOG --log-prefix "SSH SYN "
-A INPUT -s 172.16.1.11 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -s 172.16.1.12 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -s 153.90.0.0/16 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Allow VNC in from MSU
# -A INPUT -s 152.90.0.0/16 -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
# Allow ICMP pings to the world, drop all others
-A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -s 0/0 -d 172.16.1.100 -j DROP
# Need to allow BackupServ1 in for Legato backups
-A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 514 -j ACCEPT
-A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 7937 -j ACCEPT
-A INPUT -s 172.16.1.27 -m state --state NEW -m tcp -p tcp --dport 7938 -j ACCEPT
# Allow X in from FileServ1 for handling user accounts
-A INPUT -s 172.16.1.104 -m state --state NEW -m tcp -p tcp --dport 6000 -j ACCEPT
# Allow access to my webserver from anywhere within MSU's domain.
-A INPUT -s 153.90.0.0/16 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# Allow samba access for Ben
-A INPUT -s 172.16.1.11 -p tcp -m tcp --dport 137 --syn -j ACCEPT
-A INPUT -s 172.16.1.11 -p tcp -m tcp --dport 138 --syn -j ACCEPT
-A INPUT -s 172.16.1.11 -p tcp -m tcp --dport 139 --syn -j ACCEPT
-A INPUT -s 172.16.1.11 -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -s 172.16.1.11 -p udp -m udp --dport 138 -j ACCEPT
-A INPUT -s 172.16.1.11 -p udp -m udp --dport 139 -j ACCEPT
# Allow samba nfs access for Jerry
# This assumes that mountd is running on port 33333 only.
# (this can be forced by adding "MOUNTD_PORT=33333" just before first occurance of
# MOUNTD_PORT in /etc/init.d/nfs)
-A INPUT -s 172.16.1.12 -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -s 172.16.1.12 -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -s 172.16.1.12 -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -p tcp -m tcp -s 172.16.1.12 --dport 2049 -j ACCEPT
-A INPUT -p udp -m udp -s 172.16.1.12 --dport 2049 -j ACCEPT
-A INPUT -s 172.16.1.12 -p tcp -m tcp --dport 33333 -j ACCEPT
-A INPUT -s 172.16.1.12 -p udp -m udp --dport 33333 -j ACCEPT
#
COMMIT