Advertisement
Guest User

firewall.sh

a guest
Mar 31st, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.71 KB | None | 0 0
  1. #!/bin/bash +x
  2.  
  3.   ip=/sbin/iptables
  4.   admins=""
  5.   sshers=""
  6.   mysqlrs=""
  7.   tcpservices="443"
  8.   udpservices=""
  9.  
  10.   # Firewall script for servername
  11.  
  12.   echo -n ">> Applying iptables rules... "
  13.  
  14.   ## flushing...
  15.   $ip -F
  16.   $ip -X
  17.   $ip -Z
  18.   $ip -t nat -F
  19.  
  20.   # default: DROP!
  21.   $ip -P INPUT DROP
  22.   $ip -P OUTPUT DROP
  23.   $ip -P FORWARD DROP
  24.  
  25.   # filtering...
  26.  
  27.   # localhost: free pass!
  28.   # $ip -A INPUT -i lo -j ACCEPT
  29.   # $ip -A OUTPUT -o lo -j ACCEPT
  30.  
  31.   # administration ips: free pass!
  32.   for admin in $admins ; do
  33.       $ip -A INPUT -s $admin -j ACCEPT
  34.       $ip -A OUTPUT -d $admin -j ACCEPT
  35.   done
  36.  
  37.   # allow ssh access to sshers
  38.   for ssher in $sshers ; do
  39.       $ip -A INPUT -s $ssher -p tcp -m tcp --dport 22 -j ACCEPT
  40.       $ip -A OUTPUT -d $ssher -p tcp -m tcp --sport 22 -j ACCEPT
  41.   done
  42.  
  43.   # allow access to mysql port to iReport on sugar
  44.  
  45.   for mysql in $mysqlrs ; do
  46.       $ip -A INPUT -s $mysql -p tcp -m tcp --dport 3306 -j ACCEPT
  47.       $ip -A OUTPUT -d $mysql -p tcp -m tcp --sport 3306 -j ACCEPT
  48.       $ip -A INPUT -s $mysql -p udp -m udp --dport 3306 -j ACCEPT
  49.       $ip -A OUTPUT -d $mysql -p udp -m udp --sport 3306 -j ACCEPT
  50.   done
  51.  
  52.  
  53.   # allowed services
  54.   for service in $tcpservices ; do
  55.       $ip -A INPUT -p tcp -m tcp --dport $service -j ACCEPT
  56.       $ip -A OUTPUT -p tcp -m tcp --sport $service -m state --state RELATED,ESTABLISHED -j ACCEPT
  57.   done
  58.   for service in $udpservices ; do
  59.       $ip -A INPUT -p udp -m udp --dport $service -j ACCEPT
  60.       $ip -A OUTPUT -p udp -m udp --sport $service -m state --state RELATED,ESTABLISHED -j ACCEPT
  61.   done
  62.  
  63.   $ip -A INPUT -j LOG --log-level 4
  64.   $ip -A INPUT -j DROP
  65.  
  66.   echo "OK. Check rules with iptables -L -n"
  67.  
  68.   # end :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement