forked from yzguy/firewall-rules
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfirewall
executable file
·76 lines (62 loc) · 1.83 KB
/
firewall
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
IPT=$(which iptables)
tcp_ports_in=()
tcp_ports_out=()
udp_ports_in=()
udp_ports_out=()
# Always set policies to allow before flushing
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
echo ""
echo "Flushing Existing Rules"
echo "-----------------------"
$IPT -F; echo -e "Rules Flushed [ \e[32mDONE\e[39m ]"
sleep 1; echo ""
echo "Setting Basic Rules"
echo "-------------------"
# Allow in/out all Related or Established traffic
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Always allow SSH
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 22 -j ACCEPT
# Localhost Rules
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# ICMP Rules
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -p icmp -j ACCEPT
# DNS Rules
$IPT -A OUTPUT -p udp --dport 53 -j ACCEPT
echo -e "Basic Rules [ \e[32mDONE\e[39m ]"
sleep 1; echo ""
echo "Setting TCP Rules"
echo "-----------------"
for port in ${tcp_ports_in[*]}; do
$IPT -A INPUT -p tcp --dport $port -j ACCEPT
echo -e "Port $port IN [ \e[32mDONE\e[39m ]"
done
for port in ${tcp_ports_out[*]}; do
$IPT -A OUTPUT -p tcp --dport $port -j ACCEPT
echo -e "Port $port OUT [ \e[32mDONE\e[39m ]"
done; echo ""
sleep 1
echo "Setting UDP Rules"
echo "-----------------"
for port in ${udp_ports_in[*]}; do
$IPT -A INPUT -p udp --dport $port -j ACCEPT
echo -e "Port $port IN [ \e[32mDONE\e[39m ]"
done
for port in ${udp_ports_out[*]}; do
$IPT -A OUTPUT -p udp --dport $port -j ACCEPT
echo -e "Port $port OUT [ \e[32mDONE\e[39m ]"
done; echo ""
sleep 1
echo "Setting Default Policies to DROP"
echo "--------------------------------"
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
sleep 1; echo -e "Policies set to DROP [ \e[32mDONE\e[39m ]"
echo ""