silentman Posted April 15, 2007 at 06:58 AM Posted April 15, 2007 at 06:58 AM Добрый день всем! С СТГ начал работать недавно, поэтому интересует вопрос, что надо добавить в скрипты Onconect\OnDisconect для работы с направлениями? Спасибо всем за помощь!
fredik Posted April 15, 2007 at 07:39 PM Posted April 15, 2007 at 07:39 PM Добрый день всем! С СТГ начал работать недавно, поэтому интересует вопрос, что надо добавить в скрипты Onconect\OnDisconect для работы с направлениями? Спасибо всем за помощь! http://stg.dp.ua/doc20.php тут все подробно написано...
silentman Posted April 15, 2007 at 09:51 PM Author Posted April 15, 2007 at 09:51 PM Добрый день всем! С СТГ начал работать недавно, поэтому интересует вопрос, что надо добавить в скрипты Onconect\OnDisconect для работы с направлениями? Спасибо всем за помощь! http://stg.dp.ua/doc20.php тут все подробно написано... Про направления я там ничего не нашел. Подскажите пожалуйста, ибо что-то не пойму..
fredik Posted April 15, 2007 at 10:08 PM Posted April 15, 2007 at 10:08 PM http://stg.dp.ua/doc20/conf_rules.html и Требуется: Необходимо настроить сервер таким образом: Организовать подсчет локального трафика Организовать подсчет городского трафика Организовать подсчет мирового(прочего) трафика Настроить доступ пользователям так, что бы они не авторизовавшись не могли попасть в интернет, внутренние ресурсы, также, должны быть недоступны Пользователи всегда, независимо от того, авторизованы они или нет, могли пинговать сервер (для нужд диагностики) С клиентской машины с адресом 192.168.1.18 настроить доступ по ssh на сервер при отсутствии авторизатции. Это домашняя машина админа и ему бывает нужно что-то сделать на сервере не имея авторизации В офисе расположена машина с адресом 192.168.1.2, настроить для нее доступ по ssh на сервер при отсутствии авторизатции. Доступ конфигуратором сделать возможным только с хостов 192.168.1.2 и 192.168.1.18 Решение: Первое что нужно сделать, это определится с правилами подсчета трафика. Будем считать, что: направлекние №0 - локальный трафик (DIR0) направлекние №1 - городской трафик (DIR1) направлекние №2 - мировой трафик (DIR2) rules Файл /etc/stargazer/rules: # Самые скоростные ресурсы распологаем в самом верху наших правил # Это позволит уменьшить нагрузку на процессор # Самыми быстрыми ресурсами, в данном случае, будут архивы видео и музыки #ПРОТОКОЛ АДРЕС НАПРАВЛЕНИЕ # Трафик на архив ALL 172.18.1.0/24 DIR0 # Трафик на роутер ALL 192.168.1.1 DIR0 ALL 10.3.2.111 DIR0 ALL 172.18.1.1 DIR0 # Город ALL 195.248.160.0/19 DIR1 ALL 212.86.224.0/19 DIR1 ALL 213.227.192.0/18 DIR1 ALL 217.24.160.0/20 DIR1 # Пинги не считаем ICMP 0.0.0.0/0 NULL # Мир, те всё что не попало под предыдущие правила ALL 0.0.0.0/0 DIR3
Neelix Posted April 15, 2007 at 10:23 PM Posted April 15, 2007 at 10:23 PM fredik, он имел ввиду пример скрипта OnConnect для последнего билда СТГ с патчем выбора направлений, а не сам пример rules, а на сайте действительно мануальчика нет.
fredik Posted April 16, 2007 at 04:06 AM Posted April 16, 2007 at 04:06 AM to>X-TZ тогда сори за флуд, просто непонял вопроса..
silentman Posted April 16, 2007 at 06:38 AM Author Posted April 16, 2007 at 06:38 AM Так хто нить подскажет?
Neelix Posted April 16, 2007 at 10:01 AM Posted April 16, 2007 at 10:01 AM мне тоже кстати интересно...потому что FAQ так никто и не написал
Alferov Posted April 16, 2007 at 10:10 AM Posted April 16, 2007 at 10:10 AM Пробовал писать. Написал хрен знает сколько... вроде даже работало... не помню точно, отпала необходимость. Вот что собственно получилось в OnConnect: #!/bin/sh LOGIN=$1 IP=$2 CASH=$3 ID=$4 DIRS=$5 fwcmd="ipfw -q" a='0'; b='0'; c='0'; while [ $a -lt 10 ] do d='0'; e='0' b=$(( $a + 1 )) ips=`cat rules | awk 'BEGIN {ORS=" "} /'DIR$a'/ {gsub(/,/,/:/); print $2}'` d=`echo "$ips" | grep ' '|wc -w` if [ ! $d -eq 0 ]; then dir=`echo $DIRS | cut -c$b` if [ $dir -eq 1 ] then di="allow" else di="deny" fi ip_out="{ " for ip in $ips do ip=`echo $ip | sed 's/:/ /g'` ip_out="$ip_out$ip" e=$(($e+1)) if [ $e -lt $d ]; then ip_out="$ip_out or "; fi done ip_out="$ip_out }" ${fwcmd} add `expr $ID '*' 20 + 10000 + $c` $di ip from $IP to $ip_out in recv re0 ${fwcmd} add `expr $ID '*' 20 + 10000 + $(($c+1))` $di ip from $ip_out to $IP c=$(($c+2)) fi a=$b done echo "Connect: `date +%d.%m.%Y-%H:%M:%S` ip: $IP id: $ID dirs: $DIRS" >> /var/stargazer/logs/$LOGIN-connect.log P.S. AS IS
silentman Posted April 16, 2007 at 10:38 AM Author Posted April 16, 2007 at 10:38 AM Пробовал писать. Написал хрен знает сколько... вроде даже работало... не помню точно, отпала необходимость. Вот что собственно получилось в OnConnect: #!/bin/sh LOGIN=$1 IP=$2 CASH=$3 ID=$4 DIRS=$5 fwcmd="ipfw -q" a='0'; b='0'; c='0'; while [ $a -lt 10 ] do d='0'; e='0' b=$(( $a + 1 )) ips=`cat rules | awk 'BEGIN {ORS=" "} /'DIR$a'/ {gsub(/,/,/:/); print $2}'` d=`echo "$ips" | grep ' '|wc -w` if [ ! $d -eq 0 ]; then dir=`echo $DIRS | cut -c$b` if [ $dir -eq 1 ] then di="allow" else di="deny" fi ip_out="{ " for ip in $ips do ip=`echo $ip | sed 's/:/ /g'` ip_out="$ip_out$ip" e=$(($e+1)) if [ $e -lt $d ]; then ip_out="$ip_out or "; fi done ip_out="$ip_out }" ${fwcmd} add `expr $ID '*' 20 + 10000 + $c` $di ip from $IP to $ip_out in recv re0 ${fwcmd} add `expr $ID '*' 20 + 10000 + $(($c+1))` $di ip from $ip_out to $IP c=$(($c+2)) fi a=$b done echo "Connect: `date +%d.%m.%Y-%H:%M:%S` ip: $IP id: $ID dirs: $DIRS" >> /var/stargazer/logs/$LOGIN-connect.log P.S. AS IS ммм.. это под FreeBSD, а вот нуна под Linux и IPtables
Alferov Posted April 16, 2007 at 10:40 AM Posted April 16, 2007 at 10:40 AM Да... забыл пояснить. Задача стояла такая: Взять файл rules. Вытащить из него адрес к соответствующим направлениям и отдать эти адреса в файрвол. Проблема возникала в случае, если адреса были с портами. Не помню точно, но по моему и эту проблему решил. Давно было... а проверить негде. еще раз повторюсь: as is
Alferov Posted April 16, 2007 at 10:41 AM Posted April 16, 2007 at 10:41 AM Ну и что, что под фрибсд и ipfw? Под iptables переделать мне кажется никаких проблем не составит.
XoRe Posted April 17, 2007 at 07:07 AM Posted April 17, 2007 at 07:07 AM 2Alferov: Кто-то хочет уже готовое и разжеванное )
Neelix Posted April 17, 2007 at 09:18 AM Posted April 17, 2007 at 09:18 AM Так а патч к серверной части для чего тогда делался? По-моему там только пара параметров передается в скрипт OnConnect, на какое из навправлений выполнять iptables. С IP и файлов rules там вроде не надо ковыряться.
Alferov Posted April 17, 2007 at 09:22 AM Posted April 17, 2007 at 09:22 AM Ну ладно... раз вы такие ленивые (не можете даже посмотреть, что отдает СТГ), разжую немного. В OnConnect передается строка типа "1111111111", где позиция каждого символа означает номер направления, а значение: 1-разрешить, а 0-запретить. Разжевал, глотай! ))) п.с. Не знаю, как здесь народ к этому относится, но в большинстве случаев, если человек даже не попробовал посмотреть что и как, а сразу кинулся вопросы задавать, то ему ответ всегда один - RTFM!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now