Имеется firewall настроенный следующим образом:
Код: Выделить всё
#!/bin/sh
LIF="em0" # Локальный интерфейс
LIP="`ifconfig $LIF|awk '/inet/{print \$2}'`" # Локальный ip
LAN="$LIP/24" # Локальная сеть
WIF="fxp0" # Внешний интерфейс
WIP="`ifconfig $WIF|awk '/inet/{print \$2}'`" # Внешний ip
ipfw="/sbin/ipfw " # Путь к ipfw
add="$ipfw add " # Добавление
pass="$ipfw add pass " # Разрешение
deny="$ipfw add deny " # Запрет
ks="keep-state" # Чтобы меньше писать
RDP="192.168.1.2" # Хост с Windows для RDP
DenyNets="`cat /etc/permissions/nets.deny`" # Файл со списком сетей запрещенных на внешнем интерфейсе
InetAllow="`cat /etc/permissions/inet.allow`" # Файл со списком разрешенных IPов
FastInetAllow="`cat /etc/permissions/fastinet.allow`" # Файл со списком разрешенных IPов (без ограничения скорости)
SA="21,25,53,80,110,443,465,995,5190" # Разрешенные сервисы
$ipfw -f flush # Удаляем старые правила
$ipfw nat 1 delete # Удаляем старый нат
$ipfw disable one_pass # Делаем sysctl net.inet.ip.fw.one_pass=0
$ipfw -f table all flush # Очищаем все таблицы
for lan in $DenyNets; do $ipfw table 1 add $lan; done # Добавляем запись в таблицу 1
for ip in $InetAllow; do $ipfw table 2 add $ip 1; done # Добавляем запись в таблицу 2 с медленным интернетом
for ip in $FastInetAllow; do $ipfw table 2 add $ip 2; done # Добавляем запись в таблицу 2 с быстрым интернетом
# Описываем наш NAT
$ipfw nat 1 config if $WIF log reset deny_in same_ports unreg_only \
redirect_port tcp $RDP:rdp rdp # Делаем редирект на RDP
$add check-state # Проверяем динамические правила
$pass all from any to any via lo0 # Разрешаем все на петле
$deny log all from 127.0.0.0/8 to any # Запрещаем петле лезть куда-либо на всех интерфейсах
$deny log all from any to 127.0.0.0/8 # Запрещаем лезть на петлю от куда-либо на всех интерфейсах
$add fwd 127.0.0.1,3129 tcp from $LAN to any http via $WIF # Заварачиваем всех на proxy-squid
$add reass all from any to any in via $WIF # Собираем входящие фрагменты на внешнем интерфейсе
$deny log all from any to not me in via $WIF # Анти спуфинг (блокируем пакеты не мне на внешнем интерфейсе на вход)
$pass log icmp from any to any icmptypes 0,8 via $WIF # Разрешаем себя пинговать с наружи
$deny all from not table\(2\) to any recv $LIF xmit $WIF # Блокируем тех кому не разрешен инет
#$deny log all from $LAN to any not $SA recv $LIF xmit $WIF # Блокируем доступ к не разрешенным сервисам
$deny log all from table\(1\) to $WIP in via $WIF # Блокируем на внешнем интерфейсе частные сети на вход
$deny log all from $WIP to table\(1\) out via $WIF # Блокируем на внешнем интерфейсе частные сети на выход
$pass tcp from any to $WIP domain in via $WIF setup $ks # Разрешаем на вход на наш DNS
$pass udp from any to $WIP domain in via $WIF setup $ks # Разрешаем на вход на наш DNS
$pass all from any to $WIP http,https in via $WIF setup $ks # Разрешаем на вход Web-трафик к apache
$pass all from any to $WIP ssh in via $WIF setup $ks # Разрешаем на вход ssh
$pass all from $WIP to any out via $WIF $ks # Разрешаем уходить пакетам от самого сервера с сохранением состояния
$add nat 1 log all from any to any via $WIF # Натим всё и вся но только на внешнем интерфейсе
$pass all from any to $LAN in via $WIF # Разрешаем на вход трафик отначеный для локалки
$pass all from $WIP to any out via $WIF # Разрешаем на выход трафик отначеный из локалки
$pass all from any to any via $LIF # Разрешаем все на локальном интерфейсе
$deny log all from any to any # Запрещаем всё и вся (ну так, на всякий случай)
- 1. Куда деваются пакеты которые пришли ко мне, прошли нат, но сеть их не запрашивала, куда они деваются? Проходят дальше (но тогда куда) или убиваются (но почему ни что не пишется по этому поводу)?
А то пугают в логе записи вида:ну и подобные, на любые порты кроме тех который я сам ловлю (22,53,80,443,3389)...Код: Выделить всё
Jan 9 01:02:51 gateway kernel: ipfw: 1700 Nat TCP 83.149.21.152:55716 xx.xx.xx.xx:110 in via fxp0 Jan 9 01:02:51 gateway kernel: ipfw: 1700 Nat TCP 83.149.21.152:55717 xx.xx.xx.xx:110 in via fxp0 Jan 9 01:02:51 gateway kernel: ipfw: 1700 Nat TCP 83.149.21.152:55718 xx.xx.xx.xx:110 in via fxp0 Jan 9 01:02:51 gateway kernel: ipfw: 1700 Nat TCP 83.149.21.152:55719 xx.xx.xx.xx:110 in via fxp0
2. Как запретить пользователям сети использовать сервисы, кроме перечисленных в переменной $SA? А то если раскоментировать правило:перестает работать ftp из внутренней сети...Код: Выделить всё
#$deny log all from $LAN to any not $SA recv $LIF xmit $WIF # Блокируем доступ к не разрешенным сервисам
