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
  テンプレート7(行番号付き)