You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

72 lines
2.0 KiB

#!/bin/sh
#########################################################
# ВАЖНО! Биллинг пока ограничен количеством тарифных планов
# не больше 1000
#########################################################
f="/sbin/ipfw -q"
lan=em1 # Clients
wan=em0 # Inet
${f} -f flush
${f} table all flush
sysctl net.inet.ip.fw.one_pass=0
# dns
${f} table 100 add 8.8.8.8 # google public dns
${f} table 100 add 8.8.4.4 # google public dns2
${f} table 100 add 77.88.8.8 # yandex base dns
${f} table 100 add 77.88.8.1 # yandex base dns2
# ssh access
${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any
# loopback
${f} add 100 allow ip from any to any via lo0
# в таблице 100 приоритетный траффик.
# это dns, платёжки..
${f} add 500 allow ip from table\(100\) to any
${f} add 501 allow ip from any to table\(100\)
# в таблице 10 разрешённые пользователи
# блокируем трафик всем кто не в ней
${f} add 1001 deny ip from not table\(10\) to any via $wan
# если у абонентов есть внешние адреса (не через NAT)
#${f} add 1101 deny ip from any to not table\(10\) via $wan
# по 2 пайпа на тарифный план, на вход и выход
#${f} pipe 212 config bw 1152Kbit/s mask src-ip 0xffffffff noerror
#${f} pipe 213 config bw 1152Kbit/s mask dst-ip 0xffffffff noerror
# добавляем пайпы в таблицу
${f} add 2001 pipe 212 ip from table\(10\) to any via $wan
${f} add 2002 pipe 213 ip from any to table\(11\) via $wan
#----------------------
# так добавляем абонентов чтоб резать скорость, надо указать номер их пайпа
#${f} table 10 add 10.0.172.138/32 212
#${f} table 11 add 10.0.172.138/32 2212
#----------------------
# тут будем поджимать пользователей когда не хватает канала