#!/bin/sh

# start by flushing the rules
iptables -F
#---
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP				# pozbycie sie blednych pakietow
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP				# pozbycie sie blednych pakietow
#---
iptables -A INPUT -i lo -j ACCEPT							# zgoda na ruch wewnatrz sieci (wejscie)
iptables -A OUTPUT -o lo -j ACCEPT							# zgoda na ruch wewnatrz sieci (wyjscie)
iptables -A OUTPUT -o br0 -j ACCEPT							# zgoda na ruch wychodzacyc
#--- OCHRONA PRZED FLOODEM
iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP				# wykluczenie timestamp-request z ruchu icmp
iptables -A INPUT -p icmp -j ACCEPT							# zgoda na ruch icmp
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT  	# ping of death
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT				# syn-flood
iptables -A INPUT -m state --state INVALID -j DROP					# stop bad packets
iptables -A INPUT -i br0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP			# NMAP FIN/URG/PSH
iptables -A INPUT -i br0 -p tcp --tcp-flags ALL ALL -j DROP				# stop Xmas Tree type scanning
iptables -A INPUT -i br0 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP		# stop Xmas Tree type scanning
iptables -A INPUT -i br0 -p tcp --tcp-flags ALL NONE -j DROP				# stop null scanning
iptables -A INPUT -i br0 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP			# SYN/RST
iptables -A INPUT -i br0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP			# SYN/FIN
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT			# Akceptujemy polaczenia zainicjowane przez nas
#--- USLUGI DOZWOLONE
iptables -A INPUT -p tcp --destination-port smtp -j ACCEPT	# smtp
iptables -A INPUT -p tcp --destination-port www -j ACCEPT	# www tcp
iptables -A INPUT -p udp --destination-port www -j ACCEPT	# www udp
iptables -A INPUT -p tcp --destination-port https -j ACCEPT	# https tcp
iptables -A INPUT -p udp --destination-port https -j ACCEPT	# https udp
iptables -A INPUT -p tcp -m tcp --dport pop3 -j ACCEPT		# pop3 tcp
iptables -A INPUT -p udp -m udp --dport pop3 -j ACCEPT		# pop3 udp
iptables -A INPUT -p tcp -m tcp --dport imap2 -j ACCEPT		# imap tcp
iptables -A INPUT -p udp -m udp --dport imap2 -j ACCEPT		# imap udp
iptables -A INPUT -p tcp -m tcp --dport ldap -j ACCEPT		# ldap tcp
iptables -A INPUT -p udp -m udp --dport ldap -j ACCEPT		# ldap udp
iptables -A INPUT -p tcp -m tcp --dport ssmtp -j ACCEPT		# ldap tcp
iptables -A INPUT -p udp -m udp --dport domain -j ACCEPT	# dns udp
iptables -A INPUT -p tcp -m tcp --dport domain -j ACCEPT	# dns tcp
iptables -A INPUT -p tcp -m tcp --dport ntp -j ACCEPT		# ntp tcp
iptables -A INPUT -p udp -m udp --dport ntp -j ACCEPT		# ntp udp
iptables -A INPUT -p tcp -m tcp --dport ircd -j ACCEPT		# irc tcp
iptables -A INPUT -p udp -m udp --dport ircd -j ACCEPT		# irc udp
iptables -A INPUT -p tcp -m tcp --sport 137:139 -j ACCEPT	# netbios tcp
iptables -A INPUT -p udp -m udp --sport 137:139 -j ACCEPT	# netbios udp
iptables -A INPUT -p udp -m udp --dport 67:68 -j ACCEPT		# dhcp udp
iptables -A INPUT -p udp -m udp --dport 161:162 -j ACCEPT	# snmp udp

#--- PRZEKIEROWANIE PORTOW

iptables -t nat -A VSERVER -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8081		# przekierowanie www
iptables -t nat -A VSERVER -p tcp -m tcp --dport 10226 -j DNAT --to-destination 192.168.1.10:10226	# dc stacjonarka
iptables -t nat -A VSERVER -p udp -m udp --dport 10227 -j DNAT --to-destination 192.168.1.10:10227	# dc stacjonarka
iptables -t nat -A VSERVER -p tcp -m tcp --dport 10230 -j DNAT --to-destination 192.168.1.11:10230	# dc laptop
iptables -t nat -A VSERVER -p udp -m udp --dport 10231 -j DNAT --to-destination 192.168.1.11:10231	# dc laptop
iptables -t nat -A VSERVER -p tcp -m tcp --dport 62924 -j DNAT --to-destination 192.168.1.10:62924	# torrent
iptables -t nat -A VSERVER -p udp -m udp --dport 62924 -j DNAT --to-destination 192.168.1.10:62924	# torrent
iptables -t nat -A VSERVER -p tcp -m tcp --dport 27000:27050 -j DNAT --to-destination 192.168.1.10:27015	# steam
iptables -t nat -A VSERVER -p udp -m udp --dport 27000:27050 -j DNAT --to-destination 192.168.1.10:27015	# steam
iptables -t nat -A VSERVER -p udp -m udp --dport 4380 -j DNAT --to-destination 192.168.1.10:4380	# steam
iptables -t nat -A VSERVER -p udp -m udp --dport 1200 -j DNAT --to-destination 192.168.1.10:1200	# steam
iptables -t nat -A VSERVER -p tcp -m tcp --dport 5222 -j DNAT --to-destination 192.168.1.10:5222	# jabber tcp
iptables -t nat -A VSERVER -p tcp -m tcp --dport 5223 -j DNAT --to-destination 192.168.1.10:5223	# jabber tcp
iptables -t nat -A VSERVER -p tcp -m tcp --dport 5269 -j DNAT --to-destination 192.168.1.10:5269	# jabber tcp
iptables -t nat -A VSERVER -p tcp -m tcp --dport 5347 -j DNAT --to-destination 192.168.1.10:5347	# jabber tcp
iptables -t nat -A VSERVER -p tcp -m tcp --dport 8074 -j DNAT --to-destination 192.168.1.10:8074	# GG tcp
iptables -t nat -A VSERVER -p tcp -m tcp --dport 8074 -j DNAT --to-destination 192.168.1.11:8074	# GG tcp
iptables -t nat -A VSERVER -p tcp -m tcp --dport 5223 -j DNAT --to-destination 192.168.1.20:5223	# ps3
iptables -t nat -A VSERVER -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.1.20:443		# ps3
iptables -t nat -A VSERVER -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.20:80		# ps3
iptables -t nat -A VSERVER -p udp -m udp --dport 3478 -j DNAT --to-destination 192.168.1.20:3478	# ps3
iptables -t nat -A VSERVER -p udp -m udp --dport 3479 -j DNAT --to-destination 192.168.1.20:3479	# ps3
iptables -t nat -A VSERVER -p udp -m udp --dport 3658 -j DNAT --to-destination 192.168.1.20:3658	# ps3
