#!/bin/sh

PTTLOCALNET=192.168.1.0/24

iptables -F
iptables -F -t nat

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -i eth1 -m unclean -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -m length --length 128:65535 -j DROP

iptables -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 8 -m length --length 128:65535 -j DROP
###iptables -A FORWARD -m pkttype ---pkt-type multicast -j DROP
iptables -A FORWARD -m state --state INVALID -i eth0 -j REJECT

iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

###################################
# to avoid repeated ssh password guessing

iptables -A INPUT -p tcp --dport 22 -s ! $PTTLOCALNET -m state --state NEW \
  -m recent --name sshattack --set
#iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent \
#  --name sshattack --rcheck --seconds 60 --hitcount 3 \
#  -j LOG --log-prefix 'SSH REJECT: '
iptables -A INPUT -p tcp --dport 22 -s ! $PTTLOCALNET -m state --state NEW \
  -m recent --name sshattack --rcheck --seconds 60 --hitcount 3 \
  -j REJECT --reject-with tcp-reset

###################################

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000 -i eth0 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s $PTTLOCALNET --dport 22 -j ACCEPT

iptables -A INPUT -i eth0 -s $PTTLOCALNET -j ACCEPT

###################################

iptables -A POSTROUTING -t nat  -s $PTTLOCALNET -j MASQUERADE

#iptables -I INPUT -j LOG

