IPFW как?

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
andy3000
рядовой
Сообщения: 12
Зарегистрирован: 2007-03-13 13:16:26
Откуда: Питер

IPFW как?

Непрочитанное сообщение andy3000 » 2007-03-13 15:07:09

Суть в следующем, есть 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
все работает, но эт не есть хорошо...

Хостинговая компания 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/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-13 15:25:26

фключаю режим телепатии:
второе и третье правила местами поменяй
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 15:47:15

а что нужно для полноты картины?

у меня в конфиге только эти три строчки:
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
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 16:31:42

конфиг squid в студию. и какая сетевуха в мир, какая в локалку?
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-13 16:34:22

продолжаю телепатировать:
судя по
спросил ток один раз пароль и все
непрозрачный.
При непрозрачном надо на клиенте чётко указывать проксю.
авторизация на прозрачном не работает.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 16:53:50

понял.. а нахрена тогда ему форвардинг? проще запретить всем выход в мир на порты 80, 8080, 8081 и разрешить мир с этими портами только машине со сквидом...
Продолжаем телепатию: видимо rl0 - это внешка... получается клиент опрашивает сквид, сквид честно пытается посмотреть, что за сайт у него спросили, а тут ipfw его головой в собственную (сквида) ж....
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 16:57:10

fxp0- внутренний
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
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 17:00:31

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

ipfw add all deny from not me to any via rl0
что-то вроде этого
правда тут еще гемор с ДНС...
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 17:12:08

ipfw add all deny from not me to any via rl0
хм чет не догоняю у меня уже есть по умолчанию правило которое блокирует всех ото всюду

ipfw add deny all from any to any

суть в том, какое правило прописать чтоб разрешить юзерям просматривать ток вэб странички.

прокся не прозрачная с аутификацией

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 17:17:49

В:как работает сквид?
О: на внутренний порт (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 - речь политика. За каждой ошибкой -ядерный песец.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 17:43:56

неа не работает 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


Похоже сквид юзеря не понимает, так как при попытки подключения выскакивает окно логин/пароль ...

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 17:58:39

что-то ему не дает это сделать... :?

Аватара пользователя
Notaky
мл. сержант
Сообщения: 80
Зарегистрирован: 2006-09-13 19:23:46
Контактная информация:

Непрочитанное сообщение Notaky » 2007-03-13 18:11:03

смотрю конфиг сквида и прозреваю...
зачем ты делаеш форвардинг если у тебя прокся по авторизации
потом
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.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 18:21:38

смотрю конфиг сквида и прозреваю...
зачем ты делаеш форвардинг если у тебя прокся по авторизации
потом
http_port 90.173.23.11:3128
зачем на внешний адрес вешать?
Это не внешний адрес, у меня в сетке адресация такая 90.173.23.0/24 тоже само что и 192.168.0.0/24 эт мне в наследство досталось от старых админов.
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 смотрит в мир.
сдесь прописал 192.168.0.1 чтоб вопросов не задавали по поводу адресации в локальной сети, но в конфиге Squid просматрел строчку....

вообщем 90.173.23.1 эт внутренний интерфейс соответственно у клиентов 90.173.23.2...254

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 18:24:32

не ругайтесь, сам таким был.

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

по пунктам
сквид.конф
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 - речь политика. За каждой ошибкой -ядерный песец.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 18:27:44

в реале выглядит так:

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 » 2007-03-13 18:31:53

90.173.23.11 - это внешний IP? перечитай внимательно, по слогам, потом по буквам :lol:
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 18:33:04

Пы.Сы. И deny пишется с одной буквой n!
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 18:35:48

вообщем вы отвечаете раньше чем я напишу ответ, я пишу, а вы уже отвечаете друг другу, вообщем неразбериха..


90.173.23.11 эт внутренний адрес, а внешний что-то вроде 83.52.96.ХХХ

Аватара пользователя
Notaky
мл. сержант
Сообщения: 80
Зарегистрирован: 2006-09-13 19:23:46
Контактная информация:

Непрочитанное сообщение Notaky » 2007-03-13 18:36:32

Anonymous писал(а): Это не внешний адрес, у меня в сетке адресация такая 90.173.23.0/24 тоже само что и 192.168.0.0/24 эт мне в наследство досталось от старых админов.
а как по мне так совершенно не тоже ...если 192.168/24 И 90/8 ..пвашему неотличаются...
то всеже почитать нужно rfc1918.

правило 200 удали!
и покажи плз
netstat -rna
ifconfig

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 18:43:53

все. пишу нужный конфиг 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
Телепатия дала плоды :)
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
Notaky
мл. сержант
Сообщения: 80
Зарегистрирован: 2006-09-13 19:23:46
Контактная информация:

Непрочитанное сообщение Notaky » 2007-03-13 18:52:27

хех ..пока дописал то уже 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

здесь считается что ДНС гдето внутри локальной сети

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-03-13 19:29:51

позвольте придраться
$переменная пишется в фигурных скобках (#{переменная}) :P
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 19:35:34

Пасиб огромное, завтра попробую...
не судите строго месяца два назад на никсы перешел...
да и очепятываюсь частенько :)

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-03-13 19:45:45

еще небольшой вопросик не пинайте тока: я в основном через ISA server все разруливал раньше.

Можно ли в Unix сделать следующее и каким инструментом:

внутри сети есть ftp сервер, нужно сделать так чтобы юзери из внешней сети(интернета)
попадали на ftp сервер расположенный во внутренней сетке организации. Как сие реализуется?

В виндах на isa server эт делается просто публикацией внутреннего сервера на ISA. А вот в Unix как :?