#!/bin/bash
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe nf_nat_pptp
modprobe nf_conntrack_pptp
modprobe nf_conntrack_proto_gre
modprobe nf_nat_proto_gre
modprobe nf_nat_sip
i='/sbin/iptables'
# Не забыть отключить rp_filter чтобы работали метки --set-mark
# echo 0 > /proc/sys/net/ipv4/conf/*/rp_filter
NET_LOCAL="192.168.9.0/24" # локальная сеть.
NET_LOCAL2="192.168.10.0/24" # локальная сеть.
# Сбрасываеим все правила на "Разрешено"
$i -P INPUT ACCEPT
$i -P FORWARD ACCEPT
$i -P OUTPUT ACCEPT
$i -t nat -P PREROUTING ACCEPT
$i -t nat -P POSTROUTING ACCEPT
$i -t nat -P OUTPUT ACCEPT
$i -t mangle -P PREROUTING ACCEPT
$i -t mangle -P OUTPUT ACCEPT
# Удаление правил
$i -F
$i -t nat -F
$i -t mangle -F
# Очищаем нестандартные правила
$i -X
$i -t nat -X
$i -t mangle -X
# Drop all invalids
$i -A INPUT -m state --state INVALID -j DROP
$i -A FORWARD -m state --state INVALID -j DROP
#
# Accept established connections
$i -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$i -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Включаем поддержку established/related для conntrack-соединений (трассировщики):
$i -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$i -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# авто-выставление нужного MTU:
$i -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$i -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#============ Blocking section================
# Ban by mac or ip:
$i -t mangle -A PREROUTING -s 192.168.9.29 -j DROP
$i -t nat -A POSTROUTING -s 192.168.9.29 -j DROP
# Маскарадинг:
#$i -t mangle -A PREROUTING -s 192.168.9.37 -d ! $NET_LOCAL -j MARK --set-mark 10
$i -t nat -A POSTROUTING -s 192.168.9.0/24 -j MASQUERADE
$i -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
#