Страница 1 из 1
Перенаправление неавторизованных
Добавлено: Пт окт 05, 2007 5:18 am
Aven
В документации заявлена такая вот интересная возможность...
ipfw add 64000 fwd 192.168.0.1,9443 tcp from any to any dst-port 80,443 via rl0
Но блин не работает

Пытаюсь открыть страничку неавторизованым, долго что-то грузится и не открывает авторизатор

Добавлено: Пн мар 02, 2009 12:25 pm
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 прилетает ответ?
Добавлено: Пн мар 02, 2009 12:41 pm
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
Добавлено: Пн мар 02, 2009 1:00 pm
eddy_mut
В ваших конфигах фигурирует ppp. А если у меня IPN без туннелей (для hotspot), то как?
Добавлено: Пн мар 02, 2009 2:10 pm
mr_gfd
Тут не подскажу - показываю, что есть. У меня по PPPoE терминация клиентов, от нее и танцую. Но я бы смотрел все равно в сторону redir.
Добавлено: Пн мар 02, 2009 2:32 pm
eddy_mut
А хоть у кого-нибудь работает по инструкции?
Добавлено: Пн мар 02, 2009 6:00 pm
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
Вопрос к разработчику: это в документации ошибка? или это у меня где-то еще закралась ошибка, которую я не заметил?
Добавлено: Пн мар 02, 2009 8:20 pm
~AsmodeuS~
не встречал ещё такой баги при настройках нужно в комплексе посмореть возможно ещё есть какието правила