• Serveurs
  • [Discussion] : Sécurisation & Logs {nginx} {lighttpd}

A la suite du tuto sur la sécurisation, plus précisément dans dans la partie :
Test :
rkhunter -c --sk
Note de @XciD69: Vous obtiendrez des faux positifs, poster-les, je vous aiderai à les résoudre.
J'ai semble t'il quelques faux positifs :
    /usr/bin/unhide.rb                                       [ Warning ]
  Performing Linux specific checks
    Checking loaded kernel modules                           [ Warning ]
    Checking kernel module names                             [ Warning ]

Checking the network...

  Performing checks on the network ports
    Checking for backdoor ports                              [ Warning ]
    Checking for hidden ports                                [ Skipped ]
C'est grave docteur ?
Je ne pense pas, j'ai la même chose en Netboot chez OVH.
je crois que j'ai un faux positif. La seule erreur que j'ai eu durant le scan
Performing file properties checks
    Checking for prerequisites                               [ OK ]
    /usr/sbin/adduser                                        [ OK ]
    /usr/sbin/chroot                                         [ OK ]
    /usr/sbin/cron                                           [ OK ]
    /usr/sbin/groupadd                                       [ OK ]
    /usr/sbin/groupdel                                       [ OK ]
    /usr/sbin/groupmod                                       [ OK ]
    /usr/sbin/grpck                                          [ OK ]
    /usr/sbin/nologin                                        [ OK ]
    /usr/sbin/pwck                                           [ OK ]
    /usr/sbin/rsyslogd                                       [ OK ]
    /usr/sbin/tcpd                                           [ OK ]
    /usr/sbin/useradd                                        [ OK ]
    /usr/sbin/userdel                                        [ OK ]
    /usr/sbin/usermod                                        [ OK ]
    /usr/sbin/vipw                                           [ OK ]
    /usr/bin/awk                                             [ OK ]
    /usr/bin/basename                                        [ OK ]
    /usr/bin/chattr                                          [ OK ]
    /usr/bin/curl                                            [ OK ]
    /usr/bin/cut                                             [ OK ]
    /usr/bin/diff                                            [ OK ]
    /usr/bin/dirname                                         [ OK ]
    /usr/bin/dpkg                                            [ OK ]
    /usr/bin/dpkg-query                                      [ OK ]
    /usr/bin/du                                              [ OK ]
    /usr/bin/env                                             [ OK ]
    /usr/bin/file                                            [ OK ]
    /usr/bin/find                                            [ OK ]
    /usr/bin/groups                                          [ OK ]
    /usr/bin/head                                            [ OK ]
    /usr/bin/id                                              [ OK ]
    /usr/bin/killall                                         [ OK ]
    /usr/bin/last                                            [ OK ]
    /usr/bin/lastlog                                         [ OK ]
    /usr/bin/ldd                                             [ OK ]
    /usr/bin/less                                            [ OK ]
    /usr/bin/locate                                          [ OK ]
    /usr/bin/logger                                          [ OK ]
    /usr/bin/lsattr                                          [ OK ]
    /usr/bin/lsof                                            [ OK ]
    /usr/bin/mail                                            [ OK ]
    /usr/bin/md5sum                                          [ OK ]
    /usr/bin/mlocate                                         [ OK ]
    /usr/bin/newgrp                                          [ OK ]
    /usr/bin/passwd                                          [ OK ]
    /usr/bin/perl                                            [ OK ]
    /usr/bin/pgrep                                           [ OK ]
    /usr/bin/pkill                                           [ OK ]
    /usr/bin/pstree                                          [ OK ]
    /usr/bin/rkhunter                                        [ OK ]
    /usr/bin/runcon                                          [ OK ]
    /usr/bin/sha1sum                                         [ OK ]
    /usr/bin/sha224sum                                       [ OK ]
    /usr/bin/sha256sum                                       [ OK ]
    /usr/bin/sha384sum                                       [ OK ]
    /usr/bin/sha512sum                                       [ OK ]
    /usr/bin/size                                            [ OK ]
    /usr/bin/sort                                            [ OK ]
    /usr/bin/stat                                            [ OK ]
    /usr/bin/strings                                         [ OK ]
    /usr/bin/sudo                                            [ OK ]
    /usr/bin/tail                                            [ OK ]
    /usr/bin/test                                            [ OK ]
    /usr/bin/top                                             [ OK ]
    /usr/bin/touch                                           [ OK ]
    /usr/bin/tr                                              [ OK ]
    /usr/bin/uniq                                            [ OK ]
    /usr/bin/users                                           [ OK ]
    /usr/bin/vmstat                                          [ OK ]
    /usr/bin/w                                               [ OK ]
    /usr/bin/watch                                           [ OK ]
    /usr/bin/wc                                              [ OK ]
    /usr/bin/wget                                            [ OK ]
    /usr/bin/whatis                                          [ OK ]
    /usr/bin/whereis                                         [ OK ]
    /usr/bin/which                                           [ OK ]
    /usr/bin/who                                             [ OK ]
    /usr/bin/whoami                                          [ OK ]
    /usr/bin/unhide.rb                                       [ Warning ]
    /usr/bin/mawk                                            [ OK ]
    /usr/bin/bsd-mailx                                       [ OK ]
    /usr/bin/w.procps                                        [ OK ]
    /sbin/depmod                                             [ OK ]
    /sbin/fsck                                               [ OK ]
    /sbin/ifconfig                                           [ OK ]
    /sbin/ifdown                                             [ OK ]
    /sbin/ifup                                               [ OK ]
    /sbin/init                                               [ OK ]
    /sbin/insmod                                             [ OK ]
    /sbin/ip                                                 [ OK ]
    /sbin/lsmod                                              [ OK ]
    /sbin/modinfo                                            [ OK ]
    /sbin/modprobe                                           [ OK ]
    /sbin/rmmod                                              [ OK ]
    /sbin/route                                              [ OK ]
    /sbin/runlevel                                           [ OK ]
    /sbin/sulogin                                            [ OK ]
    /sbin/sysctl                                             [ OK ]
    /bin/bash                                                [ OK ]
    /bin/cat                                                 [ OK ]
    /bin/chmod                                               [ OK ]
    /bin/chown                                               [ OK ]
    /bin/cp                                                  [ OK ]
    /bin/date                                                [ OK ]
    /bin/df                                                  [ OK ]
    /bin/dmesg                                               [ OK ]
    /bin/echo                                                [ OK ]
    /bin/egrep                                               [ OK ]
    /bin/fgrep                                               [ OK ]
    /bin/fuser                                               [ OK ]
    /bin/grep                                                [ OK ]
    /bin/ip                                                  [ OK ]
    /bin/kill                                                [ OK ]
    /bin/less                                                [ OK ]
    /bin/login                                               [ OK ]
    /bin/ls                                                  [ OK ]
    /bin/lsmod                                               [ OK ]
    /bin/mktemp                                              [ OK ]
    /bin/more                                                [ OK ]
    /bin/mount                                               [ OK ]
    /bin/mv                                                  [ OK ]
    /bin/netstat                                             [ OK ]
    /bin/ping                                                [ OK ]
    /bin/ps                                                  [ OK ]
    /bin/pwd                                                 [ OK ]
    /bin/readlink                                            [ OK ]
    /bin/sed                                                 [ OK ]
    /bin/sh                                                  [ OK ]
    /bin/su                                                  [ OK ]
    /bin/touch                                               [ OK ]
    /bin/uname                                               [ OK ]
    /bin/which                                               [ OK ]
    /bin/kmod                                                [ OK ]
    /bin/dash                                                [ OK ]

Checking for rootkits...
Je ne le connais pas vraiment rkhunter . En sortie d'install' je pense qu'il ne faut pas s'inquiéter.
Ce truc est plus utile pour la suite à mon avis, bidouillage avec des scripts sorties de nul part etc...
Ex.
Oui car le serveur est fraichement refait
19 jours plus tard
Bonjour,

J'ai suivi le tuto "[Tuto] Sécurisation & Logs V.3 {nginx}" de long en large hier, il fonctionne à merveille merci à ex_rat pour l'énorme boulot !

Cependant je suis tombé sur quelques erreurs de code dans le tuto comme :

Partie - Serveur Mail
root: mail@gmail.com
à modifié en :
root: votre_mail@gmail.com
Partie - Sécurisation SSH
mkdir /home/votre_user
useradd -s /bin/bash votre_user
passwd votre_user
chown -R user:user /home/user
à modifié en :
mkdir /home/votre_user
useradd -s /bin/bash votre_user
passwd votre_user
chown -R votre_user:votre_user /home/votre_user
Rien de méchant mais bon pour quelqu'un qui découvre le shell.... ça pourrait poser soucis.
Je te remercie, je vais voir pour rendre tout ça plus homogène
Le truc étant de bien faire une différence entre l'user "spécial console" sans semer le trouble avec le chroot des utilisateurs de la box dans sshd_config.
(pas très clair mon explication là mais j'me comprends c'est le principal 😂)
Ex.

edit: Ouais "votre_user" partout c'est pas mal ! je garde
Ola !
Une petite modification au niveau de fail2ban.
Avec nginx, nos amis les "w00tw00t" sortent dans les logs en erreur 400 ce qui n'était pas le cas avec lighttpd. Donc pour les shooter, j'ai mis à jour le tuto V3...

On ouvre :
nano /etc/fail2ban/filter.d/nginx-badbots.conf
Et on modifie :
# Anti w00tw00t
            ^<HOST> .*?"GET .*w00tw00t.* 404
En :
# Anti w00tw00t
            ^<HOST> .*?"GET .*w00tw00t.* 400
On restart fail2ban et ça roule :
/etc/init.d/fail2ban restart
Ex.
6 jours plus tard
Merci pour le tuto Ex_rat, le logserver va bien me servir les jours pluvieux ^^;

- petite remarque à la fin, il faudrait chmod +x ban.sh en plus de l'unban je crois
- une question également, j'ai vu que nicolargo proposait un "multiban" avec une règle qui surveille les logs de fail2ban et également un "contre-attaque" employant la règle "tarpit", alors est-ce que tu as écarté ces méthodes intentionnellement ou bien est-ce que tu n'as pas encore testé? Car je serais curieux de voir ça implémenté dans ta sécu.
Alors j'ai surtout été au plus simple pour le ban
Je regarderais ça, si on peut faire un truc chouette on y va !
Ex.
edit: J'ai corrigé pour le "chmod +x ban.sh" à la fin
Salut.
J'ai depuis un moment parametré le systeme de mail du tuto de securisation via mon adresse gmail.
A un moment j'ai du creer des filtres pour eviter que tout arrive dans la partie spam.
Mais maintenant il m'est carrement impossible de recuperer les mails.
J'ai une messge de
"I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system"

"Our system has detected that this message is 550-5.7.1 likely
unsolicited mail. To reduce the amount of spam sent to Gmail, 550-5.7.1
this message has been blocked. Please visit 550-5.7.1"

Doit je comprendre que gmail ne veux plus de ces mails meme en creant des filtres ?
Salut
J'ai bien l'impression que oui... Il me semble qu'il a une procédure pour débloquer ça chez Gmail mais j'en sais pas plus.
Perso pour arrêter de me prendre le choux avec les histoires de spam et les ip moisies de d'ovh, J'envoie tout les mails serveur sur un adresse spécial du genre serveur.mondomaine.com que je fais relever par Gmail, depuis plus de soucis avec ça.
Ex.
@cocolabomb Oui c'est possible avec "courrier", tu peux faire des adresses du type login@nomdedomaine.com et envoyerrecevoir le contenu de logrotate, logwatch etc sur thunderbird/roundcube. C'est assez fastidieux à mettre en place la première fois mais je peux expliquer si ça intéresse du monde (et quand j'aurais le temps).

Au fait Ex_, y'aurais pas un blème dans ton script unban
iptables -D INPUT -s $IP -j DROP
ce serait pas
iptables -D INPUT -s $IP -j ACCEPT
plutôt?

J'ai un petit problème l'autre fois je pense que le serveur a banni un user et j'arrive pas à le réintégrer. Il y a un moyen de connaître les IP bannies définitivement quelque part?
Ola !
Tu m'as mis le doute mais non, je viens d'aller au nouvelles et ce serait bien DROP avec l'option -D pour unban une ip solo, on retrouve plutôt les ACCEPT sur les règles de routages apparemment .
Pour ton user, y'a bien la solution d'aller fouiller avec iptables -L mais quand il y a 3 millions d'ip t'as rapidement les yeux qui pleurent ☹
Peut-être moins prise de tête de faire un grand coup de vide avec iptables -F , de toute façon, un pénible qui reviendrait se reprendrait un ban direct donc...
Faut juste penser à sauvegarder après le grand ménage si tu utilises un truc de genre " iptables-persistent ".
Iptables est totalement imbuvable
Ex.
En règle général j'ai jamais eu de problème avec Iptables. Par contre avec mon user bloqué impossible de le faire réaccéder au serv, même après un iptables -F et en désactivant fail2ban et tout. Je suis ouvert à toute suggestion. Il n'a de problème à se connecter qu'au nouveau serveur nginx, pas à l'ancien qui est sur le même port, et c'est une impossibilité globale, à tout ce qui concerne l'ip serveur.
Une idée...
Tu le retrouverez pas son ip dans /etc/hosts.deny à ton pinocchio ?
Si oui, suffit de l'effacer du fichier.
Ex.
Il était effectivement dans /etc/hosts.deny, un fichier que je ne connaissais pas. Je l'ai retiré et tout est rentré dans l'ordre. Je vais me renseigner sur le pourquoi du comment mais je pense qu'il a dû se tromper de mdp plusieurs fois. Encore merci, Ex_ !
Cool
Alors ton lascar, "à tord ou à raison", s'est fait flasher par Portsentry.
Mon naturel méfiant et mon addiction à nmap fera que j'en dirais pas plus...
Ex.
6 jours plus tard
Bonjour et merci pour ce looooooong tuto

Néanmoins j'ai du m'arrêter en cours de root route car j'ai un petit souci avec l'envoi de mail.
Jusqu'ici, tout va bien :
echo 'Salut, je suis un email.' | mail -s 'Hello world' votre_mail@gmail.com
Par contre, lorsque je modifie :
nano /etc/aliases
En y mettant mon adresse mail en face de root, et lorsque que j'utilise :
echo 'Salut, je suis un email.' | mail -s 'Hello world' root
Je ne reçois aucun mail... J'ai bien fais un newaliases, mais pourtant ça ne fonctionne pas.

Une idée ?
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
monit: root
root: mon_mail@gmail.com
Ca sent la galère de gmail ça, faudrait tester avec un autre mail pour voir. Du genre bal sur le nom de domaine pour être sur que ça filtre pas.
Ex.