Câline voire un peu trop !!!
Mais c'était sans compter la puissance de l'Os du bien !!!

Résumé des épisodes précédents!!

Il y a quelques années, le héros[1] décida de s'installer dans sa magnifique forteresse FreeBSD au beau milieu de la jungle Internet.
Comme toute forteresse, il y a une porte car il faut bien rentrer, surtout quand on est sorti.
Et oui, le héros, de temps en temps, il va se balader dehors car c'est un être sociable et ouvert vers l'extérieur.
A sa forteresse, il construit donc une porte avec joli pont-levis[2]. Sur la porte, qui bizarrement s'appelle la porte est-ce, est-ce H ? et qui porte le numéro 22, il y a écrit :

*************************************
* Vous arrivez sur un serveur          *
* sécurisé. Vos connexions seront *
* journalisées. En cas d'erreur,      *
* veuillez vous déconnecter            *
*************************************

Déjà, là, ça devrait faire peur au pékin[3] moyen. Mais notre héros n'en reste pas là où n'importe quel sysadmin se serait arrêté.
Déjà, il a une p....n de muraille !!! Et sur la porte, il y a un premier niveau pour filtrer les donneurs de mot de passe.

table <ssh-bruteforce> persist file "/etc/pf.table.fail2ban"
block in quick from <ssh-bruteforce>
pass in quick on $ext_if proto tcp from any to ($ext_if) port ssh flags S/SA keep state \
  ( max-src-conn 100, max-src-conn-rate 3/10, overload <ssh-bruteforce> flush global)

Bon, à la grosse, pas plus de 100 connexions et surtout pas plus de 3 connexions toutes les dix secondes sinon, zou ! Dans la table des brutus [4] !
Mais tout ça ne suffit pas !! Le donneur de mot de passe doit connaître le mot de passe du moment qui n'a rien à voir avec une mode quelconque. Notre héros est vraiment très fort ! D'ailleurs, le coup du mot de passe, c'est expliqué ici et .
Voilà pour le résumé[5] !

La nuit arrive!!

Hier, notre héros vaquait à ses occupations de héros[6], jetant un oeil au célèbre fichier auth.log de temps à autre pour n'y voir que des choses habituelles dans la jungle

Jul  5 22:11:13 coruscant sshd[85637]: Did not receive identification string from 190.41.51.138
Jul  5 22:14:08 coruscant sshd[87108]: Invalid user tomcat from 190.41.51.138
Jul  5 22:14:08 coruscant sshd[87108]: error: PAM: user account has expired for illegal user tomcat from 190.41.51.138
Jul  5 22:14:08 coruscant sshd[87108]: Failed keyboard-interactive/pam for invalid user tomcat from 190.41.51.138 port 56667 ssh2

En clair, un minet péruvien cherchant un domicile pour la nuit.
Je vous vois venir, vous vous dites :

La nuit, tous les chats sont gris, pas péruviens

Certes mais notre héros dispose du célèbre T'es qui ? matérialisé dans l'Os du Bien par la commande whois

coruscant# whois 190.41.51.138
[SNIPPET]
NetRange:       190.0.0.0 - 190.255.255.255
CIDR:           190.0.0.0/8
OriginAS:
NetName:        NET190
NetHandle:      NET-190-0-0-0-1
Parent:
NetType:        Allocated to LACNIC
Comment:        This IP address range is under LACNIC responsibility for further
Comment:        allocations to users in LACNIC region.
Comment:        Please see http://www.lacnic.net/ for further details, or check the
Comment:        WHOIS server located at http://whois.lacnic.net
RegDate:        2005-06-17
Updated:        2010-07-21
Ref:            http://whois.arin.net/rest/net/NET-190-0-0-0-1

OrgName:        Latin American and Caribbean IP address Regional Registry
OrgId:          LACNIC
Address:        Rambla Republica de Mexico 6125
City:           Montevideo
StateProv:
PostalCode:     11400
Country:        UY
RegDate:        2002-07-27
Updated:        2007-01-09
Ref:            http://whois.arin.net/rest/org/LACNIC

[SNIPPET]
% Copyright LACNIC lacnic.net
%  The data below is provided for information purposes
%  and to assist persons in obtaining information about or
%  related to AS and IP numbers registrations
%  By submitting a whois query, you agree to use this data
%  only for lawful purposes.
%  2011-07-06 16:58:39 (BRT -03:00)

inetnum:     190.41.51.128/25
status:      reallocated
owner:       PE-TDPERX10-LACNIC
ownerid:     PE-PETD14-LACNIC
responsible: TELEFONICA DEL PERU
address:     SAN FELIPE, 1144, SURQUILLO
address:     34 - LIMA -
country:     PE
phone:       +51 1 2105577 []
owner-c:     GRT2
tech-c:      GRT2
abuse-c:     GRT2
created:     20061004
changed:     20061004
inetnum-up:  190.41.48/21
inetnum-up:  190.41.0/17
[SNIPPET]

Il est décidément très fort le héros !!
Jusque là, pas de problème. Mais tout à coup, le voilà assailli par une horde de Tongs[7]

Jul  5 22:32:50 coruscant sshd[51950]: User root from 210.51.191.232 not allowed because not listed in AllowUsers
Jul  5 22:32:51 coruscant sshd[51950]: fatal: Internal error: PAM auth succeeded when it should have failed
Jul  5 22:32:57 coruscant sshd[51962]: User root from 210.51.191.232 not allowed because not listed in AllowUsers
Jul  5 22:32:58 coruscant sshd[51962]: fatal: Internal error: PAM auth succeeded when it should have failed

Une fois de plus, c'est whois qui donne la localisation

[SNIPPET]
inetnum:      210.51.176.0 - 210.51.191.255
netname:      CNC-BJ-IDC
country:      CN
descr:        Beijing YiZhuang IDC of China Netcom
admin-c:      CH140-AP
tech-c:       TJ35-AP
status:       ALLOCATED NON-PORTABLE
changed:      cncipaddr@china-netcom.com 20040227
mnt-by:       MAINT-CN-ZM28
mnt-lower:    MAINT-CN-BJIDC
source:       APNIC

route:        210.51.0.0/16
descr:        CNC Group CncNet
country:      CN
origin:       AS9929
mnt-by:       MAINT-CNCGROUP-RR
changed:      abuse@cnc-noc.net 20060330
source:       APNIC
[SNIPPET]

Il est temps de contre-attaquer... Enfin surtout de contrer :D

La muraille de Chine!!

Voyant ça pour la seconde fois, le héros décida d'intervenir et tout alla très vite :

coruscant# pfctl -t badAddresses -T add 210.51.191.232
1/1 addresses added
coruscant# pfctl -k 210.51.191.232
killed 1 states from 1 sources and 0 destinations

Pour info, la table badAddresses sert à ça

block in log quick on $ext_if from  <badAddresses> to any
block out log quick on $ext_if from any to <badAddresses>

Elle contient à la fois les vilains et les adresses forgées. Et voilà, décidément, il est fort le héros... C'est pour ça que c'est un héros !!
Sa forteresse sembla alors aussi tranquille que la cité interdite protégée par la grande muraille de Chine.

Générique!!

Par ordre d'apparition :

  • Le héros sans qui rien n'aurait été possible,
  • FreeBSD sans qui rien n'aurait été possible,
  • OpenSSH sans qui il n'y aurait jamais eu de problème de tentatives d'intrusion,
  • Packet Filter,
  • Le chat péruvien,
  • Les hordes de Tongs,
  • mail.lakecityheattreating.com (finalement coupé au montage)
  • Le Squad sans qui rien ne serait ce qu'il est... ou pas.[8]

Notes

[1] Moi ! Je préfère préciser tout de suite pour les lecteurs qui, au bout de 10 minutes de lecture, n'auraient toujours pas compris

[2] Rien à voir avec les jeans

[3] Première allusion à la Chine, histoire de vous mettre en bouche

[4] Faudra quand même que je relise de plus près parce que là, j'ai un doute sur le fonctionnement :D

[5] Là, vous vous dites : Si ça, c'est un résumé, bonjour l'article

[6] En clair, recompilait moultes ports

[7] Ok, celui-là, je l'avoue, il est pas classe comme mot pour désigner les Asiatiques

[8] Et puis comme ça, j'aurais peut-être encore le droit à un lien :D