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...