..                     ,.-..                     ,..,                                   
      |  |                  .`     `.                  |    |                                  
      |''|                  |`'---'`|                  |`'-`|                                  
      |<<|                  | _____ |             _,,..|[}{]|.,,,                              
    _,|<<|,,                | \ D / |         ,-``     |[}{]|    ``',                          
  .`  `..'  `.              |  |A|  |         |-,,     ``--''    _,-'|                         
  | `''--''` |              |  |T|  |         |   ``'''------''``    |                         
  |  [ 10 ]  |              |  |A|  |         |     [ Mindkind ]     |                         
  `.   ~~   .'              | /   \ |         `-,,    ] 1010 [   _,-'                          
    `''--''`      _,,,,,,...||  C  ||.....,,,,,,_ ``'''------''```                             
      |<<|.-''```` _,,,,,...|[  O  ]|...,,,,,,_  ```''-|[}{]|                                  
    ,```   .,-''```         |[  R  ]|          ``''-., |[}{]|,                                 
   |      `.        _,,,,...||  E  ||...,,,,,         '|[}{]| |                                
   |`-,_   `'-.,,_,`********| \   / |********`._,,.-'` |[}{]|'|                                
   |    `''-.,,,_ `````'''''---------'''''`````  _,,,.-|[}{]| |                                
   |`-,_         `````''''''---------'''''''`````      |[}{]|'|                                
   |    `''[                                          ]|[}{]| |                                
   |`-,_   [        Securisation dune FreeBSD         ]|[}{]|'|                                
   |    `''[                                         ] |[}{]| |                                
    `-,_        [                              ]  _,,..|[}{]|.,,,                              
      |<;`'-.,,,_                             ,-``     |[}{]|    ``',                          
    ,`     ;     ```;;;;;;;;---------;;;;;;;;;|-,,     ``--''    _,-'|                         
   |`-,_   `'-.,,_,`********|[ !?! ]|********`|   ``'''------''``    |                         
   |`-,_`''-.,,,_ `````'''''---------'''''````|     ]    Oda   [     |                         
   |`-,_`''-.,,, `````''''''---------'''''''```-,,               _,-'                          
    `-,_`''-.,,,[                                ]``'''------''``                              
      |<`|'-.,,,_[                              ]_,,,.-|[}{]|                                  
      |<<|       `````''''''---------'''''''`````      |[}{]|                                  
      |<<|                  |]Aka: [|                  |[}{]|                                  
      |<<|             ___,,| _____ |....--------------|[}{]|,,,,,,,,,,__                      
      |<<|,,.--'''`````   __| \ D / |....--------------|[}{]|,,,,,,,,_   `````'''--..,,_       
  _.-'``       ,,.--'`````  |  |A|  |                  |[}{]|         `````''-.,,       ``'-., 
 ;           -`             |  |T|  |,.....----------..|[}{]|,,,_                `'           ;
 |`'-.,,       `''-..,,,_.-`|  |A|  |******************|[}{]|****````-_,,,,,.--'`       _,,-'`|
 |      ```''--..,,,,,_   ```````''''''''--------------''''''''```````   __,,,,..--''```      |
 |                     ````````''''''''''--------------''''''''''````````                     |
 |                                                                                            |



 Après avoir installé un FreeBSD la grande question est à présent : comment la sécurise un peu 
plus qu'elle ne  l'est déjà??


 

I) Changement de cryptage par défaut de mot de passe utilisateur :


    Par défaut FreeBSD propose le cryptage md5 pour les mots de passe. Or l'OS propose le 
Blowfisg pour modifier le cryptage fait un vi /etc/login.conf et modifiez ceci :
    
   :passwd_format=md5:\




 par
   
   :passwd_format=blf:\


 

    Voila a present pour que les modifs soient prises en compte faites :
    cap_mkdb /etc/login.conf

    À présent il faut préciser a la commande adduser que l'on a modifié de cryptage pour cela 
    ajouter la ligne suivante dans /etc/auth.conf :

    crypt_default = blf

 Maintenant il n'y a plus qu'a modifier vos mots de passe via passwd pour que le nouveau cryptage 
soit pris en compte.



 

II) Niveau de sécurité du noyau :

II-1) Characteristique chflags :

Il est possibles sous freeBSD d'interdire certaines actions sur des fichiers mêmes à root. Cela peut s'avérer utiles par exemple dans le cas ou les fichiers de log ne peuvent être supprimer, dans ce cas sur une machine compromise le hacker devenu root ne pourra supprimer ces traces... Il existe differents degre de protection : arch : le fichier devient une archive sappend : on ne peut que rajouter des donnes a un fichier plus en retire (cas de mon exemple pour les log) schg : empêche la suppression + changement de droits sur le fichier sunlnk : empêche la suppression du fichier Pour modifier un attribut il suffit de faire : chflags sappend /var/log/*.log Pour retirer un attribut : chflags nosappend /var/log/*.log

II-2) Niveau de sécurité :

Sous FreeBSD il existe plusieurs niveaux de sécurité kernel : niveau -1 : valeur par default niveau 0 : les files chflags du type schg et sappend peuvent être retirés niveau 1 : les files chflags du type schg et sappend ne peuvent pas être retirés /dev/mem et /dev/kmem est interdit en ecriture impossible de charger des modules kernels niveau 2 : idem que niveau 1 avec en plus que seul le montage et démontage des disques sont permit niveau 3 : idem a 2 impossible de modifier les règles du pare-feu Pour choisir un niveau de sécurité ajouter une ligne de ce type dans le fichier /etc/rc.conf kern_securelevel_enable="YES" kern_securelevel="X" Ou X est un des chiffres ci-dessus. Pour modifier un secoure level a chaud il suffit de faire sysctl kern.securelevel=X Toujours avec X un des chiffres du dessus.

II-3) Etude de cas :

Pour ceux qui n'aurait pas bien saisi le but de ces options voici un exemple concret : Sur la machine je fait un chflags sappend /var/log/*.log ce qui rend les logs indestructibles, si je laisse le kernel par default en niveau -1, un utilisateur devenu root pourra retire la protection par contre en secure level a 1 ou plus même root ne pourra retirer ces arguments et donc ne pourra pas effacer ces traces.

III) Sysctl :

Sysctl permet de modifier les comportements du système, un sysctl -a vous liste tout ce qui peut être modifié : Voici quelques exemples bien pratiques : - security.bsd.see_other_uids : si la valeur est a 0 les utilisateurs ne verront que leur propre precessus lors d'un ps et pas ceux de root ou des autres utilisateur. - net.inet.udp.log_in_vain : si la valeur est a 1, dans /var/log/message apparaitra les tentatives de connexion sur les ports qui ne sont pas en écoute sur votre machine. - net.inet.tcp.log_in_vain : idem pour tcp - net.inet.tcp.blackhole : permets de ne pas répondre au packet en erreur - net.inet.udp.blackhole: idem pour udp - net.inet.ip.random_id : si la valeur est a 1, permet d'incrémenter les packet de maniere aléatoire et pas de 1 en 1 - net.inet.ip.ttl : modifie le ttl d'un packet Pour eviter qu'un utilisateur sature votre serveur regardez aussi du cote de : - kern.maxprocperuid - kern.maxfilesperproc - kern.maxfiles - kern.ipc.somaxconn - kern.ipc.maxsockbuf Pour éviter de setter les paramètres a chaque démarrage mettez les en place dans /etc/sysctl.conf qui sera lu au boot de la machine.

IV) Jail :

Une jail est une prison cela sert a enfermer vos services dans un chroot évolué disposant de sa propre adresse ip. Cela permet qu'en cas d'attaque de votre serveur web le reste de la machine soit sain. Isoler les services est primordial. Si le hacker arrive a etre root sur votre jail il ne l'a pas sur le système en entier. Pour créer une jail (qui se rapport a un pseudo machine virtuelle) voici le procédé : cd /usr/src mkdir /prison make world DESTDIR=/prison make distribution DESTDIR=/prison À partir de la tout un OS se créer dans /prison Pour lance la prison faite : ifconfig ral0 inet alias 192.168.0.69 netmask 255.255.255.0 #pour créer la prison sur l'adresse 192.168.0.69 modifiée ral0 par votre interface reseau /sbin/mount_devfs devfs /prison_challenge/dev # créer les devices de la jail /usr/sbin/jail /prison_challenge/ prison_challenge 192.168.0.69 /bin/sh /etc/rc #lance la jail et les services Pour accéder a la jail et modifier ces parametres la commande : /usr/sbin/jail /prison_challenge/ prison_challenge 192.168.0.69 /bin/sh Vous ouvre directement un sh dans votre prison.... Voilà quelques cartes vous permettant de sécuriser un peu votre machine et de bien isole les services en cas de compromission du système. UNE VERSION AVEC SCREENSHOT EST DISSPONIBLE SUR
http://www.hackever.org Écrit par Oda __ __ __ _____ / / / /___ ______/ /_|__ / _____ _____ / /_/ / __ `/ ___/ //_//_ < | / / _ \/ ___/ / __ / /_/ / /__/ ,< ___/ / |/ / __/ / /_/ /_/\__,_/\___/_/|_/____/|___/\___/_/ - (c)Hack3ver - All rights reversed.