Erastik 0 Опубликовано: 2007-10-20 19:23:36 Share Опубликовано: 2007-10-20 19:23:36 Добрый день! Помогите пожалуйста разобраться, надо что бы скрипт на perl заносил в ipfw правила по ограничению скорости.. Сейчас это выглядит так: system("/sbin/ipfw pipe 40001 config bw 64Kbits/s queue 20 >/dev/null mask dst-ip 0xffffffff"); # скорость на прием system("/sbin/ipfw pipe 40002 config bw 64Kbits/s queue 20 mask src-ip 0xffffffff"); # скорость на отдачу system("/sbin/ipfw add 40001 pipe 40001 ip from 10.0.0.2 to any in >/dev/null"); system("/sbin/ipfw add 40001 pipe 40002 ip from any to 10.0.0.2 out >/dev/null"); Вроде как оно все нормально добавляет.. ipfw show: 40001 0 0 pipe 40001 ip from 10.0.0.2 to any in 40001 0 0 pipe 40002 ip from any to 10.0.0.2 out ipfw pipe show: 40001: 64.000 Kbit/s 0 ms 20 sl. 0 queues (64 buckets) droptail 40002: 64.000 Kbit/s 0 ms 20 sl. 0 queues (64 buckets) droptail Но правила почему то не работают.. При чем если я их добавляю в файл с правилами или забиваю вручную то все отменно работает. Не подскажет что это может быть? Ссылка на сообщение Поделиться на других сайтах
Dragon 13 Опубліковано: 2007-10-20 19:30:26 Share Опубліковано: 2007-10-20 19:30:26 system("/sbin/ipfw pipe 40001 config bw 64Kbits/s queue 20 >/dev/null mask dst-ip 0xffffffff"); # скорость на прием Что это? Ты перепутал in, out местами в правилах и чего 2 правила с одном номером? Пожалуй так будет правильно... system("/sbin/ipfw pipe 40001 config bw 64Kbits/s queue 20 mask src-ip 0xffffffff >/dev/null"); system("/sbin/ipfw pipe 40002 config bw 64Kbits/s queue 20 mask dst-ip 0xffffffff >/dev/null"); system("/sbin/ipfw add 40001 pipe 40001 ip from 10.0.0.2 to any in >/dev/null"); system("/sbin/ipfw add 40002 pipe 40002 ip from any to 10.0.0.2 out >/dev/null"); Ссылка на сообщение Поделиться на других сайтах
Erastik 0 Опубліковано: 2007-10-20 21:16:15 Автор Share Опубліковано: 2007-10-20 21:16:15 system("/sbin/ipfw pipe 40001 config bw 64Kbits/s queue 20 >/dev/null mask dst-ip 0xffffffff"); # скорость на прием Что это? Ты перепутал in, out местами в правилах и чего 2 правила с одном номером? Пожалуй так будет правильно... system("/sbin/ipfw pipe 40001 config bw 64Kbits/s queue 20 mask src-ip 0xffffffff >/dev/null"); system("/sbin/ipfw pipe 40002 config bw 64Kbits/s queue 20 mask dst-ip 0xffffffff >/dev/null"); system("/sbin/ipfw add 40001 pipe 40001 ip from 10.0.0.2 to any in >/dev/null"); system("/sbin/ipfw add 40002 pipe 40002 ip from any to 10.0.0.2 out >/dev/null"); Без толку.. Ссылка на сообщение Поделиться на других сайтах
Erastik 0 Опубліковано: 2007-10-20 21:22:37 Автор Share Опубліковано: 2007-10-20 21:22:37 Я же говрю что ввожу все руками и все нормально работает... Ссылка на сообщение Поделиться на других сайтах
J.McKey 0 Опубліковано: 2007-10-21 07:30:28 Share Опубліковано: 2007-10-21 07:30:28 Я же говрю что ввожу все руками и все нормально работает... можно заменить system -> exec Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2007-10-21 08:08:47 Share Опубліковано: 2007-10-21 08:08:47 А чем пхп не уходил? Ссылка на сообщение Поделиться на других сайтах
Erastik 0 Опубліковано: 2007-10-21 16:22:10 Автор Share Опубліковано: 2007-10-21 16:22:10 А чем пхп не уходил? Пхп угодил.. Но в общем нужно только на перле и ничего с этим сделать нильзя. Ссылка на сообщение Поделиться на других сайтах
Dragon 13 Опубліковано: 2007-10-21 17:18:18 Share Опубліковано: 2007-10-21 17:18:18 Я же говрю что ввожу все руками и все нормально работает... Ну это вопрос не много меняет А что в access логах Апача при этом??? Ссылка на сообщение Поделиться на других сайтах
J.McKey 0 Опубліковано: 2007-10-21 19:27:05 Share Опубліковано: 2007-10-21 19:27:05 Я же говрю что ввожу все руками и все нормально работает... Ну это вопрос не много меняет А что в access логах Апача при этом??? не похоже что апач участвует здесь... Ссылка на сообщение Поделиться на других сайтах
vlad5503 1 Опубліковано: 2017-06-22 07:56:02 Share Опубліковано: 2017-06-22 07:56:02 Добрый день! Помогите пожалуйста разобраться, надо что бы скрипт на perl заносил в ipfw правила по ограничению скорости.. Сейчас это выглядит так: system("/sbin/ipfw pipe 40001 config bw 64Kbits/s queue 20 >/dev/null mask dst-ip 0xffffffff"); # скорость на прием system("/sbin/ipfw pipe 40002 config bw 64Kbits/s queue 20 mask src-ip 0xffffffff"); # скорость на отдачу system("/sbin/ipfw add 40001 pipe 40001 ip from 10.0.0.2 to any in >/dev/null"); system("/sbin/ipfw add 40001 pipe 40002 ip from any to 10.0.0.2 out >/dev/null"); Вот и мне понадобилось из перл скрипта, что получает сведения от другого сервера данных, прописывать такое: /sbin/ipfw table 2 add 192.168.30.0/24 ну или просто Ip клиента. И соответственно чтоб мог удалять. И вот бьюсь и не получается. Даже локально запускаю скрипт и он не пишет в таблицу(не создает). Подставляю другие команды, например записать в файл сведения что получил скрипт, дату и прочее - пишет. Подскажите, что не так сделал... Сам скрипт вот такой: # cat on.pl #!/usr/local/bin/perl print ("Content-type: text/html\n\n"); #print '<?xml version="1.0" encoding="windows-1251"?>'; #print("OK"); use strict; use CGI ':standard'; my $date = localtime; my $log = "/usr/scripts/on.log"; my $key = param('key'); my $kod = param('kod'); my $metka = 0; my $IP = param('id'); if ($key eq "euflfk") { if ($kod eq "vsem") { if ($IP eq "my_ip") { if (open(LOG, ">>$log")) { print LOG "$date"."_"."OPEN"."_"."$IP"."_"."$kod"."\n"; close(LOG); #print("OK-2"."\n"); exec("/sbin/ipfw table 22 add 192.168.30.0/24 >/dev/null"); } } } } #print("OK-3"."\n"); exit 0; Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2017-06-22 09:15:31 Share Опубліковано: 2017-06-22 09:15:31 (відредаговано) Когда-то, в молодости, делал так: $fwcmd = "/sbin/ipfw table " . $TABLE_N . " add $IP"; `$fwcmd`; Відредаговано 2017-06-22 09:15:45 andryas Ссылка на сообщение Поделиться на других сайтах
vlad5503 1 Опубліковано: 2017-06-22 09:46:59 Share Опубліковано: 2017-06-22 09:46:59 Когда-то, в молодости, делал так: $fwcmd = "/sbin/ipfw table " . $TABLE_N . " add $IP"; `$fwcmd`; Точно также отрабатывает Ваш вариант.... Не создал он строку в таблице. А в логах апача это: [Thu Jun 22 16:41:15.424213 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: ipfw: : /usr/local/www/apache24/cgi-bin/on.pl [Thu Jun 22 16:41:15.424511 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: socket: /usr/local/www/apache24/cgi-bin/on.pl [Thu Jun 22 16:41:15.424575 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: : : /usr/local/www/apache24/cgi-bin/on.pl [Thu Jun 22 16:41:15.443656 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: Operation not permitted: /usr/local/www/apache24/cgi-bin/on.pl [Thu Jun 22 16:41:15.450744 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: ipfw: : /usr/local/www/apache24/cgi-bin/on.pl [Thu Jun 22 16:41:15.450846 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: socket: /usr/local/www/apache24/cgi-bin/on.pl [Thu Jun 22 16:41:15.450905 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: : : /usr/local/www/apache24/cgi-bin/on.pl [Thu Jun 22 16:41:15.451193 2017] [cgi:error] [pid 3074] [client 10.10.10.2:4589] AH01215: Operation not permitted: /usr/local/www/apache24/cgi-bin/on.pl Ссылка на сообщение Поделиться на других сайтах
mixtery 121 Опубліковано: 2017-06-22 09:52:24 Share Опубліковано: 2017-06-22 09:52:24 Фигассе, апачу можно добираться к ipfw? Крутотень!Права проверьте. Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2017-06-22 09:55:22 Share Опубліковано: 2017-06-22 09:55:22 Operation not permitted: Напрямую с апача и не будет прав, и это хорошо. Работайте через СУБД либо через временный файл. Ссылка на сообщение Поделиться на других сайтах
vlad5503 1 Опубліковано: 2017-06-22 10:06:44 Share Опубліковано: 2017-06-22 10:06:44 Вот и пошел путем через временный файл плюс крон для шеловского скрипта.... А вот rscriptd от stargazera работает напрямую...но Очень уж мало передаваемых параметров. Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2017-06-22 11:10:11 Share Опубліковано: 2017-06-22 11:10:11 Не, ну можно поставить права и делать su, но это неправильно, ИМХО. Как работает stargazer я не изучал. Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2017-06-22 11:28:21 Share Опубліковано: 2017-06-22 11:28:21 А вот rscriptd от stargazera работает напрямую...но Очень уж мало передаваемых параметров. sudo осильте что-ли. Ссылка на сообщение Поделиться на других сайтах
pppoetest 0 Опубліковано: 2017-06-22 15:09:08 Share Опубліковано: 2017-06-22 15:09:08 Operation not permitted: chmod +x и убедитесь что юзеру от которого запускается скрипт разрешён запуск /sbin/ipfw Ссылка на сообщение Поделиться на других сайтах
pashaumka 33 Опубліковано: 2017-06-24 18:25:54 Share Опубліковано: 2017-06-24 18:25:54 ваш скрипт стартует с правами рута или в группе рута? Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас