Scripts amusants

Je me suis aperçu que depuis quelques temps beaucoup de tentatives de connexion (par exemple sur le port 23) étaient originaires du Vietnam. 
Sur mon pare-feu f'ai la possibilité de "bloquer" les IP d'un pays entier et le Vietnam a rejoint la Russie et la Chine dans la liste des pays bloqués. 
J'ai voulu établir un petit palmarès des IP ayant tenté au moins une connexion, Ces adresses IP sont enregistrées par Ntop et un petit script personnel stocke les IP enrichies dans une table spécifique. 
J'ai créé une table des pays "bloqués" au niveau du parefeu :

create table PAYS_BLOQUE 
(CODPAYS        char(2) 
) 
engine MyISAM; 
insert into PAYS_BLOQUE (CODPAYS) values ('CN'); 
insert into PAYS_BLOQUE (CODPAYS) values ('RU'); 
insert into PAYS_BLOQUE (CODPAYS) values ('VN');; 
insert into PAYS_BLOQUE (CODPAYS) values ('HK'); 
insert into PAYS_BLOQUE (CODPAYS) values ('BR'); 
commit;

En combinant cette "nouvelle" table avec la table "IPV4_DOMAINE" par un ordre SQL amusant :

select xx.CODPAYS,xx.CTR, 
        (case pb.CODPAYS 
        when pb.CODPAYS is null  then    'BLOQUE' 
        else '' end) BLOQUE 
from 
    (select CODPAYS,COUNT(*) CTR 
    from IPV4_DOMAINE 
    group by 1 
    ) xx 
left join PAYS_BLOQUE pb on (xx.CODPAYS = pb.CODPAYS )     
where xx.CTR > 150 
order by 2 desc ;

on obtient le palmarès suivant :

+---------+------------------------+------+--------+ 
| CODPAYS | FR_NOM                 | CTR  | BLOQUE | 
+---------+------------------------+------+--------+ 
| US      | États-Unis             | 2757 |        | 
| CN      | Chine                  | 1317 | BLOQUE | 
| VN      | Viet Nam               | 1279 | BLOQUE | 
| BR      | Brésil                 | 1093 | BLOQUE | 
| FR      | France                 |  828 |        | 
| KR      | République de Corée    |  590 |        | 
| TW      | Taïwan                 |  562 |        | 
| RU      | Fédération de Russie   |  558 | BLOQUE | 
| IN      | Inde                   |  434 |        | 
| TR      | Turquie                |  321 |        | 
| NL      | Pays-Bas               |  266 |        | 
| CO      | Colombie               |  236 |        | 
| RO      | Roumanie               |  223 |        | 
| DE      | Allemagne              |  211 |        | 
| PH      | Philippines            |  166 |        | 
+---------+------------------------+------+--------+ 
15 rows in set, 4 warnings (1,93 sec)

Les pays bloqués sont parmi les leaders en nombre d'IP ayant tenté d'établir des connexions. 
Plus de 1300 adresses chinoises , presque 1300 adresses vietnamiennes et plus de 1000 adresses brésiliennes ont tenté de se connecter et ont été rejetées par le parefeu. 
J'ai controlé par ailleurs qu'aucune adresse de ces pays n'avait recu un octet en retour (sum(OUT_BYTES)) reste à zéro. On voit aussi dans ce tableau que les russes sont en baisse, ils se consacrent probablement à des activités plus "rentables" que de tenter de pénétrer les machines des autres. 
Les brésiliens, comme les vietnamiens sont relativement nouveaux mais arrivent fort eux aussi. 
Pour s'amuser un peu plus et voir quels ports sont les plus utilisés voir ici. 
J'ai utilisé ici encore une nouvelle table pour avoir les noms des pays en clair :

desc PAYS; 
+-----------+-------------+------+-----+---------+-------+ 
| Field     | Type        | Null | Key | Default | Extra | 
+-----------+-------------+------+-----+---------+-------+ 
| CODPAYS   | char(2)     | NO   | PRI |         |       | 
| CODPAYS_3 | char(3)     | YES  |     | NULL    |       | 
| ENG_NAME  | varchar(40) | YES  |     | NULL    |       | 
| FR_NOM    | varchar(40) | YES  |     | NULL    |       | 
+-----------+-------------+------+-----+---------+-------+

Cette table ("dump" Mysql) est disponible ici en téléchargement.