Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # Сценарий предназначен для настройки маршрутизации и
- # межсетевого экрана на маршрутизаторе офисной сети.
- # Для запуска переименуйте сценарий в rc.firewall
- # и дайте права доступа 755
- # LAN/INET Configuration
- # Приведите в соответствие с настройками ваших сетей
- # следующие семь параметров!
- LAN_IFACE=eth1
- LAN_IP=192.168.1.22
- LAN_IP_RANGE=192.168.1.0/24
- LAN_BCAST_ADRESS=192.168.1.255/24
- INET_IFACE=eth0
- STATIC_IP=172.26.38.226
- STATIC_BCAST_ADRESS=172.26.38.224
- LO_IFACE=lo
- LOCALHOST_IP=127.0.0.1
- #PPP0_IP=0.0.0.0
- #PPP0_IFACE=ppp0
- #PPP1_IP=0.0.0.0
- #PPP1_IFACE=ppp1
- # IPTables Configuration.
- IPTABLES="/usr/sbin/iptables"
- # Required modules
- /sbin/modprobe ip_tables
- /sbin/modprobe ip_nat
- /sbin/modprobe ip_conntrack
- /sbin/modprobe iptable_filter
- /sbin/modprobe iptable_mangle
- /sbin/modprobe iptable_nat
- /sbin/modprobe ipt_LOG
- /sbin/modprobe ipt_limit
- /sbin/modprobe ipt_state
- /sbin/modprobe nf_tproxy_core
- # Non-Required modules
- /sbin/modprobe ipt_owner
- /sbin/modprobe ipt_REJECT
- /sbin/modprobe ipt_MASQUERADE
- /sbin/modprobe ip_conntrack_ftp
- /sbin/modprobe ip_conntrack_irc
- /sbin/modprobe ip_nat_ftp
- /sbin/modprobe ip_nat_irc
- echo 1 > /proc/sys/net/ipv4/ip_forward
- echo 1 > /proc/sys/net/ipv4/conf/$INET_IFACE/proxy_arp
- # Clear ALL rules
- $IPTABLES -F
- $IPTABLES -X
- $IPTABLES -t nat -F
- #----------------------------------------------------------------------------------------------------------
- # Set default policies for the INPUT, FORWARD and OUTPUT chains
- $IPTABLES -P INPUT DROP
- $IPTABLES -P OUTPUT DROP
- $IPTABLES -P FORWARD DROP
- # Create chain for bad tcp packets
- $IPTABLES -N bad_tcp_packets
- # Create separate chains for ICMP, TCP and UDP to traverse
- $IPTABLES -N allowed
- $IPTABLES -N icmp_packets
- $IPTABLES -N tcp_packets
- $IPTABLES -N udpincoming_packets
- #$IPTABLES -N whitelist
- # bad_tcp_packets chain
- $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
- $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Bad TCP packet: "
- $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
- # TCP sync rules
- $IPTABLES -A allowed -p TCP --syn -j ACCEPT
- $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
- $IPTABLES -A allowed -p TCP -j DROP
- #$IPTABLES -A whitelist -j ACCEPT
- # ICMP rules
- $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
- $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
- $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT
- $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
- $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
- # TCP rules
- #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
- #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed
- #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 53 -j allowed
- #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
- #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 110 -j allowed
- #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 3690 -j allowed
- # UDP ports
- $IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
- #----------------------------------------------------------------------------------------------------------
- # PREROUTING chain
- #$IPTABLES -t nat -A PREROUTING -p tcp -s 83.237.192.219 --dport 3389 -j DNAT --to 10.0.0.4
- #$IPTABLES -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to 192.168.1.12
- #$IPTABLES -t nat -A PREROUTING -p tcp -j DNAT --to-destination 10.0.0.69
- # Black list
- #$IPTABLES -t nat -A PREROUTING -s 10.0.0.0/24 -p tcp --dport 80 -j DROP
- #$IPTABLES -t nat -A PREROUTING -s 10.0.0.65 -p tcp -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 218.202.223.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 203.155.45.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 203.145.172.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 61.103.66.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 61.189.192.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 212.25.92.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 213.176.8.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 85.37.242.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 194.167.228.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 61.247.228.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 194.185.192.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 200.71.43.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 211.233.14.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 61.218.130.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 217.199.177.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 61.211.237.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 61.211.237.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 61.64.198.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 218.108.49.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 212.24.173.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 70.88.217.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 216.23.168.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 69.60.114.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 62.183.226.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 213.227.43.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 203.232.240.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 202.8.87.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 200.142.104.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 200.89.142.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 235.187.99.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 213.207.57.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 100.154.68.0/24 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 10.0.0.0/8 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 172.16.0.0/12 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 192.168.0.0/16 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -d 10.0.0.0/8 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -d 172.16.0.0/12 -j DROP
- #$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -d 192.168.0.0/16 -j DROP
- # ********* Redirect to SQUID **********
- #$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -p tcp --dport 80 -j REDIRECT --to-port 3129
- #$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE -p tcp --dport 21 -j REDIRECT --to-port 3129
- #$IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -p tcp -m socket -j DIVERT
- #$IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -p tcp -m socket -j DIVERT
- #$IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 80 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 8080 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 443 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 2080 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 2082 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 563 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 777 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 21 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 10000 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 110 -j TPROXY --on-port 3129
- $IPTABLES -t mangle -A PREROUTING '!' -d 192.168.1.22 -p tcp --dport 25 -j TPROXY --on-port 3129
- # FORWARD chain
- # POSTROUTING chain
- $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -s $LAN_IP_RANGE -j SNAT --to-source $STATIC_IP
- #$IPTABLES -A FORWARD -j LOG --log-level debug --log-prefix "IPT FORWARD packet died: "
- #$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level notice --log-prefix "New not syn:"
- #$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
- $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
- $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
- #$IPTABLES -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.0.5 -m mac --mac-source 00:11:22:aa:bb:cc -j ACCEPT
- $IPTABLES -t filter -A FORWARD -i $LAN_IFACE -s 192.168.1.150 -j ACCEPT # White list
- $IPTABLES -t filter -A FORWARD -i $LAN_IFACE -j LOG --log-level notice --log-prefix "IPT FILTERED: "
- $IPTABLES -t filter -A FORWARD -i $LAN_IFACE -j DROP
- #$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
- $IPTABLES -A FORWARD -i $INET_IFACE -j ACCEPT
- #$IPTABLES -A FORWARD -i $PPP0_IFACE -j ACCEPT
- #$IPTABLES -A FORWARD -i $PPP1_IFACE -j ACCEPT
- $IPTABLES -A FORWARD -m limit --limit 1/hour --limit-burst 5 -j LOG --log-level notice --log-prefix "IPT FORWARD packet died: "
- # INPUT chain
- #$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-level notice --log-prefix "New not syn:"
- #$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
- $IPTABLES -A INPUT -p tcp -j bad_tcp_packets
- $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
- $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
- $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets
- $IPTABLES -A INPUT -p ALL -d $STATIC_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
- $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d 255.255.255.255 -j ACCEPT
- $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT
- $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_IP -j ACCEPT
- $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $STATIC_IP -j ACCEPT
- $IPTABLES -A INPUT -p ALL -i $LO_IFACE -d $LOCALHOST_IP -j ACCEPT
- $IPTABLES -A INPUT -p ALL -i $LO_IFACE -d $LAN_IP -j ACCEPT
- $IPTABLES -A INPUT -p ALL -i $LO_IFACE -d $STATIC_IP -j ACCEPT
- #$IPTABLES -A INPUT -p ALL -i $PPP0_IFACE -d $PPP0_IP -j ACCEPT
- #$IPTABLES -A INPUT -p ALL -i $PPP0_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT
- #$IPTABLES -A INPUT -p ALL -i $PPP1_IFACE -d $PPP1_IP -j ACCEPT
- #$IPTABLES -A INPUT -p ALL -i $PPP1_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT
- $IPTABLES -A INPUT -m limit --limit 1/hour --limit-burst 5 -j LOG --log-level notice --log-prefix "IPT INPUT packet died: "
- # OUTPUT chain
- #$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j LOG --log-level notice --log-prefix "New not syn:"
- #$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
- $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
- $IPTABLES -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT
- $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
- $IPTABLES -A OUTPUT -p ALL -s $STATIC_IP -j ACCEPT
- #$IPTABLES -A OUTPUT -p ALL -s $PPP0_IP -j ACCEPT
- #$IPTABLES -A OUTPUT -p ALL -s $PPP1_IP -j ACCEPT
- $IPTABLES -A OUTPUT -m limit --limit 1/hour --limit-burst 5 -j LOG --log-level notice --log-prefix "IPT OUTPUT packet died: "
Advertisement