Tuto Wiki sur la Sécurité des serveurs

Sans penser à des fichiers en particulier, je crois que des droits plus restreints sur de nombreux fichiers/dossiers seraient un plus.
Comme la règle veut (voudrait) que le pass de l’‘user’ soit en “béton” et que le pass de ‘root’ soit en “béton armé”, pourquoi ne pas réserver les droits, même de lecture à root seulement, quand c’est possible bien sûr ?
Pourquoi y-a-t-il si peu de fichiers en 700, voire 600 :question:

Je m’en doute bien.

Toutefois je me permet de dire qu’un “tuto” sur le wiki avec les bases (ce dont nous avons parlés jusque là) serait une bonne chose.

Beaucoup se posent la question de la sécurité, peu vont aller lire les 300 pages (au moins) de debian.org/doc/manuals/secur … ex.fr.html
Qui l’a fait ici ?
Faire quelques pages avec le minimum syndical ne fera pas double emploi! :wink: [/quote]
Nous nous sommes mal compris. Ce que je veux dire c’est qu’il est impossible d’être exhaustif. Ce qui, je pense, serait plus simple c’est de commencer par parler de concepts simples et généraux, expliqué de manière simple. Par exemple, le principe des droits POSIX, le réseaux (simplement le principe des interface et des ports), les logs et leurs importances, les principaux risques d’attaques et moyens d’entrer dans une machine,…

Bref des trucs qui servent toujours à tout le monde quelque soit les logiciels utilisés.

Ensuite c’est dans un second tant que j’imagine expliquer pour les serveurs les plus classiques comment ajouter de la sécurité.

J’aiderais à hauteur de mes compétences et du temps que je dispose.

Je laisse mûrir pendant quelque temps.
A mon retour si le coeur m’en dit je m’attellerais à ce travail.

Une page de considération
Une page sur la sécurisation en général avec quelques trucs et programmes.
Des pages (ou des paragraphes dans les articles s’ils existent) sur le sécurisation de programmes ouverts sur l’extérieur, avec des liens.

Rien ne vous empêche de commencer pendant que je me dore la pilule… :079

:006

salut

je viens de peaufiner l’install de mod_evasive pour apache

l’installe finale

du cote des logs dans le syslog

Jun 11 15:02:54 facteur mod_evasive[21861]: Blacklisting address 127.0.0.1: possible DoS attack.
Jun 11 15:08:14 facteur mod_evasive[21925]: Blacklisting address 127.0.0.1: possible DoS attack.

sur var/log/mod_evasive/

Salut,

Voici un premier jet du tuto sur la sécurisation d’une machine: isalo.org/wiki.debian-fr/ind … urit%C3%A9

Bonjour,

Pour le sujet, “Alerte login Root”, il suffit d’utiliser un autre shell pour qu’aucune info ne soit transmise :

exemple :

[code]# egrep ALERTE .bashrc
printf “test ALERTE\n”

su -

test ALERTE
PC:~# su - --shell=/bin/dash
#[/code]

Pas d’alerte en dash pour l’exemple mais c’est la meme chose avec ksh ou un autre shell.

Pour que se soit “universelle”, quelque soit le shell, le fichier /etc/profile est toujours lu, je crois.

[quote=“micky979”]Bonjour,

Pour le sujet, “Alerte login Root”, il suffit d’utiliser un autre shell pour qu’aucune info ne soit transmise :

exemple :

[code]# egrep ALERTE .bashrc
printf “test ALERTE\n”

su -

test ALERTE
PC:~# su - --shell=/bin/dash
#[/code]

Pas d’alerte en dash pour l’exemple mais c’est la meme chose avec ksh ou un autre shell.

Pour que se soit “universelle”, quelque soit le shell, le fichier /etc/profile est toujours lu, je crois.[/quote]

Oui…
Mais il faut être root déjà.
Et savoir ce que l’on cherche comme mot…

root@vanille:~# egrep ALERTE .bashrc root@vanille:~#

Bonjour,

Ce que je voulais montrer, c’est qu’il y avait un message ALERTE dans mon bashrc et qu’en me connectant avec le shell bash, le message était bien affiché. Par contre, lorsque je me connecte en dash, je n’ai pas le message d’alerte qui s’affiche.

Je sais pas si je suis plus clair.

[quote=“micky979”]Bonjour,

Ce que je voulais montrer, c’est qu’il y avait un message ALERTE dans mon bashrc et qu’en me connectant avec le shell bash, le message était bien affiché. Par contre, lorsque je me connecte en dash, je n’ai pas le message d’alerte qui s’affiche.

Je sais pas si je suis plus clair.[/quote]

Salut,
Ce n’est pas précisé dans le tuto, mais en fait de connexion root, je pensais à root par SSH, pas un accès direct machine (il faut que je le précise).
Parce que de toutes façons, si quelqu’un a accès physiquement à la machine…

Tu n’as pas directement accès à dash via ssh ?

Bonjour,

Je ne pense pas que tu puisses modifier le shell lancé par SSH pas vu d’option dans ce sens.

Par contre, si le shell par defaut pour le user root est /bin/dash même en SSH ta manipulation ne fonctionnera pas. Il faudrait aussi préciser que ceci ne fonctionne que dans le cas ou le shell est /bin/bash.

Salut,
Merci pour les précisions, j’édite le wiki en conséquence.

Ceci ne marche pas ?

Faites gaffe aussi parce que je présume que ceci marche aussi (enfin c’est à voir il lance peut être un login shell) :

PS: Il faudrait peut être regarder du coté de PAM par ici : kernel.org/pub/linux/libs/p … M_SAG.html (désolé je n’ai pas le temps d’y regarder plus que ça).

Euh … :whistle: … Il y a la possibilités d’effectuer une connexion rsh simple pour changer le shell avant une connexion en SSH pour exécuter un script :whistle:

Ou mieux je cherche dans mes brouillons il me sembler que l’on pouvais attribuer un type de shell pour initier une connexion shell ( il fallait avoir accès à ce type de shell depuis le compte en question … mais je cherche avant de dire une bêtise :unamused: ).

  • EDIT - je retrouve pas et je m’aperçois que j’ai été devancé par MisterFreez :blush:

Bon… Sur ce coup là je vous laisse la main… :017

Je signale tout de même que l’identification SSH devrait se faire par clef.

Edit… Corrigé mes fautes… :mrgreen:

Exact c’est ce que je fais ^^

Et avec un raccourci, c’est encore mieux :
http://www.debian-fr.org/utilisation-de-clefs-et-raccourcis-dans-ssh-t5472.html

Saluts,

A l’intention des protagonistes … :confused:

Je m’intéresse actuellement de très près à sécuriser apache2, pour ce faire, le wiki et ce fil !

Mais, je ne suis pas sur d’avoir tout (bien) compris … :033

[quote=“lol”]4-2) mod_evasive, qui protège le serveur contre les attaques DoS

vi /etc/apache2/mods-available/mod-evasive.conf
ln -s /etc/apache2/mods-available/mod-evasive.conf
/etc/apache2/mods-enabled/mod-evasive.conf

Fichier à paramétrer selon vos besoins:

#taille de la table de surveillance, a augmenter pour les DDoS DOSHashTableSize 2048 #Nb maximum de refresh d'une uri par periode DOSPageCount 5 #Duree de la periode pour la uri DOSPageInterval 1 #Nb maximum de requete sur le site par periode DOSSiteCount 150 #Duree de la periode pour le site DOSSiteInterval 1 #Duree du blacklistage de l'IP reconduite si retentative DOSBlockingPeriod 10 #Execute une action quand une IP est bloquee DOSSystemCommand "/sbin/iptables -I INPUT -s %s -j DROP" #envoie de mail quant une IP est bloquee DOSEmailNotify "admin@localhost" #repertoire des logs DOSLogDir "/var/log/apache2/" #Whitelist non surveillee DOSWhiteList 127.0.0.1 DOSWhitelist 192.168.0.* [/quote] Pour ce que je crois avoir compris ... :confused:

Primo :

_ Créer le fichier /etc/apache2/mods-available/mod-evasive.conf et y joindre ceci :

[quote]
#taille de la table de surveillance, a augmenter pour les DDoS
DOSHashTableSize 2048
#Nb maximum de refresh d’une uri par periode
DOSPageCount 5
#Duree de la periode pour la uri
DOSPageInterval 1
#Nb maximum de requete sur le site par periode
DOSSiteCount 150
#Duree de la periode pour le site
DOSSiteInterval 1
#Duree du blacklistage de l’IP reconduite si retentative
DOSBlockingPeriod 10
#Execute une action quand une IP est bloquee
DOSSystemCommand “/sbin/iptables -I INPUT -s %s -j DROP” ### ???
DOSSystemCommand “/bin/echo %s >> /var/log/mod_evasive/dos_evasive.log && /bin/date >> /var/log/mod_evasive/dos_evasive.log && /sbin/iptables -I INPUT -s %s -j DROP” ### ???

#envoie de mail quant une IP est bloquee
DOSEmailNotify "Mon_adresse@gmail.com"
#repertoire des logs
DOSLogDir “/var/log/apache2/” ### ???
DOSLogDir “/var/log/mod_evasive/” ### ???

#Whitelist non surveillee
DOSWhiteList 127.0.0.1
DOSWhitelist 192.168.0.*
DOSWhitelist xxx.xxx.xxx.xxx #### l’IP de mon serveur ???
[/quote]

#repertoire des logs …
Faut il créer le dossier “/var/log/mod_evasive/” ???

Faut il laissé ces deux lignes tel que :

DOSWhiteList 127.0.0.1 DOSWhitelist 192.168.0.*
Où remplacer “192.168.0.*” par l’IP du serveur ?

Deuxio :

_ Créer ce lien symbolique

ln -s /etc/apache2/mods-available/mod-evasive.conf /etc/apache2/mods-enabled/mod-evasive.conf 

Troisio :

[quote=“gilles974”]pour tester en local
ab -n 1000 -c 100 localhost/

de l’extérieur
ab -n 1000 -c 100 mon-ip-publique/
[/quote]

ab ???

la console me réplique :

-su: ab : commande introuvable

Serait ce une abréviation ?

Où une commande qui dépend d’un paquet que je n’ai pas su identifié ?

Merci … :wink:

Pour ce qui est du local,
ab -n 1000 -c 100 localhost/
tel quel en user fonctionne très bien.

Tout à fait juste ricardo … :wink:

Je n’avais pas testé en local (serveur) … Honte à moi … :confused:

[code]root@ksxxxxxxx:~# ab -n 1000 -c 100 http://localhost/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache
Server Hostname: localhost
Server Port: 80

Document Path: /
Document Length: 177 bytes

Concurrency Level: 100
Time taken for tests: 11.664 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 438000 bytes
HTML transferred: 177000 bytes
Requests per second: 85.73 [#/sec] (mean)
Time per request: 1166.424 [ms] (mean)
Time per request: 11.664 [ms] (mean, across all concurrent requests)
Transfer rate: 36.67 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 21 45.6 0 223
Processing: 54 1099 261.0 1132 2309
Waiting: 49 1060 255.6 1099 2279
Total: 114 1120 243.0 1138 2309

Percentage of the requests served within a certain time (ms)
50% 1138
66% 1184
75% 1207
80% 1221
90% 1289
95% 1379
98% 1515
99% 1856
100% 2309 (longest request)
root@ksxxxxxxx:~#
[/code]

Mais de l’extérieur … :12

root@machine1:~# ab -n 1000 -c 100 http://xxx.xxx.xxx.xxx -su: ab : commande introuvable root@machine1:~#

J’ai manqué un truc ?

man ab