#!/bin/bash I=iptables group_trusted="192.168.0.0/16" # Dennis group_ssh="212.120.89.188" group_ftp="212.120.89.188" group_samba="212.120.89.188" $I -PINPUT ACCEPT $I -POUTPUT ACCEPT $I -PFORWARD ACCEPT $I -F $I -X if [ "$1" = "stop" ] then echo "Firewall completely flushed! Now running without firewall!" exit 0 fi $I -AINPUT -i lo -j ACCEPT $I -AINPUT -m state --state INVALID -j DROP $I -AINPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $I -N trusted for line in ${group_trusted} ; do $I -Atrusted -s $line -j ACCEPT echo "adding $line to trusted" done $I -Nssh for line in ${group_ssh} ; do $I -Assh -s $line -j ACCEPT echo "adding $line to ssh" done $I -Assh -j trusted $I -Nftp for line in ${group_ftp} ; do $I -Aftp -s $line -j ACCEPT echo "adding $line to ftp" done $I -Aftp -j trusted $I -Nsamba for line in ${group_samba} ; do $I -Asamba -s $line -j ACCEPT echo "adding $line to samba" done $I -Asamba -j trusted ##### Enable the rules for every group #ssh $I -AINPUT -m state --state NEW -p TCP --dport 22 -j ssh $I -AINPUT -m state --state NEW -p TCP --dport 21 -j ftp #samba $I -AINPUT -m state --state NEW -p UDP --dport 137 -j samba $I -AINPUT -m state --state NEW -p UDP --dport 138 -j samba $I -AINPUT -m state --state NEW -p TCP --dport 139 -j samba $I -AINPUT -m state --state NEW -p TCP --dport 445 -j samba $I -A INPUT -p TCP --dport 80 -j ACCEPT $I -A INPUT -p TCP --dport 113 -j REJECT #$I -PINPUT DROP #$I -POUTPUT ACCEPT #$I -PFORWARD DROP