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