source: trunk/debian/packages/debwrt-net/trunk/etc/firewall/firewall.sh @ 914

Last change on this file since 914 was 914, checked in by amain, 6 years ago

debwrt-net: various changes and new example configuration files

File size: 2.5 KB
Line 
1#!/bin/sh
2#
3# Minimal firewall script
4#
5# Johan van Zoomeren <amain@debwrt.net>
6
7# PACKET IN
8#     |
9# PREROUTING--[routing]-->--FORWARD-->--POSTROUTING-->--OUT
10#  - nat (dst)   |           - filter      - nat (src)
11#                |                            |
12#                |                            |
13#               INPUT                       OUTPUT
14#               - filter                    - nat (dst)
15#                |                          - filter
16#                |                            |
17#                `----->-----[app]----->------'
18
19
20astop=
21astart=
22aflush=
23
24. /lib/lsb/init-functions
25
26# Remove # here and below to enable transparent sslh support
27#. $(dirname ${0})/sslh.inc.sh
28
29IPT=/sbin/iptables
30
31flush() {
32    $IPT -t filter -F
33    $IPT -t filter -X
34    $IPT -t nat    -F
35    $IPT -t nat    -X
36    #$IPT -t raw    -F
37    #$IPT -t raw    -X
38
39    for flush in ${aflush}
40    do
41        ${flush}
42    done
43}
44
45start() {
46    flush
47
48    $IPT -t filter -A INPUT       -m state --state RELATED,ESTABLISHED -i wan -j ACCEPT
49    # sslh on port 443
50    #$IPT -t filter -A INPUT       -p tcp   --dport 443                 -i wan -j ACCEPT
51    $IPT -t filter -A INPUT       -i wan -j DROP
52
53    $IPT -t filter -A FORWARD     -m state --state RELATED,ESTABLISHED -i wan -j ACCEPT
54    $IPT -t filter -A FORWARD     -i wan -j DROP
55
56    #$IPT -t nat    -A POSTROUTING -o wan -j SNAT --to-source "replace: WAN-IF-IP"
57    $IPT -t nat    -A POSTROUTING -o wan -j MASQUERADE
58
59    # Example debug settings
60    #modprobe xt_LOG
61    #modprobe nf_conntrack
62    #echo "ipt_LOG" >/proc/sys/net/netfilter/nf_log/2
63    #echo 255 >/proc/sys/net/netfilter/nf_conntrack_log_invalid
64    #$IPT -t raw    -A PREROUTING  -p tcp --dport nnnn -j TRACE
65    #$IPT -t raw    -A OUTPUT      -p tcp --dport nnnn -j TRACE
66    #$IPT -t raw    -A PREROUTING  -p tcp --sport nnnn -j TRACE
67    #$IPT -t raw    -A OUTPUT      -p tcp --sport nnnn -j TRACE
68
69    for start in ${astart}
70    do
71        ${start}
72    done
73
74    log_action_end_msg 0
75}
76
77stop() {
78        flush
79        log_action_end_msg 0
80}
81
82case $1 in
83        start)
84                log_action_begin_msg 'Loading firewall - starting'
85                start
86        ;;
87        stop)
88                log_action_begin_msg 'Loading firewall - stopping'
89                stop
90        ;;
91        list)
92                echo "====================== Filter ======================"
93                $IPT -L -v -n -t filter
94                echo
95                echo "======================= Nat ========================"
96                $IPT -L -v -n -t nat
97        ;;
98        *)
99                echo "usage: `basename $0` start|stop|list"
100        ;;
101esac
102
Note: See TracBrowser for help on using the repository browser.