Документация по ОС FreeBSD Суббота, 27.04.2024, 02:22
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
IPFW [58]

Главная » Статьи » FireWall » IPFW

Шаблон правил PF [2010]
Небольшой шиблон для использования в личных целях.

Входящие данные:
Скорость канала 10мб/с, сделан статический PAT для www_server и bittor_server, SSH на внешний адрес.

Порядок установки описан тут, но в принципе ничего сложного, для рутера на базе Pentium-200MMX, достаточно всё разместить в одной партиции /.

 В процессе установки предложить настроить сетевые интерфейсы, но если этого не сделать, то после загрузки необходимо подправить содержимое файликов:

$ cat /etc/hostname.fxp0
inet 77.77.77.77 255.255.255.0 NONE

 Где fxp0 имя сетевого интерфейса, адрес, маска и автоматически определяемый бродкаст. Маршрут по умолчанию прописывается в файл /etc/mygate. Имя машины, включая домен (FQDN) прописывается в /etc/myname.

 Если необходимо прописать статические маршруты (мне это требуется), то необходимо добавить строки:

$ cat /etc/hostname.fxp1
inet 192.168.2.1 255.255.255.0 NONE
!route add -net 192.168.100.0/24 192.168.2.2

Для включения маршрутизации необходимо поместить в /etc/sysctl.conf строку net.inet.ip.forwarding=1 и/или выполнить команду:

# sysctl net.inet.ip.forwarding=1

После настройки надо перезагрузиться или выполнить команду:

# sh /etc/netstart

Содержимое /etc/pf.conf

#######################################################
# Macros
#######################################################

ext_if="xl0"
int_if="fxp0"
dmz_if="rl0"

icmp_types = "{ echoreq, echorep, unreach }"

# Hosts & Network
my_net = "192.168.2.0/24"
private_lan = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4 }"
www_server = "192.168.2.2"
bittor_server = "192.168.2.3"

# Antiscan
SynState="flags S/SAFR synproxy state"
AntiScanPort="{23:79, 6000:8000}"

#######################################################
# Options
#######################################################

set debug urgent
set require-order yes
set block-policy drop
set loginterface $ext_if
set state-policy if-bound
set fingerprints "/etc/pf.os"
set ruleset-optimization none
set skip on lo

# Antiscan
AntiScanSTO ="(max 60, source-track rule, max-src-conn 1, max-src-nodes 60, max-src-conn-rate 5/60, overload flush global)"

#######################################################
# Table
#######################################################

table persist

#######################################################
# ALTQ
#######################################################

altq on $ext_if priq bandwidth 10000Kb queue { q_pri, q_def }
queue q_pri priority 7
queue q_def priority 1 priq(default)

#######################################################
# NAT Rules
#######################################################

nat on $ext_if from $my_net to any -> ($ext_if)
nat-anchor "ftp-proxy/*"

#######################################################
# Redirect Rules
#######################################################

rdr-anchor "ftp-proxy/*"
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021

# RDR for WWW server
rdr on $ext_if proto tcp from any to any port 80 -> $www_server
# RDR for Bittor server
rdr on $ext_if proto { tcp, udp } from any to any port 9996 -> $bittor_server

#######################################################
# Scrub
#######################################################

match in all scrub (no-df max-mss 1452)

#######################################################
# Block/Pass Rules
#######################################################

# Incoming rule
block all
# Block non-routable addresses from elsewhere
#block drop in quick on $ext_if from $private_lan to any
#block drop out quick on $ext_if from any to $private_lan
# Antiscan
block in quick on $ext_if from to any

# Antispoofing
antispoof for {lo $int_if}

# FTP
anchor "ftp-proxy/*"

# ICMP
pass inet proto icmp all icmp-type $icmp_types keep state

#
# PASS IN EXTERNAL
#

# ALTQ ACK
pass in on $ext_if proto tcp from any to $ext_if flags S/SA keep state queue (q_def, q_pri)

# SSH Access to Sentinel
pass in on $ext_if inet proto tcp from any to ($ext_if) port ssh flags S/SA keep state
pass in on $ext_if inet proto tcp from any to any port ssh modulate state (source-track rule max-src-nodes 8 max-src-conn 8 max-src-conn-rate 3/60)

# Access to bittor
pass in on $ext_if inet proto { tcp, udp } from any to $bittor_server port 9996 flags S/SA synproxy state queue (q_def, q_pri)

# Access to WWW server
pass in on $ext_if inet proto tcp from any to $www_server port 80 flags S/SA syn proxy state queue (q_def, q_pri)

# Antiscan
pass in on $ext_if inet proto tcp from any to any port $AntiScanPort $SynState $AntiScanSTO

#
# PASS OUT EXTERNAL
#

# Allow outgoing traffic to do as it pleases
pass out on $ext_if proto { udp, icmp } all keep state
pass out on $ext_if proto tcp from $ext_if to any flags S/SA keep state queue (q_def, q_pri)

#
# PASS LAN Interface
#

# Allow LAN to do anything
pass in on $int_if from $int_if:network to any keep state

#
# DMZ
#

pass in on $dmz_if inet proto tcp from any to any port ssh modulate state (source-track rule max-src-nodes 8 max-src-conn 8 max-src-conn-rate 3/60) queue(q_def, q_pri)


Источник: http://dreamcatcher.ru/2010/12/15/%d0%a8%d0%b0%d0%b1%d0%bb%d0%be%d0%bd-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb-pf/
Категория: IPFW | Добавил: oleg (16.12.2010) | Автор: Mixa
Просмотров: 1264 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024