Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » IPFW & NATD & SQUID

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Kalishenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ситуация такова: на шлюзовой машине с FreeBSD настроил (вроде) IPFW, поставил и настроил SQUID, кроме того запустил NATD. Все вроде бы нормально, только вот http работает только через SQUID. А мне нужно учесть и такую ситуацию, что не все проги умеют работать через прокси. Поэтому стала необходимость сделать и http-маршрутизацию или весь трафик заворачивать на SQUID. Вот здесь то и начались проблемы. Сделал следующее: пересобрал ядро с опциями
 
options TCP_DROP_SYNFIN
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPFIREWALL_FORWARD
 
в ipfw добавил правила
${ipfw} add fwd 127.0.0.1,8080 tcp from any to any http
${ipfw} add fwd 127.0.0.1,80 tcp from any to me http
 
и в squid.conf активировал след. опции
http_port 10.0.2.231:8080 // IP shluza v lokalke i http-port, kotoryj on slushaet
httpd_accel_host virtual  
httpd_accel_port 80  
httpd_accel_with_proxy on  
httpd_accel_uses_host_header on  
 
В результате - ничего. Теперь инет даже через прокси не работает. Может не там поставил форвардинг в правилах? Вот ipfw show
 
00100    0      0 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny log logamount 10 ip from 127.0.0.0/8 to any in recv fxp0
00400    0      0 deny log logamount 10 ip from 172.16.0.0/16 to any in recv fxp0
00500    0      0 deny log logamount 10 ip from 192.168.0.0/24 to any in recv fxp0
00600 1753 177190 allow ip from 10.0.2.0/24 to any in recv fxp1
00700  775  64428 allow ip from any to 10.0.2.0/24 out xmit fxp1
00800    0      0 divert 8668 ip from 10.0.2.0/24 to any via fxp0
00900    0      0 divert 8668 ip from any to 10.199.1.19 in recv fxp0
01000    0      0 allow ip from 10.199.1.19 to 10.199.1.254 via fxp0
01100    0      0 allow ip from 10.199.1.254 to 10.199.1.19 in recv fxp0
01200    0      0 allow tcp from any to any 25
01300    0      0 allow tcp from any 25 to any
01400    0      0 allow tcp from 10.0.2.0/24 110 to any in recv fxp1
 
01500    0      0 fwd 127.0.0.1,8080 tcp from any to any 80
01600    0      0 fwd 127.0.0.1,80 tcp from any to me 80
 
01700    0      0 allow tcp from me to any 80,53,443,22,21
01800    0      0 allow tcp from any 80,53,443,22,21 to me established
01900    0      0 allow tcp from 10.0.2.84 to any 8091
02000    0      0 allow tcp from any 8091 to 10.0.2.84 established
02100    0      0 allow udp from me to any 53 keep-state
02200    0      0 allow udp from 10.0.2.0/24 to any 53 keep-state
02300    0      0 allow udp from any to me 53
02400    0      0 allow icmp from me to any out icmptype 3,8,12
02500    0      0 allow icmp from 10.0.2.0/24 to any out icmptype 3,8,12
02600    0      0 allow icmp from any to me in icmptype 0,3,4,11,12
02700    0      0 allow icmp from any to 10.0.2.0/24 in icmptype 0,3,4,11,12
02800    0      0 deny log logamount 700 tcp from any to 10.199.1.19 in recv fxp0 setup
02900    0      0 deny ip from any to any
65535 2496 220155 allow ip from any to any
 
Приветствуются любые предположения и советы.

Всего записей: 25 | Зарегистр. 27-12-2004 | Отправлено: 09:57 17-06-2005
Conwell

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ты не завернул весь TCP трафик из локальной сети на сквид. перед тем как делаешь divert 8668 нужно что-то типа  
fwd 10.0.2.231,8080 tcp from 10.0.2.0/24 to any 80,8080,3128 via fxp1

Всего записей: 50 | Зарегистр. 12-07-2004 | Отправлено: 11:14 17-06-2005
Kalishenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А интерфейс обязательно указывать?

Всего записей: 25 | Зарегистр. 27-12-2004 | Отправлено: 11:54 17-06-2005
Conwell

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так у тебя какой интерфейс смотрит в локальную сеть? ты с него и должен заворачивать на сквид.

Всего записей: 50 | Зарегистр. 12-07-2004 | Отправлено: 12:59 17-06-2005
guess



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kalishenko
 

Цитата:
в ipfw добавил правила
${ipfw} add fwd 127.0.0.1,8080 tcp from any to any http
${ipfw} add fwd 127.0.0.1,80 tcp from any to me http
 
и в squid.conf активировал след. опции
http_port 10.0.2.231:8080 // IP shluza v lokalke i http-port, kotoryj on slushaet  

 squid должен слушать на локальном интерфесе, ты ж туда пакеты кидаешь  
http_port 127.0.0.1:8080
 
 кроме того второе правило ipfw никогда не отработает, оно подмножество первого.
 
 natd  сам  по себе, squid сам по себе.  Они у тебя никак связаны не будут (если я правильно понял, то все кто не попали на сквид должны выйти через нат)

Всего записей: 73 | Зарегистр. 07-12-2003 | Отправлено: 23:10 17-06-2005
Kalishenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Получилось. Спасибо.
А теперь такой вопрос: хочу настроить фаер таким образом, чтобы для юзеров локальной сети все порты были открыты, т.е. все можно (для того случая, если некоторые проги не умеют работать через прокси, или "влом" каждый раз добавлять новое правило для конкретного порта), а для юзеров извне (из Инета) все запрещено, кроме 25 порта для отправки писем из Инета. Как это сделать?
 

Всего записей: 25 | Зарегистр. 27-12-2004 | Отправлено: 14:35 18-06-2005
Dark_Avenger2k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в общем и целом(так как я больше по линуху)
то тебе нужно создать правила который на внешнем интерфейсе закроют все порты  кроме 25
первое правило в цепочке разрешает соединения на 25 порт, а следующее закрывает доступ ко всем портам или одно правило которое закрыевает доступ ко всем портам кроме 25(что то вроде -port !25)
а на внутреннем пропускаешь все, ну можешь еще добавить цепочки для посчета трафика через интерфейсы(статистика великая весчь!!!)

Всего записей: 97 | Зарегистр. 19-10-2004 | Отправлено: 21:09 19-06-2005
Kalishenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В принципе я так и сделал, а именно:
 
 
int_if="fxp1"
ext_if="fxp0"
 
int_net="10.0.2.0/24"
Ports="1-65535"
 
${ipfw} add allow tcp from any to any 25
${ipfw} add allow tcp from any 25 to any
${ipfw} add allow tcp from $int_net 110 to any in via $int_if  //110 port tolko dlja lokalnoj seti
 
//a zdes vse porty tolko dlja ustanovlennyh soedinenij
${ipfw} add allow tcp from me to any $Ports
${ipfw} add allow tcp from $int_net to any $Ports
${ipfw} add allow tcp from any $Ports to $int_net established
${ipfw} add allow tcp from any $Ports to me established
 
Только вот вопрос: когда телнечусь на какой-либо порт, на тот же 110 или 80, из Интернета, происходит соединение, порт открывается, только данные не передаются, т.е. показывает чистую консоль без ничего и все. Хотя, я думал, что фаер вообще запретит открывать порт для тех, кто с Инета пробует подключиться. Что не так?

Всего записей: 25 | Зарегистр. 27-12-2004 | Отправлено: 10:08 21-06-2005
Testmann



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
options IPFIREWALL_DEFAULT_TO_ACCEPT ?

Всего записей: 13 | Зарегистр. 17-05-2005 | Отправлено: 10:47 21-06-2005
Kalishenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>> options IPFIREWALL_DEFAULT_TO_ACCEPT ?
 
Ну да. Хоть последним правилом 65535 и является разрешение всего, я в конце правил все-равно ставлю  
 
${ipfw} add deny all from any to any
 
 
 
Добавлено:
Плюс до этого я пишу в лог тех, кто пытается подключиться
 
#Pishem v logi popytki podkluchenija izvne
${ipfw} add deny log logamount 700 tcp from any to $ext_ip in recv $ext_if setup
 
${ipfw} add deny all from any to any

Всего записей: 25 | Зарегистр. 27-12-2004 | Отправлено: 11:40 21-06-2005
Dark_Avenger2k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
попробуй добавить правило которое будет явным образом сбрасывать пакеты приходящие на не нужные тебе порты, не знаю правда как это во фре, в iptables это делается указанием действия с пакетом -j DROP или -j REJECT

Всего записей: 97 | Зарегистр. 19-10-2004 | Отправлено: 14:49 21-06-2005 | Исправлено: Dark_Avenger2k, 15:08 21-06-2005
Kalishenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Теперь другой вопрос: у меня в лок. сети есть машина (10.0.2.84), на которую необходимо перенаправлять пакеты из Инета, идущие на порт 8083, и отправлять пакеты в ответ (с 10.0.2.84). Я добавил в rc.conf
 
natd_flags="-f /etc/natd.conf"  
 
и создал /etc/natd.conf со строчкой
 
redirect_port tcp 10.0.2.84:8083 8083
 
Перезапустив, ничего не получилось. С Инета на 10.0.2.84 ничего не приходит. Где может быть проблема?

Всего записей: 25 | Зарегистр. 27-12-2004 | Отправлено: 16:12 23-06-2005
Dark_Avenger2k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не знаю правильно ты делаешь или нет(как я уже говорил я больше по линуху и IPtables ),
 
но идея такова что тебе нужно создать правило которое будет ловить на указанном порте на внешнем интерфейсе пакеты и напрвлять их на машину 10.0.2.84 и все, потом связть будет установлена, и специально что то писать для обратного пути не нужно(это справедливо если коннект инициируется из интернета)

Всего записей: 97 | Зарегистр. 19-10-2004 | Отправлено: 16:40 23-06-2005
guess



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в natd  правильно, но я не видел тут setup пакетов на вход  
 
01900    0      0 allow tcp from 10.0.2.84 to any 8091
02000    0      0 allow tcp from any 8091 to 10.0.2.84 established

Всего записей: 73 | Зарегистр. 07-12-2003 | Отправлено: 01:48 24-06-2005
Kalishenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Т.е., как я понял, нужно сделать так
 
${ipfw} add allow tcp from any 8083 to 10.0.2.84 setup
${ipfw} add allow tcp from 10.0.2.84 to any 8083 established
 
Я прав?

Всего записей: 25 | Зарегистр. 27-12-2004 | Отправлено: 14:18 24-06-2005
guess



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kalishenko
 если с такими же номерами как и веше отквоченые, то да

Всего записей: 73 | Зарегистр. 07-12-2003 | Отправлено: 15:32 24-06-2005
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как мне направить весь трафик в сквид?
Я делал так...

Код:
 
${ipfw} add divert natd all from $int_net to not $int_net out xmit $ext_if
${ipfw} add divert natd all from any to $ext_ip in recv $ext_if
 

$int_net- внутреняя сеть
$ext_if-внешний интерфейс.
но ничего не работает Сквид то сам работает, осталось с ipfw разобраться... подскажие что и где!

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 15:15 02-01-2006 | Исправлено: L_S_V, 15:48 02-01-2006
tankistua

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 divert natd

а при чем тут нат ?
 
http://www.google.com.ua/search?client=opera&rls=ru&q=ipfw+squid+transparent&sourceid=opera&ie=utf-8&oe=utf-8
 
дерзай.

Всего записей: 9572 | Зарегистр. 15-01-2002 | Отправлено: 16:54 03-01-2006
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
echo -n "Starting firewall..."
 
ipfw="/sbin/ipfw"
int_if="lnc1"
ext_if="lnc0"
 
int_ip="192.168.119.129"
ext_ip="внешний апи"
 
int_net="192.168.119.129/24"
ext_net="внешняя подсеть"
for_mail="smtp,pop3"
Services="http,https,domain,ssh,ftp,5190"
 
${ipfw} add allow all from any to any via lo0
${ipfw} add deny all from any to 127.0.0.0/8
 
${ipfw} add deny all from 127.0.0.0/8 to any in recv $ext_if
${ipfw} add deny all from 10.0.0.0/8 to any in recv $ext_if
${ipfw} add deny all from 172.16.0.0/16 to any in recv $ext_if
${ipfw} add deny all from 192.168.0.0/24 to any in recv $ext_if
 
#####################
#Форвардинг на сквид, может и криво написано, но рабоатет;)
${ipfw} add fwd $Services from $ext_ip to 127.0.0.1 tcp
#####################
 
${ipfw} add fwd $for_mail from $int_net to not $int_net out xmit $ext_if
${ipfw} add fwd $for_mail from any to $ext_ip in recv $ext_if
${ipfw} add fwd $for_mail from $ext_ip to 192.168.119.129/24 tcp
${ipfw} add allow udp from $ext_ip to any domain out xmit $ext_if
${ipfw} add allow udp from any domain to $ext_ip in recv $ext_if
${ipfw} add deny 3128 from any to any in via $ext_if
${ipfw} add allow icmp from any to me icmptypes 0,3,4,11,12 in
${ipfw} add allow icmp from any to $int_net icmptypes 0,3,4,11,12 in recv $ext_if
${ipfw} add allow icmp from me to any icmptypes 3,8,12 out
${ipfw} add deny log logamount 700 tcp from any to $ext_ip in recv $ext_if setup
${ipfw} add deny all from any to any
echo "DONE"
 

1)Помогите плиз пустить pop3 и smtp мимо сквида! Или как ещё можно сделать так чтобы можно было получить и отправить без проблем почту?
2)И ещё как в моём варианте сделать как в предидущем вопросе http на сквид, а за тем всё в NAT?
 
Заранее благодарен!
 

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 16:30 12-01-2006
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите плиз, а то совсем запутолся=(

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 04:01 13-01-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » IPFW & NATD & SQUID


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru