Перенаправление неавторизованных

Ответить
Aven
Сообщения: 168
Зарегистрирован: Чт сен 27, 2007 4:48 pm

Перенаправление неавторизованных

Сообщение Aven »

В документации заявлена такая вот интересная возможность...
ipfw add 64000 fwd 192.168.0.1,9443 tcp from any to any dst-port 80,443 via rl0
Но блин не работает :)
Пытаюсь открыть страничку неавторизованым, долго что-то грузится и не открывает авторизатор :(

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Сообщение eddy_mut »

Аналогично.

Сделал всё по инструкции.

Если пытаться напрямую открыть https://192.168.1.1:9443 - то влетает на страницу на ура, а если набрать http://mail.ru - то долго-долго думает.

В логах фаервола вот такие хитрые строки:

Mar 2 14:51:04 pop kernel: ipfw: 64000 Forward to 192.168.1.1:9443 TCP 192.168.1.20:1153 194.67.57.20:80 in via rl1
Mar 2 14:51:04 pop kernel: ipfw: 65000 Deny TCP 194.67.57.20:80 192.168.1.20:1153 out via rl1

194.67.57.226 - это адрес сайта mail.ru. Но, спрашивается, если фаерволл успешно зафорвардил запрос на страницу авторизации, то почему от mail.ru прилетает ответ?
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

mr_gfd
Сообщения: 129
Зарегистрирован: Пт ноя 03, 2006 8:34 am

Сообщение mr_gfd »

У меня работает следующим образом:

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

ipfw.rules:
${FW} add 39 fwd 10.0.0.1,80 tcp from "table(99)" to not 10.0.0.3  80,443

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

ppp.linkup
GUEST_MODE:
    # Start sript to fill table for forwarding
    !bg /usr/local/script/forwarder limited_up INTERFACE USER HISADDR
    # Allow http to  (required for forwarding)
    #set filter in 0 permit 0/0 10.0.0.0/29 tcp dst eq 80
    #set filter out 0 permit 10.0.0.0/29 0/0 tcp src eq 80
    # Allow tcp for http from any to any (required for forwarding)
    set filter in 2 permit 0/0 0 dst eq 80
    set filter out 2 permit 0 0/0 tcp src eq 80
    # Allow our DNS
    set filter in 4 permit 0/0 10.0.0.3 udp dst eq 53
    set filter out 4 permit 10.0.0.3 0/0 udp src eq 53
    # Allow https to billing/webmail host
    set filter in 7 permit 0/0 10.0.0.3 tcp dst eq 443
    set filter out 7 permit 10.0.0.3 0/0 tcp src eq 443

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

[14:36][berylhead][/home/mike]#confcat /usr/local/script/forwarder
my $debug=0;
$debug=1 if ($#ARGV > -1 && $ARGV[$#ARGV] eq 'debug');
if ( $#ARGV < 3 ) {
 print qq{Not anought argumets:
 Example:
----------------------------------------------------------------
 /etc/ppp/ppp.linkup
 DENY:
   !bg /usr/abills/libexec/linkupdown up INTERFACE USER HISADDR
 /etc/ppp/ppp.linkdown
 DENY:
   !bg /usr/abills/libexec/linkupdown down INTERFACE USER HISADDR
DEBUG: $debug
};
exit 0;
}
use strict;
my $exit_code = 0;
our $IPFW='/sbin/ipfw';
my $denied_table_num='99';
my ($ACTION, $INTERFACE, $USER, $HISADDR) = (shift,shift,shift,shift);
if ($ACTION eq 'limited_up') {
    my $command = "add";
    $exit_code = fw_work ($command, $INTERFACE, $USER, $HISADDR, $denied_table_num);
}
if ($ACTION eq 'limited_down') {
    my $command = "delete";
    $exit_code = fw_work ($command, $INTERFACE, $USER, $HISADDR, $denied_table_num);
}
}
}
}
}
exit $exit_code;
sub fw_work {
    my ($act, $iface, $user, $addr, $table_num) = (shift,shift,shift,shift,shift);
    my $command = "$IPFW table $table_num $act $addr\n";
    `$command`;
    return 1;
}
}

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

[14:37][berylhead][/home/mike]#pkg_info -Ix redir
redir-2.2.1_2       A tcp connection redirection utility

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

[14:39][berylhead][/home/mike]#cat /etc/rc.conf | grep redir
icmp_drop_redirect="YES"
redir_enable="YES"
redir_flags="--lport=80 --cport=80 --laddr=10.0.0.1 --caddr=denied.fqdn"
Ну и ф фильтрах негативного депозита GUEST_MODE

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Сообщение eddy_mut »

В ваших конфигах фигурирует ppp. А если у меня IPN без туннелей (для hotspot), то как?
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

mr_gfd
Сообщения: 129
Зарегистрирован: Пт ноя 03, 2006 8:34 am

Сообщение mr_gfd »

Тут не подскажу - показываю, что есть. У меня по PPPoE терминация клиентов, от нее и танцую. Но я бы смотрел все равно в сторону redir.

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Сообщение eddy_mut »

А хоть у кого-нибудь работает по инструкции?
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

eddy_mut
Сообщения: 141
Зарегистрирован: Чт фев 01, 2007 7:17 am
Откуда: Voskresensk, MSK
Контактная информация:

Сообщение eddy_mut »

Нашел временный костыль для решения проблемы.
Оказывается правило

ipfw add 64000 fwd 192.168.1.1,80 tcp from any to any dst-port 80,443 via rl1

успешно форвардило запрос клиента в интернет на локальный сервер. А вот локальный сервер клиенту отвечал не от имени 192.168.1.1 80, а от имени того сервера в интернете, что был запрошен, например маил ру. Но так как этот сервер никак не похож на 192.168.1.1 80 то правило

ipfw add 11 allow tcp from 192.168.1.1 80 to any via rl1

не срабатывало и ответ локального сервера блокировался последним правилом, по умолчанию блокирующим всё.

я после

# Доступ к странице авторизации
ipfw add 10 allow tcp from any to 192.168.1.1 80 via rl1
ipfw add 11 allow tcp from 192.168.1.1 80 to any via rl1

прописал еще

ipfw add 11 allow tcp from any 80 to any via rl1

Вот теперь, при запросе любого сайта перекидывает на адрес 192.168.1.1 80

Вопрос к разработчику: это в документации ошибка? или это у меня где-то еще закралась ошибка, которую я не заметил?
Voskresensk, MSK
http://www.ncv.ru
Admin
Internet Service Provider

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

не встречал ещё такой баги при настройках нужно в комплексе посмореть возможно ещё есть какието правила

Ответить