FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-19 16:01:06

setup keep-state и setup $ks это одно и тоже если задал переменную, это сделано для того что бы меньше писать буков :)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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/

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-19 16:01:52

$cmd 00010 allow all from any to any via lo0 # Нет ограничений на интерфейсе Loopback нужен ли? это нужно

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-19 16:04:49

типа так должно быть при наличии natd:

Код: Выделить всё

#!/bin/sh
cmd="ipfw -q add"                                                          #  переменная для задания команды файрволу
ipfw -q -f flush                                                               # сброс старых правил

$cmd 010 allow ip from any to any
$cmd 011 allow all from any to any via re1  # внутреннияя сеть
$cmd 012 allow all from any to any via lo0
$cmd 100 divert natd ip from any to any via re0 
$cmd 101 check-state
#  в правилах далее, для tcp - setup keep-state для udp - keep-state

$cmd 220 fwd 127.0.0.1,3128 tcp from 192.168.88.0/24 to any 80 out via re0 setup keep-state     
$cmd 221 fwd 127.0.0.1,3129 tcp from 192.168.88.0/24 to any 443 out via re0 setup keep-state

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-19 17:11:36

#!/bin/sh
cmd="ipfw -q add"
LanOut="em1"
LanIn="em0"

skip="skipto 800"
ks="keep-state"
ipfw -q -f flush
ipfw -q -f pipe flush
ipfw -q -f queue flush

$cmd 001 allow all from any to any via $LanIn

$cmd 002 allow all from any to any via lo0

#SQUID
# Разрешаем доступ пользователю Squid
$cmd 018 allow all from me to any out via $LanOut $ks uid squid

# Отправляем http-запросы на порт прозрачного прокси
$cmd 019 fwd 127.0.0.1,3128 tcp from not 192.168.10.242 to any 80 out via $LanOut $ks

# Отправляем https-запросы на порт прозрачного прокси
$cmd 020 fwd 127.0.0.1,3129 tcp from not 192.168.10.242 to any 443 out via $LanOut $ks

в конце не забываем

$cmd 800 divert natd ip from any to any out via $LanOut
$cmd 810 allow ip from any to any
$cmd 815 deny log all from any to any

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-19 17:19:30

$cmd 016 divert natd ip from any to any in via $LanOut
$cmd 017 check-state
забыл два правила еще перед squid

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-20 14:03:30

Типа минимальный конфиг.
Да, про переменные которые keep-state и интерфейсы ($LanOut $ks $LanIn), как я понял, это не чтобы меньше писать, это в случае больших конфигов, чтобы если имя смениться интерфейса, потом не во всем файле править, а в одном месте; хотя вот $ks не вижу особого смысла.
С другой стороны если вспомнить пример 2 в конце страницы про файрвол в хендбуке то, там реально лучше вводить переменные.

To Йохан конфиг у себя проверял уже? Интернет не отвалился?

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-20 14:19:59

#!/bin/sh
cmd="ipfw -q add"
LanOut="em1"
LanIn="em0"

skip="skipto 800"
ks="keep-state"
ipfw -q -f flush
ipfw -q -f pipe flush #-----------------для чего?
ipfw -q -f queue flush #-----------------для чего?

$cmd 001 allow all from any to any via $LanIn
$cmd 002 allow all from any to any via lo0
$cmd 016 divert natd ip from any to any in via $LanOut
$cmd 017 check-state

#SQUID
# Разрешаем доступ пользователю Squid
$cmd 018 allow all from me to any out via $LanOut $ks uid squid

# Отправляем http-запросы на порт прозрачного прокси
$cmd 019 fwd 127.0.0.1,3128 tcp from not 192.168.10.242 to any 80 out via $LanOut $ks #----------------напиши русскими словами, что хотел этим добиться (если не адрес ip то пропускать трафик)? Предпологаю, что резать трафик скуид должен, а файрволл не мешать, передовая все на скуид ?

# Отправляем https-запросы на порт прозрачного прокси
$cmd 020 fwd 127.0.0.1,3129 tcp from not 192.168.10.242 to any 443 out via $LanOut $ks

$cmd 800 divert natd ip from any to any out via $LanOut
$cmd 810 allow ip from any to any
$cmd 815 deny log all from any to any

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-20 15:53:50

#!/bin/sh
cmd="ipfw -q add"
LanOut="em1"
LanIn="em0"

skip="skipto 800"
ks="keep-state"
ipfw -q -f flush
ipfw -q -f pipe flush #-----------------для чего? это у меня шейпер стоит, делит инет на всех поровну, а это правило обнуляет настройки, следующее тоже от него
ipfw -q -f queue flush #-----------------для чего?

$cmd 001 allow all from any to any via $LanIn
$cmd 002 allow all from any to any via lo0
$cmd 016 divert natd ip from any to any in via $LanOut
$cmd 017 check-state

#SQUID
# Разрешаем доступ пользователю Squid
$cmd 018 allow all from me to any out via $LanOut $ks uid squid

# Отправляем http-запросы на порт прозрачного прокси
$cmd 019 fwd 127.0.0.1,3128 tcp from not 192.168.10.242 to any 80 out via $LanOut $ks #----------------напиши русскими словами, что хотел этим добиться (если не адрес ip то пропускать трафик)? Предпологаю, что резать трафик скуид должен, а файрволл не мешать, передовая все на скуид ?
это я свой ip исключил из squid



# Отправляем https-запросы на порт прозрачного прокси
$cmd 020 fwd 127.0.0.1,3129 tcp from not 192.168.10.242 to any 443 out via $LanOut $ks

$cmd 800 divert natd ip from any to any out via $LanOut
$cmd 810 allow ip from any to any
$cmd 815 deny log all from any to any

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-20 15:56:21

wrag писал(а):
2019-03-20 14:03:30
To Йохан конфиг у себя проверял уже? Интернет не отвалился?
У меня сервак рядом, так что не страшно если отвалится инет. Но несколько раз пропадал по портам 80 и 443 :) на остальных все работало нормально.

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-20 16:22:23

)) у меня по этажам бегать, в пятницу потестирую.

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-20 17:04:28

А для каких целей ставишь squid? Блокировать развлекаловки? Отчеты делать? Или еще какая то хитрая надобность?

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-20 17:15:17

блокировка и для себя отчеты

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-20 17:21:24

я для отчетов поставил lightsquid, сейчас тестирую

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-22 9:18:20

в общем в 12 00 пойду применю правила файрвола (вроде верные) скрестим пальцы :
#!/bin/sh
cmd="ipfw -q add"
LanOut="re1"
LanIn="re0"

skip="skipto 800"
ks="keep-state"
ipfw -q -f flush
ipfw -q -f pipe flush
ipfw -q -f queue flush

$cmd 003 allow all from any to any via $LanIn
$cmd 004 allow all from any to any via lo0
$cmd 016 divert natd ip from any to any in via $LanOut
$cmd 017 check-state

#SQUID
# Разрешаем доступ пользователю Squid
$cmd 018 allow all from me to any out via $LanOut $ks uid squid

# Отправляем http-запросы на порт прозрачного прокси
$cmd 019 fwd 192.168.88.251,3128 tcp from any to any 80 out via $LanOut $ks
# Отправляем https-запросы на порт прозрачного прокси
$cmd 020 fwd 192.168.88.251,3129 tcp from any to any 443 out via $LanOut $ks

$cmd 800 divert natd ip from any to any out via $LanOut
$cmd 810 allow ip from any to any
$cmd 815 deny log all from any to any

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-22 9:37:31

А сейчас какие правила?
Уменя 019 и 020 правила ip 127.0.0.1

На счет верные или нет, не знаю, если не ошибся с интерфейсами то должно заработать. А DNS у тебя поднят? Какой DNS указал в настройках squid?

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-22 10:00:17

сейчас

в файле rc.conf кусок о файрволе

Код: Выделить всё

firewall_nat_interface="re0"
firewall_enable="YES"
firewall_type="OPEN"
firewall_script="/etc/script.sh"
firewall_logging="YES"
firewall_nat_enable="YES"
firewall_quiet="NO"
firewall_flags=""
в файле правил /etc/script.sh:

Код: Выделить всё

#!/bin/sh
# cmd="ipfw -q add"
# ipfw -q -f flush
# $cmd 100 allow ip from any to any
# $cmd 014 divert natd ip from any to any via re0


snorlov
подполковник
Сообщения: 3690
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение snorlov » 2019-03-23 20:40:36

wrag писал(а):
2019-03-22 10:00:17
в файле rc.conf кусок о файрволе

Код: Выделить всё

firewall_nat_interface="re0"
firewall_enable="YES"
firewall_type="OPEN"
firewall_script="/etc/script.sh"
firewall_logging="YES"
firewall_nat_enable="YES"
firewall_quiet="NO"
firewall_flags=""

в файле правил /etc/script.sh:

Код: Выделить всё

#!/bin/sh
# cmd="ipfw -q add"
# ipfw -q -f flush
# $cmd 100 allow ip from any to any
# $cmd 014 divert natd ip from any to any via re0
В этом виде файер у вас все блокирует, закомментируйте

Код: Выделить всё

firewall_script="/etc/script.sh"

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-26 12:32:08

насколько знаю данные строки:
firewall_type="OPEN"
firewall_script="/etc/script.sh"

нужно менять на:
firewall_type="simple"
firewall_script="/etc/script.sh"

либо оставляем только
firewall_script="/etc/script.sh"
Возможны следующие значения для этого параметра:

open - пропускать весь трафик.
client - защищать только эту машину.
simple - защищать всю сеть.
closed - полностью запретить IP трафик, за исключением loopback интерфейса.
UNKNOWN - отключить загрузку правил межсетевого экрана.
filename - абсолютный путь к файлу, содержащему правила межсетевого экрана.

Есть два варианта загрузки собственных правил в межсетевой экран ipfw.
Первый способ - задать переменную firewall_type в виде абсолютного пути файла, содержащего правила межсетевого экрана без каких-либо параметров командной строки для самого ipfw(8).
Второй способ - установить значение переменной firewall_script в виде абсолютного пути исполняемого скрипта, содержащего команды ipfw, которые будут выполнены во время загрузки операционной системы.

Йохан
рядовой
Сообщения: 16
Зарегистрирован: 2019-03-19 15:42:56

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-26 12:54:10

To wrag:
Расскажи что получилось в итоге? А то применил правила, а результат не ясен.

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-26 13:55:09

пока не применил жду момент когда не будет критичности по работе интернета чтобы проверить работу правил. уже скоро.

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-27 9:36:55

Итак выяснил что
не важно как указано в rc.conf

Код: Выделить всё

firewall_type="open" 
firewall_script="/etc/script.sh"
или

Код: Выделить всё

firewall_script="/etc/script.sh"
одинаково блочится все. (с сервера пинги идут как на ip адреса, так и на днс имена сайтов, с внутренней сети не идут).

при содержании script.sh:

Код: Выделить всё

#!/bin/sh
cmd="ipfw -q add"
LanOut="re1"
LanIn="re0" 

skip="skipto 800"
ks="keep-state"
ipfw -q -f flush
ipfw -q -f pipe flush
ipfw -q -f queue flush

$cmd 003 allow all from any to any via $LanIn
$cmd 004 allow all from any to any via lo0
$cmd 016 divert natd ip from any to any in via $LanOut
$cmd 017 check-state

#SQUID
# Разрешаем доступ пользователю Squid
$cmd 018 allow all from me to any out via $LanOut $ks uid squid

# Отправляем http-запросы на порт прозрачного прокси
$cmd 019 fwd 192.168.88.251,3128 tcp from any to any 80 out via $LanOut $ks
# Отправляем https-запросы на порт прозрачного прокси
$cmd 020 fwd 192.168.88.251,3129 tcp from any to any 443 out via $LanOut $ks

$cmd 800 divert natd ip from any to any out via $LanOut
$cmd 810 allow ip from any to any
$cmd 815 deny log all from any to any
и работают при

Код: Выделить всё

#!/bin/sh
cmd="ipfw -q add"
 ipfw -q -f flush
 $cmd 100 allow ip from any to any
 $cmd 014 divert natd ip from any to any via re0
squid стартует без ошибок.

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-28 16:08:46

Йохан
давай по пунктам
1) скуид настроен
2) нужно перенаправить трафик на скуид (и если все мы правильно понимаем, то через ipfw перенаправляем его в скуид)
минимальный конфиг ipfw:
то есть:

Код: Выделить всё

ipfw -q -f flush                                                                                                          # сбросить правила 
cmd="ipfw -q add"                                                                                                    # задать начало командной строки ipfw 
$cmd 011 allow all from any to any via re1                                                                # внутренняя сеть разрешаем все
$cmd 012 allow all from any to any via lo0                                                                # внутренняя петля разрешаем все
$cmd 120 fwd 127.0.0.1,3128 tcp from 192.168.88.0/24 to any 80 out via re0      # внешняя сеть перевод все запросы по tcp 
$cmd 120 fwd 127.0.0.1,3129 tcp from 192.168.88.0/24 to any 443 out via re0     # внешняя сеть перевод все запросы по tcp 
$cmd 014 divert natd ip from any to any via re0
но в хендбуке не нахожу описания редиректа трафика, как его правильно записать, но очень часто встречаю что:
Перенаправляем весь проходящий через узел трафик с целевыми портами http и https на squid:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3129
вопрос может я не с того конца начал перенаправлять трафик и через ipfw его не перенаправляют вообще??

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-28 17:04:44

да кстати если правило 014 имеет номер младше чем то что перед ним, то интернет есть, если номер выше, то интернета нет

Код: Выделить всё

#!/bin/sh
cmd="ipfw -q add"
ipfw -q -f flush
$cmd 100 allow ip from any to any
$cmd 014 divert natd ip from any to any via re0
также периодически появлялась ошибка:

Код: Выделить всё

:/etc# ./script.sh
cmd=ipfw -q add: Command not found.

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-28 17:12:11

Обращаю внимание, что правило запрещения должно быть выше правила divert. Важен приоритет разрешений.
типа все запрещающие выше а разрешающие после????