Раздел для первых шагов: установка, базовая настройка, ключевые понятия FreeBSD и UNIX.
Модераторы: vadim64, terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
koklushkin
- мл. сержант
- Сообщения: 85
- Зарегистрирован: 2010-06-12 11:45:07
Непрочитанное сообщение
koklushkin » 2010-11-17 15:20:24
Собственно задача поднять шлюз со статистикой и максимально(в разумных пределах) защититься от внешней среды, на машине будут крутиться APACHE,SQUID,REJIK,LIGHTSQUID(пока все) Squid не прозрачный. Нарисовал вот такое:
pf.conf
Код: Выделить всё
ext_if="rl0"
int_if="re0"
icmp_types="echoreq"
proxy_if="xxx.xxx.xxx.xxx"
proxy_port="3128"
admin="xxx.xxx.xxx.xxx"
tcp_out = "25,110,465, 80"
non_route_nets_inet="{ 172.16.0.0/12, 169.254.0.0/16, 240.0.0.0/4 }"
table <bruteforce> persist file "/var/log/bruteforce"
set block-policy drop
set skip on lo0
set timeout { frag 10, tcp.established 3600 }
scrub in all
nat on $ext_if from $int_if:network to !(self) -> ($ext_if)
block all
antispoof log quick for { lo0, $int_if, $ext_if }
block drop in log quick on $ext_if from $non_route_nets_inet to any
block drop in log quick on $int_if from !$int_if:network to any
block drop in log quick on { $int_if, $ext_if } proto tcp from any to any port smtp
block drop quick from <bruteforce>
pass in on $int_if proto udp from $int_if:network to any port domain queue qdns keep state
pass in quick on $int_if inet proto tcp from $int_if:network to any port { $tcp_out } keep state
pass in on $int_if proto tcp from { $admin } to $int_if port ssh queue ( qssh, qack ) synproxy state ( max-src-conn-rate 5/360, overload <bruteforce> flush global )
pass in on $int_if proto tcp from $int_if:network to $proxy_if port $proxy_port
pass out on $ext_if modulate state
pass in inet proto icmp all icmp-type $icmp_types keep state
Прошу указать на изъяны, явные ошибки или просто что стоит изменить. Обоснованная критика приветствуется

koklushkin
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
Alex Keda
- стреляли...
- Сообщения: 35501
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2011-01-10 0:35:24
нихт ферштейн
IPFW - наше фсё

Убей их всех! Бог потом рассортирует...
Alex Keda
-
unix-admin
- ст. сержант
- Сообщения: 324
- Зарегистрирован: 2010-11-26 12:43:04
- Откуда: Cornucopia
Непрочитанное сообщение
unix-admin » 2011-01-10 15:28:42
koklushkin писал(а):Прошу указать на изъяны, явные ошибки или просто что стоит изменить. Обоснованная критика приветствуется

Да все очень грамотно написано... Только один вопос по таймаутам. Вы указываете:
Код: Выделить всё
set timeout { frag 10, tcp.established 3600 }
Для чего вы уменьшаете дефолтные значения?
Еще посмотрите вот тут
http://www.openbsd.org/faq/pf/options.html на предмет "set optimization option".
unix-admin
-
TITANius
- сержант
- Сообщения: 197
- Зарегистрирован: 2009-10-27 11:33:10
Непрочитанное сообщение
TITANius » 2011-01-13 20:46:07
избыточное правило:
Код: Выделить всё
block drop in log quick on $int_if from !$int_if:network to any
дальше по правилам вы пропускаете в локальном интерфейсе только локальную подсеть, поэтому вышеуказанное правило сравнимо с:
для большего контроля можно все "keep state" (где имеются "proto tcp") заменить на modulate state.
Про исходящий скраб забыли:
можно ещё вставить правило для трейс роута
Код: Выделить всё
## allow trace route
pass in inet proto udp from any to (self) port 33433 >< 33626 keep state
Сам SSH желательно перенести на другой порт.
TITANius
-
koklushkin
- мл. сержант
- Сообщения: 85
- Зарегистрирован: 2010-06-12 11:45:07
Непрочитанное сообщение
koklushkin » 2011-01-31 15:05:07
подскажите еще один момент,понадобилось на внешний сервер пропустить 1-о VPN соединение из локалки. Буду очень признателен!
koklushkin
-
BlackCat
- прапорщик
- Сообщения: 469
- Зарегистрирован: 2007-10-16 22:40:42
Непрочитанное сообщение
BlackCat » 2011-02-02 15:36:55
koklushkin писал(а):на внешний сервер пропустить 1-о VPN соединение из локалки. Буду очень признателен!
VPN для МСЭ, если это не IPSEC, обычное TCP-соединение на определённый TCP-порт. Просто разрешите его - и вся настройка.
BlackCat
-
koklushkin
- мл. сержант
- Сообщения: 85
- Зарегистрирован: 2010-06-12 11:45:07
Непрочитанное сообщение
koklushkin » 2011-02-02 16:24:36
Просто необходимо выпустить 1 машину, на которой настроен VPN для связи с домом и все.
koklushkin
-
koklushkin
- мл. сержант
- Сообщения: 85
- Зарегистрирован: 2010-06-12 11:45:07
Непрочитанное сообщение
koklushkin » 2011-03-27 18:24:45
есть проблемка с пробросом порта для торрента на 1-у машину во внутреннюю сеть, 2й день сижу =/..выручайте; немного переработал прошлый конфиг...на данный момент он выглядит вот так:
pf.conf
Код: Выделить всё
ext_if="em0"
int_if="xl0"
admin="10.48.245.200"
t_port="6882"
int_net="{10.0.0.0/8}"
tcp_out="25, 110, 443, 465, 3128, 21845, 5025, 5110, 995, 21555, 37777"
table <bruteforce> persist file "/var/log/bruteforce"
set block-policy drop
set skip on lo0
set timeout { frag 10, tcp.established 3600 }
set fingerprints "/etc/pf.os"
scrub in all fragment reassemble
scrub out all random-id max-mss 1400
nat on $ext_if from $int_net to !(self) -> ($ext_if)
??????rdr on $ext_if proto tcp from any to ($ext_if) port $t_port -> $admin port $t_port???????
block all
antispoof log quick for { lo0, $int_if, $ext_if }
block drop quick from <bruteforce>
pass in on $int_if proto udp from $int_net to any port domain queue qdns keep state
pass in quick on $int_if inet proto tcp from $int_net to any port { $tcp_out } keep state
?????pass in quick on $ext_if proto tcp from any to $admin port $t_port keep state?????
pass in on $int_if proto tcp from { $admin } to $int_if port ssh queue ( qssh, qack ) synproxy state ( max-src-conn-rate 5/360, overload <bruteforce> flush global)
pass out on $ext_if modulate state
koklushkin
-
unix-admin
- ст. сержант
- Сообщения: 324
- Зарегистрирован: 2010-11-26 12:43:04
- Откуда: Cornucopia
Непрочитанное сообщение
unix-admin » 2011-03-28 10:29:09
есть проблемка...
какого плана?
клиент на 10.48.245.200 и раздает, и принимает на 6882-ом порту?
unix-admin
-
unix-admin
- ст. сержант
- Сообщения: 324
- Зарегистрирован: 2010-11-26 12:43:04
- Откуда: Cornucopia
Непрочитанное сообщение
unix-admin » 2011-03-28 12:04:55
koklushkin писал(а):...сейчас нельзя
Я бы поставил rtorrent на шлюзе, если все так печально

unix-admin