Panašiai darau, bet kai daugiau nei 80 portas tai fw pusę minutės persikraudinėja. Reiks sprręsti kažkaip kitaip. WHITELIST: YEAR=`date +%Y` FILENAME=`date +delegated-ripencc-%Y%m%d` wget -c ftp://ftp.ripe.net/ripe/stats/$YEAR/$FILENAME.bz2 bzip2 -d $FILENAME.bz2 grep -i "|LT|ipv4|" $FILENAME | awk -F"|" '{print $4 "/" int(32 - log($5)/log(2))}' > whitelist.txt #------------------------------------------------------ PORTS="80 443" # 80-http 88-nagios 1194-openvpn echo "4. Atidaromi portai $PORTS pagal whitelist.txt" for IP in $WHITELIST do for PORT in $PORTS do /sbin/iptables -A INPUT -s $IP -p tcp --dport $PORT -j ACCEPT /sbin/iptables -A OUTPUT -d $IP -p tcp --sport $PORT -j ACCEPT /sbin/iptables -A FORWARD -s $IP -p tcp --sport $PORT -j ACCEPT done done On 02/28/2011 07:58 PM, ABLomas wrote: > On 2011.02.28 15:20, Info wrote: >> Ar yra kazkoks budas uzdropinti visus ip adresus, iskyrus tik >> lietuvos, pvz. noriu uzblokuoti 80 porta, kad tik is lietuvos ip >> galetu jungtis 80 portu. > > Na tai žinoma kad yra.... > >> kokia iptables taisykle naudoti... > > Vien su iptables išsiversi, bet paskui užsipi$i mantainint.... > > O ne paprasčiau yra kad ir su kokiu perlo skriptuku, kuris konvertina iš > RIPE paduodamo formato pasigamint ipset rinkinį, kurį paskui jau > paprasta tvarkyt? Pvz. kad ir taip: > > #!/usr/bin/perl > use Net::Netmask; > > my $ipset = "/usr/sbin/ipset"; # Naudojau ir savo kompilinta versija > my $lt_net = "lt_networks"; # potinklio, kur bus sudedami visi lt > networkai pavadinimas > my $net = "ALLOCATED PA"; # Skiriamasis pozymis RIPE DB > > system "$ipset --destroy $lt_net"; > system "$ipset --create $lt_net nethash"; > open ALIST, "<", "alloclist.txt" or die $!; > while(<ALIST>) > { > $text .= $_; > } > close(ALIST); > $ltnet= $1 if $text =~ m|^lt\.(.*)^lt\.|ms; > @nets = split(/\n/, $ltnet); > foreach (@nets) { > if ($_ =~ m/$net$/){ > split; > $sysnet = new Net::Netmask ($_[1]); > system "$ipset --add $lt_net $sysnet"; > } > } > > (sąrašus gali iš RIPE FTP pasiimt su wget, ar kad ir tuo pačiu perl'u: > Use LWP::Simple; > getstore("ftp://ftp.ripe.net/pub/stats/ripencc/membership/alloclist.txt", "alloclist.txt") > > ) > > O toliau jau paprasta... > > iptables -I OUTPUT -p icmp -m set --set \! lt_networks dst -j LOG > --log-prefix "NOT LT NET: " > iptables -I OUTPUT -p icmp -m set --set lt_networks dst -j LOG > --log-prefix "LT NETWORK: " > > Ką daryt su gatavom ipset rūšiavimo taisyklėm manau susiprasi...