IPFW как?
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- andy3000
- рядовой
- Сообщения: 12
- Зарегистрирован: 2007-03-13 13:16:26
- Откуда: Питер
IPFW как?
Суть в следующем, есть Freebsd 6.2, две сетевые карточки, одна смотрит на прова другая в локалку, установлен Squid который слушает порт 3128 на внутреннем интерфейсе 192.168.0.1, соответственно у юзерей в браузере прописан прокси 192.168.0.1 порт 3128.
По умолчанию в IPfw все закрыто, необходимо сделать доступ юзерям только к просмотру вэб сайтов и все остальное закрыть, делаю следующее:
ядро собрано с опциями:
options DUMMYNET
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
________________________________
в rc.conf:
natd_enable="YES"
________________________________
ipfw add allow all from any to any via lo0
ipfw add allow all from any to any via fxp0
ipfw add fwd 192.168.0.1,3128 all from 192.168.0.1/24 to any 80 via rl0
При попытке зайти на какой либо сайт вылетает окно с ошибкой от Squid:
_______________________________________________________
ERROR
The requested URL could not be retrieved
While trying to retrieve the URL: http://www.ibase.ru/
The following error was encountered:
Connection to Failed
The system returned:
(13) Permission deniedThe remote host or network may be down. Please try the request again.
Your cache administrator is webmaster.
--------------------------------------------------------------------------------
Generated Tue, 13 Mar 2007 11:45:18 GMT by localhost (squid/2.6.STABLE3)
_______________________________________________________________________
ктонить может помочь ужо мозг сломал 2 дня бьюсь
причем при добавлении правила:
ipfw add allow all from any to any
все работает, но эт не есть хорошо...
По умолчанию в IPfw все закрыто, необходимо сделать доступ юзерям только к просмотру вэб сайтов и все остальное закрыть, делаю следующее:
ядро собрано с опциями:
options DUMMYNET
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
________________________________
в rc.conf:
natd_enable="YES"
________________________________
ipfw add allow all from any to any via lo0
ipfw add allow all from any to any via fxp0
ipfw add fwd 192.168.0.1,3128 all from 192.168.0.1/24 to any 80 via rl0
При попытке зайти на какой либо сайт вылетает окно с ошибкой от Squid:
_______________________________________________________
ERROR
The requested URL could not be retrieved
While trying to retrieve the URL: http://www.ibase.ru/
The following error was encountered:
Connection to Failed
The system returned:
(13) Permission deniedThe remote host or network may be down. Please try the request again.
Your cache administrator is webmaster.
--------------------------------------------------------------------------------
Generated Tue, 13 Mar 2007 11:45:18 GMT by localhost (squid/2.6.STABLE3)
_______________________________________________________________________
ктонить может помочь ужо мозг сломал 2 дня бьюсь
причем при добавлении правила:
ipfw add allow all from any to any
все работает, но эт не есть хорошо...
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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
- стреляли...
- Сообщения: 35454
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
-
- проходил мимо
а что нужно для полноты картины?
у меня в конфиге только эти три строчки:
ipfw add allow all from any to any via lo0
ipfw add allow all from any to any via fxp0
ipfw add fwd 192.168.0.1,3128 all from 192.168.0.1/24 to any 80 via rl0
местами поменял правила, се равно squid не пущает, спросил ток один раз пароль и все, далее своего экрана с ошибкой не пускает...
у меня в конфиге только эти три строчки:
ipfw add allow all from any to any via lo0
ipfw add allow all from any to any via fxp0
ipfw add fwd 192.168.0.1,3128 all from 192.168.0.1/24 to any 80 via rl0
местами поменял правила, се равно squid не пущает, спросил ток один раз пароль и все, далее своего экрана с ошибкой не пускает...
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
- Alex Keda
- стреляли...
- Сообщения: 35454
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
понял.. а нахрена тогда ему форвардинг? проще запретить всем выход в мир на порты 80, 8080, 8081 и разрешить мир с этими портами только машине со сквидом...
Продолжаем телепатию: видимо rl0 - это внешка... получается клиент опрашивает сквид, сквид честно пытается посмотреть, что за сайт у него спросили, а тут ipfw его головой в собственную (сквида) ж....
Продолжаем телепатию: видимо rl0 - это внешка... получается клиент опрашивает сквид, сквид честно пытается посмотреть, что за сайт у него спросили, а тут ipfw его головой в собственную (сквида) ж....
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
-
- проходил мимо
fxp0- внутренний
rl0- внешний
Конфиг squid:
вот так сие выглядит...
rl0- внешний
Конфиг squid:
Код: Выделить всё
http_port 90.173.23.11:3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 256 MB
cache_dir ufs /usr/local/squid/cache 1024 16 256
# To log the request via syslog specify a filepath of "syslog"
access_log /usr/local/squid/logs/access.log squid
dns_nameservers 90.173.23.77
url_rewrite_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf
url_rewrite_children 10
auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive off
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
#Suggested default:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
# ACCESS CONTROLS
acl squidu proxy_auth REQUIRED
#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#Recommended minimum configuration:
http_access allow squidu
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
# And finally deny all other access to this proxy
http_access deny all
#Allow ICP queries from everyone
icp_access allow all
cache_effective_user squid
cache_effective_group squid
visible_hostname localhost
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
Код: Выделить всё
ipfw add all deny from not me to any via rl0
правда тут еще гемор с ДНС...
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
-
- проходил мимо
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
В:как работает сквид?
О: на внутренний порт (3128) приходит запрос. Сквид берет его и от себя выпуливает через внешний адрес.
Соответственно, если все для всех запрещено - сквиду запрещено тоже, отсюда и трабл. разреши сквиду от себя выпуливать запросы в мир и принимать ответы и будет тебе счастье.
что-то вроде
О: на внутренний порт (3128) приходит запрос. Сквид берет его и от себя выпуливает через внешний адрес.
Соответственно, если все для всех запрещено - сквиду запрещено тоже, отсюда и трабл. разреши сквиду от себя выпуливать запросы в мир и принимать ответы и будет тебе счастье.
что-то вроде
Код: Выделить всё
ipfw add allow tcp from me to any 80,8080,8081,21 (и т.д) via rl0
ipfw add allow tcp from any 80,8080,8081,21..... to me via rl0
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
-
- проходил мимо
неа не работает Squid страницу с ошибкой
ipfw list:
100 allow ip from any to any via lo0
200 fwd 192.168.0.1,3128 ip from 192.168.0.1/24 to any dst-port 80 via rl0
300 allow ip from any to any via fxp0
400 allow ip from 192.168.0.1 to any dst-port 80 via rl0
500 allow ip from any 80 to 192.168.0.1 via rl0
65535 denny ip from any to any
Похоже сквид юзеря не понимает, так как при попытки подключения выскакивает окно логин/пароль ...
ipfw list:
100 allow ip from any to any via lo0
200 fwd 192.168.0.1,3128 ip from 192.168.0.1/24 to any dst-port 80 via rl0
300 allow ip from any to any via fxp0
400 allow ip from 192.168.0.1 to any dst-port 80 via rl0
500 allow ip from any 80 to 192.168.0.1 via rl0
65535 denny ip from any to any
Похоже сквид юзеря не понимает, так как при попытки подключения выскакивает окно логин/пароль ...
- Notaky
- мл. сержант
- Сообщения: 80
- Зарегистрирован: 2006-09-13 19:23:46
- Контактная информация:
смотрю конфиг сквида и прозреваю...
зачем ты делаеш форвардинг если у тебя прокся по авторизации
потом
http_port 90.173.23.11:3128
зачем на внешний адрес вешать?
400 allow ip from 192.168.0.1 to any dst-port 80 via rl0
500 allow ip from any 80 to 192.168.0.1 via rl0
так получается что у тебя 192.168.0.1 смотрит в мир.
з.ы.
стоит всеже попытатся почитать о том что такое прокси и фаервол и маны непомешают.
ну и конечно почитать что собой являет tcp/ip.
зачем ты делаеш форвардинг если у тебя прокся по авторизации
потом
http_port 90.173.23.11:3128
зачем на внешний адрес вешать?
400 allow ip from 192.168.0.1 to any dst-port 80 via rl0
500 allow ip from any 80 to 192.168.0.1 via rl0
так получается что у тебя 192.168.0.1 смотрит в мир.
з.ы.
стоит всеже попытатся почитать о том что такое прокси и фаервол и маны непомешают.
ну и конечно почитать что собой являет tcp/ip.
-
- проходил мимо
Это не внешний адрес, у меня в сетке адресация такая 90.173.23.0/24 тоже само что и 192.168.0.0/24 эт мне в наследство досталось от старых админов.смотрю конфиг сквида и прозреваю...
зачем ты делаеш форвардинг если у тебя прокся по авторизации
потом
http_port 90.173.23.11:3128
зачем на внешний адрес вешать?
сдесь прописал 192.168.0.1 чтоб вопросов не задавали по поводу адресации в локальной сети, но в конфиге Squid просматрел строчку....400 allow ip from 192.168.0.1 to any dst-port 80 via rl0
500 allow ip from any 80 to 192.168.0.1 via rl0
так получается что у тебя 192.168.0.1 смотрит в мир.
вообщем 90.173.23.1 эт внутренний интерфейс соответственно у клиентов 90.173.23.2...254
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
не ругайтесь, сам таким был.
И еще, в сквид.конф
visible_hostname явно не локалхост
Код: Выделить всё
по пунктам
сквид.конф
http_port 192.168.0.1:3128 #Это адрес и порт по которому сквид слушает клиентов. Поскольку они у тебя в сети 192.168.0.0/24, то и IP должен быть внутренний
ipfw
100 allow ip from any to any via lo0 # loopback, к делу не относится
# 200 fwd 192.168.0.1,3128 ip from 192.168.0.1/24 to any dst-port 80 via rl0 # не надо, этим правилом ты заворачиваешь запрос сквида во внешний мир на себя же.
300 allow ip from any to any via fxp0 #Ок, разрешаем локальный трафик
400 allow ip from me to any dst-port 80 via rl0 #me - адреса твоего прокси (внутренний и внешний), можно поставить сюда только внешний. Надо, чтобы сквид посылал запросы к сайтам
500 allow ip from any 80 to me via rl0 # Аналогично. надо, чтобы сквид получал ответы на свои запросы к сайтам
65535 deny ip from any to any # Рубаем все остальное... Но походу ДНС у тебя не будет работать.
visible_hostname явно не локалхост
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
-
- проходил мимо
в реале выглядит так:
100 allow ip from any to any via lo0
200 fwd 90.173.23.11,3128 ip from 90.173.23.11/24 to any dst-port 80 via rl0
300 allow ip from any to any via fxp0
400 allow ip from 90.173.23.11 to any dst-port 80 via rl0
500 allow ip from any 80 to 90.173.23.11 via rl0
65535 denny ip from any to any
ежли даю правило:
ipfw add allow all from any to any
все работает, но эт не выход открывать все...
100 allow ip from any to any via lo0
200 fwd 90.173.23.11,3128 ip from 90.173.23.11/24 to any dst-port 80 via rl0
300 allow ip from any to any via fxp0
400 allow ip from 90.173.23.11 to any dst-port 80 via rl0
500 allow ip from any 80 to 90.173.23.11 via rl0
65535 denny ip from any to any
ежли даю правило:
ipfw add allow all from any to any
все работает, но эт не выход открывать все...
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
-
- проходил мимо
- Notaky
- мл. сержант
- Сообщения: 80
- Зарегистрирован: 2006-09-13 19:23:46
- Контактная информация:
а как по мне так совершенно не тоже ...если 192.168/24 И 90/8 ..пвашему неотличаются...Anonymous писал(а): Это не внешний адрес, у меня в сетке адресация такая 90.173.23.0/24 тоже само что и 192.168.0.0/24 эт мне в наследство досталось от старых админов.
то всеже почитать нужно rfc1918.
правило 200 удали!
и покажи плз
netstat -rna
ifconfig
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
все. пишу нужный конфиг ipfw
100 allow ip from any to any via lo0
200 allow ip from 90.173.23.0/24 to 90.173.23.0/24 via fxp0
300 allow ip from 83.52.96.xxx to any dst-port 80 via rl0
400 allow ip from any 80 to 83.52.96.xxx via rl0
65535 deny ip from any to any
надеюсь, перед copy-past заменишь xxx на нужные цифирьки?
to lissyara
Телепатия дала плоды
100 allow ip from any to any via lo0
200 allow ip from 90.173.23.0/24 to 90.173.23.0/24 via fxp0
300 allow ip from 83.52.96.xxx to any dst-port 80 via rl0
400 allow ip from any 80 to 83.52.96.xxx via rl0
65535 deny ip from any to any
надеюсь, перед copy-past заменишь xxx на нужные цифирьки?
to lissyara
Телепатия дала плоды
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
- Notaky
- мл. сержант
- Сообщения: 80
- Зарегистрирован: 2006-09-13 19:23:46
- Контактная информация:
хех ..пока дописал то уже alex3 свой выложил...ну решил не убивать творение:)
#!/bin/sh
cmd="ipfw -q add"
eif="rl0"
iif="fxp0"
external_ip="83.52.96.ХХХ"
$cmd check-state
$cmd allow ip from any to any via lo0
$cmd allow ip from any to me 3128 in via $eif
$cmd allow tcp from $external_ip to any dst-port 80 out via $iif
$cmd allow tcp from any 80 to $external_ip via $iif
$cmd allow ip from me to any keep-state
$cmd deny ip from any to any
здесь считается что ДНС гдето внутри локальной сети
#!/bin/sh
cmd="ipfw -q add"
eif="rl0"
iif="fxp0"
external_ip="83.52.96.ХХХ"
$cmd check-state
$cmd allow ip from any to any via lo0
$cmd allow ip from any to me 3128 in via $eif
$cmd allow tcp from $external_ip to any dst-port 80 out via $iif
$cmd allow tcp from any 80 to $external_ip via $iif
$cmd allow ip from me to any keep-state
$cmd deny ip from any to any
здесь считается что ДНС гдето внутри локальной сети
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
-
- проходил мимо
-
- проходил мимо
еще небольшой вопросик не пинайте тока: я в основном через ISA server все разруливал раньше.
Можно ли в Unix сделать следующее и каким инструментом:
внутри сети есть ftp сервер, нужно сделать так чтобы юзери из внешней сети(интернета)
попадали на ftp сервер расположенный во внутренней сетке организации. Как сие реализуется?
В виндах на isa server эт делается просто публикацией внутреннего сервера на ISA. А вот в Unix как
Можно ли в Unix сделать следующее и каким инструментом:
внутри сети есть ftp сервер, нужно сделать так чтобы юзери из внешней сети(интернета)
попадали на ftp сервер расположенный во внутренней сетке организации. Как сие реализуется?
В виндах на isa server эт делается просто публикацией внутреннего сервера на ISA. А вот в Unix как