|
1 #! /bin/sh
2
3 trusthost='192.168.0.20'
4 internal_net='192.168.0.0/24'
5 my_internal_ip='192.168.0.1'
6 proxy_port='3128'
7
8 echo 1 > /proc/sys/net/ipv4/ip_forward
9
10 ##############
11 #Flush & Reset
12 ##############
13 /sbin/iptables -F
14 /sbin/iptables -t nat -F
15 /sbin/iptables -X
16
17 ##############
18 #Deafult Rule
19 ##############
20 /sbin/iptables -P INPUT DROP
21 /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
22
23 /sbin/iptables -P OUTPUT ACCEPT
24
25 /sbin/iptables -P FORWARD DROP
26 /sbin/iptables -A FORWARD -i eth1 -o eth0 -s $internal_net -j ACCEPT
27 /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
28
29 #########
30 #loopback
31 #########
32 /sbin/iptables -A INPUT -i lo -j ACCEPT
33
34 ###############################
35 #ICMP trusthost->my_internal_ip
36 ###############################
37 /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -s $trusthost -d $my_internal_ip -j ACCEPT
38 ###############################
39 #ICMP my_internal_ip->trusthost
40 ###############################
41 /sbin/iptables -A INPUT -p icmp --icmp-type echo-reply -s $trusthost -d $my_internal_ip -j ACCEPT
42 ###############################
43 #ssh trusthost-> my_internal_ip
44 ###############################
45 /sbin/iptables -A INPUT -p tcp --syn -m state --state NEW -s $trusthost -d $my_internal_ip --dport 22 -j ACCEPT
46 ###############################
47 #Proxy internal_net-> myhost
48 ###############################
49 /sbin/iptables -A INPUT -p tcp --syn -m state --state NEW -s $internal_net -d $my_internal_ip --dport $proxy_port -j ACCEPT
50 #################
51 #SNAT(masquerade)
52 #################
53 /sbin/iptables -t nat -A POSTROUTING -o eth0 -s $internal_net -j MASQUERADE
54
55 ####################
56 #Transparently proxy
57 ####################
58 /sbin/iptables -t nat -A PREROUTING -i eth1 -s ! $my_internal_ip -p tcp --dport 80 -j DNAT --to-destination $my_internal_ip:$proxy_port
59
60 ################################################
61 #Blocking Private Address
62 ################################################
63 /sbin/iptables -A OUTPUT -o eth0 -d 10.0.0.0/8 -j DROP
64 /sbin/iptables -A OUTPUT -o eth0 -d 176.16.0.0/12 -j DROP
65 /sbin/iptables -A OUTPUT -o eth0 -d 192.168.0.0/16 -j DROP
66 /sbin/iptables -A OUTPUT -o eth0 -d 127.0.0.0/8 -j DROP
67
68 #########
69 #logging
70 #########
71 /sbin/iptables -N LOGGING
72 /sbin/iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
73 /sbin/iptables -A LOGGING -j DROP
74 /sbin/iptables -A INPUT -j LOGGING
75 /sbin/iptables -A FORWARD -j LOGGING
|
|