#!/bin/sh
################ Начало файла правил IPFW ###############################
# Прежде, чем мы начнем, сбросим список
ipfw -q -f flush# Установим префикс команды для набора правил
cmd="ipfw -q add"
skip="skipto 800"
pif="tun0" # имя сетевой карты, которая смотрит в Интернет
dns="xxx.xxx.xxx.xxx"
dnsa="xxx.xx.xxx.xxx"
ks="keep-state"
buh="xxx.xxx.xxx.xxx"
$cmd 005 allow all from any to any via vr0
$cmd 010 allow all from any to any via lo0
$cmd 011 check-state
$cmd 070 allow tcp from me to any out via $pif setup keep-state uid root
$cmd 075 allow tcp from any to any 43 out via $pif setup keep-state
$cmd 080 allow icmp from any to any out via $pif keep-state
# Разрешаем исходящий ДНС
$cmd 100 allow udp from any to $dns 53 out via $pif $ks
$cmd 110 allow udp from any to $dnsa 53 out via $pif $ks
#Разрешаем http, https, icq
$cmd 120 allow tcp from any to any 80 out via $pif $ks
$cmd 125 allow tcp from any to any 443 out via $pif $ks
$cmd 126 allow tcp from any to any 5190 out via $pif $ks
#Разрешаем прием и отправку почты
$cmd 130 allow tcp from any to email.com.ua 110 out via $pif $ks
$cmd 135 allow tcp from any to email.com.ua 25 out via $pif $ks
$cmd 136 allow tcp from any to pop.mail.ru 110 out via $pif $ks
$cmd 137 allow tcp from any to smtp.mail.ru 25 out via $pif $ks
$cmd 138 allow tcp from any to pop.list.ru 110 out via $pif $ks
$cmd 139 allow tcp from any to smtp.list.ru 25 out via $pif $ks
# Разрешаем исходящий Time
$cmd 200 allow tcp from any to any 37 out via $pif setup keep-state
# SSH мне
$cmd 255 allow tcp from any to me 22 in $pif $ks # Кстати не работает почему-то ((
$cmd 265 allow all from any to me 22 out $pif $ks # Кстати не работает почему-то ((
# Запрещаем весь входящий траффик из зарезервированных адресных пространств
$cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 private IP
$cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 private IP
$cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 private IP
$cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto-config
$cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #reserved for docs
$cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster interconnect
$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #Class D & E multicast
$cmd 455 deny log all from any to any