Tema: Re: IP adresai
Autorius: ABLomas
Data: 2011-02-28 19:58:46
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...