ipfw на удаленном маршрутизаторе

Вопросы по UTM 3.0 и UTM 4.0 (поддержка прекращена)
porter
Сообщения: 2
Зарегистрирован: Ср июл 27, 2005 17:43

ipfw на удаленном маршрутизаторе

Сообщение porter »

По каким-то причинам не отключаются пользователи на удаленном сервере.
На этом сервере создан пользователь ipfw, в конфиге sudoers прописано следующее ipfw ALL = NOPASSWD: /sbin/ipfw
На сервере, где стоит УТМ 4, в правилах фаервола прописано
отключение /sbin/ipfw add RULE_ID deny ip from UIP to any
включения /sbin/ipfw delete RULE_ID
В маршрутизаторах: тип-Удаленный UNIX, ip-IP, логин-ipfw, пароль-*** ....
В utm.conf
sudo_path=/usr/local/bin/sudo (и он там есть)

В чем может быть причина?

Skylord
Сообщения: 263
Зарегистрирован: Пт фев 04, 2005 11:33

Сообщение Skylord »

rexec в inetd нормально настроен? По tcpdump есть активность на 512 порту? В логах sudo есть что-нибудь?

porter
Сообщения: 2
Зарегистрирован: Ср июл 27, 2005 17:43

Сообщение porter »

в inet.d просто расскоментил стандартную строчку
exec stream tcp nowait root /usr/libexec/rexecd rexecd

10:07:37.224568 192.168.0.1.exec > 192.168.0.3.52917: R 0:0(0) ack 2847903422 win 0
10:07:37.225442 192.168.0.3.59288 > 192.168.0.1.exec: S 3506599317:3506599317(0) win 65535 <mss 1460,nop,nop,sackOK,nop,wscale 1,nop,nop,timestamp 6546559 0> (DF)
10:07:37.225467 192.168.0.1.exec > 192.168.0.3.59288: R 0:0(0) ack 3506599318 win 0
10:07:37.231096 192.168.0.3.50538 > 192.168.0.1.exec: S 2461080045:2461080045(0) win 65535 <mss 1460,nop,nop,sackOK,nop,wscale 1,nop,nop,timestamp 6546560 0> (DF)

логов sudo нет ...

Connor
Сообщения: 8
Зарегистрирован: Пн авг 29, 2005 16:13

Сообщение Connor »

Такая же проблема.
Тоже юзер ipfw.
Причем вот че пишут логи:
Aug 31 09:16:57 katrine sudo: nobody : TTY=unknown ; PWD=/usr/www/utm/cgi-bin/utm ; USER=root ; COMMAND=/sbin/ipfw delete 1002
Aug 31 09:16:57 katrine sudo: nobody : TTY=unknown ; PWD=/usr/www/utm/cgi-bin/utm ; USER=root ; COMMAND=/sbin/ipfw delete 1002
Aug 31 09:16:57 katrine rexecd[564]: pA^E^H LOGIN REFUSED from ***.***.***.***
Aug 31 09:16:57 katrine kernel: Aug 31 09:16:57 katrine rexecd[564]: pA^E^H LOGIN REFUSED from ***.***.***.***
Aug 31 09:16:57 katrine rexecd[565]: pA^E^H LOGIN REFUSED from ***.***.***.***
Aug 31 09:16:57 katrine kernel: Aug 31 09:16:57 katrine rexecd[565]: pA^E^H LOGIN REFUSED from ***.***.***.***


Тоесть передаеться неправельный логин и походу дела пароль...
В мускуле проверил там пароль и логин нормальные прописанны:
{10:11:14}{Wed Aug 31}{root@katrine}{~}#mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21 to server version: 4.1.13

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> \u UTM
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from remote_fw;
+----+---------+------------+---------+-------------+-------------+
| id | fw_type | fw_ip | fw_user | fw_password | fw_comments |
+----+---------+------------+---------+-------------+-------------+
| 1 | 0 | NULL | | | кНЙЮКЭМШИ |
| 2 | 1 | ********* | ipfw | *** | ipfw |
+----+---------+------------+---------+-------------+-------------+
2 rows in set (0.00 sec)

Ктонить сталкивался с таким?????
Последний раз редактировалось Connor Ср авг 31, 2005 09:28, всего редактировалось 1 раз.

Connor
Сообщения: 8
Зарегистрирован: Пн авг 29, 2005 16:13

Сообщение Connor »

Кто не понял предыдущее то тут я тестирую и локальную обработку ipfw и удаленную на одной машине... локально работает а удаленно нет :(((

Connor
Сообщения: 8
Зарегистрирован: Пн авг 29, 2005 16:13

Сообщение Connor »

kstati poproboval sdelat' tak
inetd.conf:
exec stream tcp nowait root /usr/libexec/rexecd rexecd -i

sudoers:
root ALL=(ALL) ALL

nobody ALL= NOPASSWD: /sbin/ipfw
nobody ALL= NOPASSWD: /usr/sbin/arp
ipfw ALL= NOPASSWD: /sbin/ipfw
ipfw ALL= NOPASSWD: /bin/echo

netup:
{10:24:35}{Wed Aug 31}{root@katrine}{~}#mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 31 to server version: 4.1.13

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> \u UTM
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from remote_fw;
+----+---------+------------+---------+--------------+-------------+
| id | fw_type | fw_ip | fw_user | fw_password | fw_comments |
+----+---------+------------+---------+--------------+-------------+
| 1 | 0 | NULL | | | кНЙЮКЭМШИ |
| 2 | 1 | 3650538909 | root | ************ | ipfw |
+----+---------+------------+---------+--------------+-------------+
2 rows in set (0.00 sec)

i vot che logi pishut:
Aug 31 10:22:04 katrine rexecd[730]: root LOGIN REFUSED from ***.***.***.***
Aug 31 10:22:04 katrine kernel: Aug 31 10:22:04 katrine rexecd[730]: root LOGIN REFUSED from ***.***.***.***
Aug 31 10:22:04 katrine rexecd[731]: root LOGIN REFUSED from ***.***.***.***
Aug 31 10:22:04 katrine kernel: Aug 31 10:22:04 katrine rexecd[731]: root LOGIN REFUSED from ***.***.***.***
Aug 31 10:22:09 katrine sudo: nobody : TTY=unknown ; PWD=/usr/www/utm/cgi-bin/utm ; USER=root ; COMMAND=/sbin/ipfw add 1002 allow ip from any to ***.***.***.***
Aug 31 10:22:09 katrine sudo: nobody : TTY=unknown ; PWD=/usr/www/utm/cgi-bin/utm ; USER=root ; COMMAND=/sbin/ipfw add 1002 allow ip from ***.***.***.*** to any
Aug 31 10:22:09 katrine rexecd[738]: root LOGIN REFUSED from ***.***.***.***
Aug 31 10:22:09 katrine kernel: Aug 31 10:22:09 katrine rexecd[738]: root LOGIN REFUSED from ***.***.***.***
Aug 31 10:22:09 katrine rexecd[739]: root LOGIN REFUSED from ***.***.***.***
Aug 31 10:22:09 katrine kernel: Aug 31 10:22:09 katrine rexecd[739]: root LOGIN REFUSED from ***.***.***.***

Connor
Сообщения: 8
Зарегистрирован: Пн авг 29, 2005 16:13

Сообщение Connor »

Est' predpologenie chto vo vsem vinovata nesovmestimost' rexecd v FreeBSD katrine.******.ru 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Tue Aug 23 15:20:16 UTC 2005 root@katrine.********.ru:/usr/src/sys/i386/compile/katrine i386

i rexec clienta v utm moei versii

kto stalkivalsia plzzz podskagite v chem trabla??? i kak eto pobarot'???

Connor
Сообщения: 8
Зарегистрирован: Пн авг 29, 2005 16:13

Сообщение Connor »

Obnarugilis' novie podrobnosti:
kogda password ne pravel'nii ili useru s takim loginom zapreshen dostu to rexec normal'no otrabativaet login i v errore pishet chto pol'zovateliu dostub zapreshen a esli vse po idee dolgno bit' normal'no i pol'zovatel' dolgen ispolnit' komandu to login meniaet'sia na pA^E^H+bukvi esli login dlinnii...
pohoge na gliuki konkretno rexeca... no vsege esli kto stalkivalsia podskagite...

CZ
Сообщения: 3
Зарегистрирован: Сб сен 03, 2005 13:07
Откуда: Saratov

Сообщение CZ »

Connor писал(а):Est' predpologenie chto vo vsem vinovata nesovmestimost' rexecd v FreeBSD katrine.******.ru 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Tue Aug 23 15:20:16 UTC 2005 root@katrine.********.ru:/usr/src/sys/i386/compile/katrine i386

i rexec clienta v utm moei versii

kto stalkivalsia plzzz podskagite v chem trabla??? i kak eto pobarot'???
Проблема явно не в этом - у меня все симптомы такие же, но стоит одна и таже система - FreeBSD 5.4 RELEASE.

Нельзя ли эту проблему обойти, через ssh к примеру...

Skylord
Сообщения: 263
Зарегистрирован: Пт фев 04, 2005 11:33

Сообщение Skylord »

Сталкивался с такой проблемой. Посмотрите cvs - rexecd действительно сильно ковыряли. Я не стал разбираться, в чем дело, а просто положил в 5.4 бинарник от 5.2. Работает по старому.

CZ
Сообщения: 3
Зарегистрирован: Сб сен 03, 2005 13:07
Откуда: Saratov

Сообщение CZ »

Skylord писал(а):Сталкивался с такой проблемой. Посмотрите cvs - rexecd действительно сильно ковыряли. Я не стал разбираться, в чем дело, а просто положил в 5.4 бинарник от 5.2. Работает по старому.
Спасибо заработало. Но, по моему я нашел более оптимальное решение, собственно это обход сразу нескольких проблем...

Пишутся три скрипта, первый указывается в качестве локального файрвола, второй заменяет стандартный tsave от netup, третий выполняется на удаленном маршрутизаторе. Связь между маршрутизатром и биллингом выполняется через ssh причем на каждый цикл tsave выполняется всего 2 соединения.
====скрипт ipfw_ (заменяет стандартный ipfw в правилах)
#!/usr/bin/perl
local $rule_file="/netup/rule_lst";
local $cmd="/bin/echo @ARGV >> $rule_file";
system "$cmd";
===========
правило должно выглядеть примерно так "ipfw_ add RULE_ID allow ip from any to UIP". Скрипт записывает правила в файл "/netup/rule_lst"

====скрипт tsave_ заменяет стандартный tsave
#!/bin/sh
/netup/utm/bin/tsave
/usr/bin/scp -i /root/.ssh/remoteuser.key /netup/rule_lst remoteuser@remotehost:/home/remoteuser/bin/rule_lst
/bin/rm /netup/rule_lst
/usr/bin/ssh -i /root/.ssh/remoteuser.key remoteuser@remotehost /usr/local/bin/sudo /home/remoteuser/bin/ipfw_add
============
скрипт запускает tsave копирует файл с правилами (/netup/rule_lst) на удаленный хост (remotehost), и запускает там скрипт, обновляющий правила файрвола на основании скопированного файла.

====скрипт ipfw_add обновляет файрволл
#!/usr/bin/perl
#путь к файлу с правилами
local $rule_lst='/home/remoteuser/bin/rule_lst';
#команда для выполнения правил
local $ipfw='/usr/local/bin/sudo /sbin/ipfw ';
local $ipfw_list=$ipfw.'list';
open(FILE,"$ipfw_list|");
while(<FILE>)
{
chomp;
/(\d+)\s(.+)/;
$rules{$_}=$1;
}
close(FILE);
open(FILE,"$rule_lst") || die "can`t open file";
while(<FILE>)
{
chomp;
if(/^delete/i)
{
$comands{$_}=1;
}
else
{
/(\w+)\s(\d+)\s(.+)/;
my $rule=sprintf("%05s",$2).' '.$3;
if(!$rules{$rule})
{
$comands{$rule}=$1;
}
}
}
close(FILE);
foreach my $rule (keys %comands)
{
if($rule=~/delete/i)
{
$cmd= "$ipfw$rule";
}
else
{
$cmd= "$ipfw$comands{$rule} $rule";
}
system("$cmd");
}

Вот примерно так обходится эта проблема, проблема с колличеством соединений с rexecd (он вообще становится не нужным), снижается нагрузка на канал связи и сервера, а так же в виде бонуса не гоняется пароль на доступ к удаленному маршрутизатору по сети в открытом виде.

Skylord
Сообщения: 263
Зарегистрирован: Пт фев 04, 2005 11:33

Сообщение Skylord »

Гм.... Это, конечно, все замечательно, но как при таком раскладе рулить файрволлами из админского интерфейса в реальном времени?
А что за проблема с количеством соединений rexecd? Никогда не встречался... Есть ограничение на количество соединений в inetd, но оно снимается установкой соответствующей опции командной строки.
Гоняние по сети пароля не напрягает ни фига - он гоняется внутри core и никто, кроме серверов его не видит. ИМХО, надо вообще стараться избегать контактов через незащищенную среду... А у себя я скорее на rsh перешел бы - проще и быстрее (при большом количестве удаленных маршрутизаторов и пользователей, даже использование rexec напрягает, а ведь ssh при установке соединения тормозит еще больше...).
Опять же - все эти скрипты - это заведомо менее гибкое решение. Вот, скажем, у меня правила простым " add RULE_ID allow ip from any to UIP" не ограничиваются. У меня такого вообще нет. ;-) У меня все правила написаны заранее, а биллинг только добавляет/удаляет IP пользователя из соответствующей таблицы (вообще, рекомендую идти в ногу со временем и изучить возможности ipfw2/pf/iptables). А таблиц несколько - в зависимости от тарифов, так как на анлимах юзерам скорость в зависимости от таблиц урезается... Плюс в добавок, работает одновременно два файрволлы: pf - делает роутинг на два внешних канала и nat, ipfw - ограничивает скорость посредством dummynet. Одним словом, сомневаюсь, что приведенные скрипты нормально справились бы с более-менее сложной организацией маршрутизации и файрволлов... Много пришлось бы доделывать... А на фига? Уж лучше бинарник заменить на старый... А когда до конца rexecd доковыряют - тогда уж просто разобраться, в чем там с ним дело и сделать все по-человечески. А не через дополнительные "прокладки".

CZ
Сообщения: 3
Зарегистрирован: Сб сен 03, 2005 13:07
Откуда: Saratov

Сообщение CZ »

Skylord писал(а):Гм.... Это, конечно, все замечательно, но как при таком раскладе рулить файрволлами из админского интерфейса в реальном времени?
Точно так же как и обычным... Только в настройках прописывается не "Удаленный UNIX", а локальный, и вместо "/sbin/ipfw" пишется "/path_to_script/ipfw_" и вся разница.
Skylord писал(а):А что за проблема с количеством соединений rexecd? Никогда не встречался... Есть ограничение на количество соединений в inetd, но оно снимается установкой соответствующей опции командной строки.
Ну да, это я не правильно написал, конечно имелся ввиду inetd.
Skylord писал(а):Гоняние по сети пароля не напрягает ни фига - он гоняется внутри core и никто, кроме серверов его не видит. ИМХО, надо вообще стараться избегать контактов через незащищенную среду...
Так я и написал - бонус, вроде особо не нужно, но приятно.
Skylord писал(а):А у себя я скорее на rsh перешел бы - проще и быстрее (при большом количестве удаленных маршрутизаторов и пользователей, даже использование rexec напрягает, а ведь ssh при установке соединения тормозит еще больше...).
Тут с тобой не поспоришь, но есть одно но - при настройке "по инструкции" при каждом цикле tsave устанавливается не хилое количестово соединений, при 500 и более пользователей это выльется в нехилую нагрузку, причем многие правила просто дублиются или обновляются, а в моем способе происходит всего 2 соединения, вне зависимости от количества правил и при обработке выполняются только те правила, которые должны измениться (вонсятся новые, удаляются старые и тп).
Skylord писал(а):Одним словом, сомневаюсь, что приведенные скрипты нормально справились бы с более-менее сложной организацией маршрутизации и файрволлов...
Ты удивишся, прекрасно справляются... И потом, эти примеры - только примеры, но примеры работающие.

Skylord
Сообщения: 263
Зарегистрирован: Пт фев 04, 2005 11:33

Сообщение Skylord »

ОК. В конце концов, каждый делает так, как ему удобнее. :-)
Я у себя сейчас хочу немножко поковырять tsave, чтобы он применял правила файрволла только для тех пользователей, которых заблокировал непосредственно в данный момент (т.е. по сути тех, у кого стоит галочка блокировка, но интернет еще включен). После этого моя жизнь будет полностью беспроблемна. :-)
Тебе тоже успехов!

Dimon
Сообщения: 35
Зарегистрирован: Чт фев 03, 2005 15:50

Сообщение Dimon »

Skylord писал(а):Сталкивался с такой проблемой. Посмотрите cvs - rexecd действительно сильно ковыряли. Я не стал разбираться, в чем дело, а просто положил в 5.4 бинарник от 5.2. Работает по старому.
а не подкинеш бинарники а то где сейчас 5.2 брать

Закрыто