Erastik Опубликовано: August 7, 2007 at 08:36 Опубликовано: August 7, 2007 at 08:36 Добрый день! Подскажите а каким образом в СТГ отделить UA-X от мира?
point Опубліковано: August 7, 2007 at 10:22 Опубліковано: August 7, 2007 at 10:22 в рулисах в отдельное направление кинь а вообще поройся на форуме есть даже готовые скрипты для автоматизации
Erastik Опубліковано: August 16, 2007 at 11:37 Автор Опубліковано: August 16, 2007 at 11:37 Я понимаю что надо отдельное направление, но как его определить вот в чем вопрос...?
zulu_Radist Опубліковано: August 16, 2007 at 11:38 Опубліковано: August 16, 2007 at 11:38 Я понимаю что надо отдельное направление, но как его определить вот в чем вопрос...? IP сети
Erastik Опубліковано: August 16, 2007 at 12:30 Автор Опубліковано: August 16, 2007 at 12:30 Не поверете... Это я тоже понимаю :tongue: Какие группы ip адресов относятся к UA-IX.. Вот в чем вопрос то..
devchaos Опубліковано: August 16, 2007 at 12:53 Опубліковано: August 16, 2007 at 12:53 Лучше всего уточнить у своего вышестоящего провайдера какие сети он относит к украинским но в большинстве своем подойдет http://noc.ix.net.ua/ua-list.txt
Erastik Опубліковано: August 16, 2007 at 13:04 Автор Опубліковано: August 16, 2007 at 13:04 Т.е. если я опишу этот список в рурисах этого будет достаточно?
Erastik Опубліковано: August 16, 2007 at 17:40 Автор Опубліковано: August 16, 2007 at 17:40 Взял за основу скрипт #!/usr/bin/perl # Update UA-IX network. use LWP; $file="/etc/stargazer/rules"; open(FD,">$file") or die "Error open file"; my $ua=LWP::UserAgent->new(); $ua->agent("PerlUA/0.1"); my $url="http://www.colocall.net/ua/prefixes.txt"; my $document=$ua->request(HTTP::Request->new(GET => $url)); if ($document->is_success){ open(FD,">$file") or die "Error open file"; $uaix=($document->content); @uaix = split /\n/,$uaix; }else{ print ("Error get UA-IX list"); exit; } foreach $ip (@uaix){ print (FD "ALL $ip DIR0\n"); } print (FD "ALL 0.0.0.0/0 DIR1\n"); system ("/usr/bin/killall -1 stargazer"); но он не загружается
Erastik Опубліковано: August 16, 2007 at 18:41 Автор Опубліковано: August 16, 2007 at 18:41 Подскажите кто то тестировал этот скрипт?: #!/usr/bin/perl use Shell qw(ls); use Shell qw(mv); use Shell qw(wget); use Shell qw(cp); use Shell qw(cmp); use Shell qw(killall); $dir=ls("./ua-ix.txt"); if ($!) { $aft=TRUE; mv("./ua-ix.txt", "./ua-ix.old"); $file='ua-ix.txt'; $fileout='star-uaix'; open(FILE, "$file") or die "Can't open file: $!"; @nets=<FILE>; close FILE; open(FILEOUT, ">$fileout") or die "Can't open file: $!"; # В следующей строчек лок. сетки, пишите свои! print FILEOUT "ALL\t10.0.0.0/8\tNULL\n"; foreach $_ (@nets_loc) { chomp($_); if(/^\d/){ if(/\/\d\d$/){ $_=~s/\/32/\t/; print FILEOUT "ALL\t", $_,"\tNULL\n";} }} foreach $_ (@nets) { chomp($_); if(/^\d/){ if(/\/\d\d$/){ print FILEOUT "ALL\t", $_, "\tDIR2\n";} else {print FILEOUT "ALL\t", $_,"\/24","\tDIR2\n";} }} print FILEOUT "ALL\t255.255.255.255\tNULL\n"; print FILEOUT "ALL\t0.0.0.0/0\tDIR3\n"; close FILEOUT; $compare2=cmp("star-uaix", "rules"); if ($!) { $aft=TRUE; print "No change\n"; } else { #print "Have change\n"; mv("star-uaix", "rules"); killall ("-1", "stargazer"); }
Erastik Опубліковано: August 17, 2007 at 07:05 Автор Опубліковано: August 17, 2007 at 07:05 Народ плз выложите кто-то рабочий скрипт который заносит в рулисы все сети... Заранее бесконечно благодарен..
karyon Опубліковано: August 17, 2007 at 07:14 Опубліковано: August 17, 2007 at 07:14 #!/bin/sh PATH=/sbin:/bin:/usr/bin cd /etc/uaixwall wget http://www.colocall.net/ua/prefixes.txt -O prefixes2.txt LINES_C=`cat /etc/uaixwall/prefixes2.txt|wc -l` if [ "$LINES_C" -ge 500 ] then mv prefixes2.txt prefixes.txt else echo "\nCan't load prefixes from colocall. Didn't modify UA-IX rules\n" exit fi IPFILE=/etc/uaixwall/prefixes.txt ############# echo "ALL 192.168.0.0/16 DIR2" >/etc/stargazer/rules echo "ALL 10.0.0.0/8 DIR2">>/etc/stargazer/rules grep -e "^[0-9]" $IPFILE | awk '{ if (index($0,"/")==0) { print $0"/24" } else { print $0 } }' | while read ip; do if [ $ip <> NULL ] then echo "ALL $ip DIR1" >>/etc/stargazer/rules fi done echo "ALL 0.0.0.0/0 DIR0" >>/etc/stargazer/rules /etc/init.d/stargazer reload ----------------------------------------------------- Должен работать..
Erastik Опубліковано: August 17, 2007 at 08:17 Автор Опубліковано: August 17, 2007 at 08:17 #!/bin/shPATH=/sbin:/bin:/usr/bin cd /etc/uaixwall wget http://www.colocall.net/ua/prefixes.txt -O prefixes2.txt LINES_C=`cat /etc/uaixwall/prefixes2.txt|wc -l` if [ "$LINES_C" -ge 500 ] then mv prefixes2.txt prefixes.txt else echo "\nCan't load prefixes from colocall. Didn't modify UA-IX rules\n" exit fi IPFILE=/etc/uaixwall/prefixes.txt ############# echo "ALL 192.168.0.0/16 DIR2" >/etc/stargazer/rules echo "ALL 10.0.0.0/8 DIR2">>/etc/stargazer/rules grep -e "^[0-9]" $IPFILE | awk '{ if (index($0,"/")==0) { print $0"/24" } else { print $0 } }' | while read ip; do if [ $ip <> NULL ] then echo "ALL $ip DIR1" >>/etc/stargazer/rules fi done echo "ALL 0.0.0.0/0 DIR0" >>/etc/stargazer/rules /etc/init.d/stargazer reload ----------------------------------------------------- Должен работать.. Ок. Спасибо буду пробывать..
Erastik Опубліковано: August 17, 2007 at 18:31 Автор Опубліковано: August 17, 2007 at 18:31 Заработало!!! Спасибо! Но я его ненмного упростил, а то нехотел работать...
Erastik Опубліковано: August 17, 2007 at 18:39 Автор Опубліковано: August 17, 2007 at 18:39 Толь как лучше сделать что бы он перед тем как заносить правила в рулисы он отчищал файл рулес?? А то он вс слоями накладывает.. Если я буду создавать новый файл к примеру rules2 все заносить туда, а потом что то вроде: mv rules2 rules Это будет корректно?
karyon Опубліковано: August 17, 2007 at 20:37 Опубліковано: August 17, 2007 at 20:37 упрощать нужно с умом echo "ALL 192.168.0.0/16 DIR2" >/etc/stargazer/rules echo "ALL 10.0.0.0/8 DIR2">>/etc/stargazer/rules в первой строчке echo "ALL 192.168.0.0/16 DIR2" >etc/stargazer/rules файл создается заново
vop Опубліковано: August 18, 2007 at 16:04 Опубліковано: August 18, 2007 at 16:04 Если я буду создавать новый файл к примеру rules2 все заносить туда, а потом что то вроде:mv rules2 rules Это будет корректно? Это будет более, чем корректно.
Erastik Опубліковано: August 18, 2007 at 17:57 Автор Опубліковано: August 18, 2007 at 17:57 Вот конечный результат скрипта, работает на 100 %, единственное что он не проверяет были ли изменения в файле со списком адресов, и постоянно его заменяет по новой.. #!/bin/sh PATH=/sbin:/bin:/usr/bin cd /etc/uaixwall fetch http://www.colocall.net/ua/prefixes.txt...####### echo "ALL 10.0.0.0/24 DIR2">>/etc/stargazer/rules2 grep -e "^[0-9]" $IPFILE | awk '{ if (index($0,"/")==0) { print $0"/24" } else { print $0 } }' | while read ip; do if [ $ip <> NULL ] then echo "ALL $ip DIR1" >>/etc/stargazer/rules2 fi done echo "ALL 0.0.0.0/0 DIR0" >>/etc/stargazer/rules2 mv /etc/stargazer/rules2 /etc/stargazer/rules /usr/sbin/stargazer /etc/stargazer/stargazer.conf reload
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас