Erastik Опубликовано: 7 серпня, 2007 Опубликовано: 7 серпня, 2007 Добрый день! Подскажите а каким образом в СТГ отделить UA-X от мира?
point Опубліковано: 7 серпня, 2007 Опубліковано: 7 серпня, 2007 в рулисах в отдельное направление кинь а вообще поройся на форуме есть даже готовые скрипты для автоматизации
Erastik Опубліковано: 16 серпня, 2007 Автор Опубліковано: 16 серпня, 2007 Я понимаю что надо отдельное направление, но как его определить вот в чем вопрос...?
zulu_Radist Опубліковано: 16 серпня, 2007 Опубліковано: 16 серпня, 2007 Я понимаю что надо отдельное направление, но как его определить вот в чем вопрос...? IP сети
Erastik Опубліковано: 16 серпня, 2007 Автор Опубліковано: 16 серпня, 2007 Не поверете... Это я тоже понимаю :tongue: Какие группы ip адресов относятся к UA-IX.. Вот в чем вопрос то..
devchaos Опубліковано: 16 серпня, 2007 Опубліковано: 16 серпня, 2007 Лучше всего уточнить у своего вышестоящего провайдера какие сети он относит к украинским но в большинстве своем подойдет http://noc.ix.net.ua/ua-list.txt
Erastik Опубліковано: 16 серпня, 2007 Автор Опубліковано: 16 серпня, 2007 Т.е. если я опишу этот список в рурисах этого будет достаточно?
Erastik Опубліковано: 16 серпня, 2007 Автор Опубліковано: 16 серпня, 2007 Взял за основу скрипт #!/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 Опубліковано: 16 серпня, 2007 Автор Опубліковано: 16 серпня, 2007 Подскажите кто то тестировал этот скрипт?: #!/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 Опубліковано: 17 серпня, 2007 Автор Опубліковано: 17 серпня, 2007 Народ плз выложите кто-то рабочий скрипт который заносит в рулисы все сети... Заранее бесконечно благодарен..
karyon Опубліковано: 17 серпня, 2007 Опубліковано: 17 серпня, 2007 #!/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 Опубліковано: 17 серпня, 2007 Автор Опубліковано: 17 серпня, 2007 #!/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 Опубліковано: 17 серпня, 2007 Автор Опубліковано: 17 серпня, 2007 Заработало!!! Спасибо! Но я его ненмного упростил, а то нехотел работать...
Erastik Опубліковано: 17 серпня, 2007 Автор Опубліковано: 17 серпня, 2007 Толь как лучше сделать что бы он перед тем как заносить правила в рулисы он отчищал файл рулес?? А то он вс слоями накладывает.. Если я буду создавать новый файл к примеру rules2 все заносить туда, а потом что то вроде: mv rules2 rules Это будет корректно?
karyon Опубліковано: 17 серпня, 2007 Опубліковано: 17 серпня, 2007 упрощать нужно с умом 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 Опубліковано: 18 серпня, 2007 Опубліковано: 18 серпня, 2007 Если я буду создавать новый файл к примеру rules2 все заносить туда, а потом что то вроде:mv rules2 rules Это будет корректно? Это будет более, чем корректно.
Erastik Опубліковано: 18 серпня, 2007 Автор Опубліковано: 18 серпня, 2007 Вот конечный результат скрипта, работает на 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
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас