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

Bonjour,
Je viens de m'inscrire sur ce site pour vraiment vous dire : " Un Grand Merci "
Ce tuto fonctionne très bien, les ptits mails de "Ban" le matin au café me rassure beaucoup
Très bon boulot c'est génial
Merci
Pour les mails de fail2ban, au bout d'un moment on les désactive parce que ça finit par faire beaucoup de courrier
Ex.
5 jours plus tard
Enorme !!

Un petit moment que je n'etais pas repassé sur Mondedié, la refonte des tutos est top !! Sacré boulot, chapeau !

J'ai refait toute une install Debian 7 x64, rutorrent, fail2ban et tout le tralala comme qui rigole ...

Par contre je bloque sur un truc qui m'a l'air un peu stupide... j'aime beaucoup les alias pour iptables, ban/unban.sh ;
sauf que pour unban.sh, quand je me loggue en root je vois ce msg
bash: alias: /usr/share/scripts/unban.sh: not found
unban me donne un "command not found", et bien sur, le script est bien toujours la...
root@sb:/usr/share/scripts# ls -l
total 8
-rwxr-xr-x 1 root root 376 Feb 26 10:00 ban.sh
-rwxr-xr-x 1 root root 372 Feb 26 10:00 unban.sh
Alors désolé, je vois pas du tout ce qui peut coincer

Dans ton /root/.bashrc t'as bien vérifié j'imagine ? c'est bien :
alias ban='sh /usr/share/scripts/ban.sh
alias unban='sh /usr/share/scripts/unban.sh
Commente la ligne qui coince et on va attendre un autre avis
Ex.
Oupssssssss [part en sifflotant]
alias ban='sh /usr/share/scripts/ban.sh'
alias unban='sh /usr/share/scripts/unban.sh'
Effectivement, je me suis loupé dans le tuto, je corrige de suite
Ex.
J'espere poster rapidement la dernière partie de la V3 pour la page de log/html, je voudrais que le script fasse le ménage avant la création de la page pour ne pas avoir un truc trop lourd a charger et un peu plus propre.
Ex.

Edit: le script log/html est en place et il est plus sympa qu'avant. Ça donne une page assez propre par rapport au log d'origine et j'ai bricolé une fusion des logs du jour et à J-1 pour qu'on est toujours les dernières 24h complète. voilà voilà...

Edit2: Pour ceux qui aurait fait la migration avant aujourd’hui, pensez à modifier :
rutorrent.error.log crit; en rutorrent.error.log error; dans rutorrent.conf
Bonsoir, j'ai besoin d'aide car j'ai des soucis

J'ai fais le postfix mais je ne reçois pas sur mon adresse laposte.net mais bien sur gmail.com.
Est ce que c'est possible de rajouter une adresse email à mon adresse du serveur pour localiser tous les logs reçu avec le serveur.
Donc en gros, avoir un email log@ip_du_serveur (que je me connecterais avec microsoft outlook). Je pense en POP3 et SMTP.

J'ai dans "nano /etc/aliases" déjà un root : user (ça c'est créer lors de l'installation du serveur vu que j'ai mis un utilisateur.
Donc j'ai un défaut quand je met root : email@email.com

Je veut garder cette user (qui sera juste pour le ssh car je vais voir pour bloquer l'accès direct à root au démarrage).

J'ai donc remplacer le "root" par mon adresse dans le script, ce qui fonctionne bien mais en m'affichant en ssh:
login as: root
root@xx.xxx.xxx.xxx's password:
Last login: Sat Mar 1 02:46:37 2014 from xxx
mail: You must specify direct recipients with -s, -c, or -b
[root@xxx:~]

Pour logWatch, j'ai un trop plein de ligne et donc je voulais savoir lesquelles je remplace.
Éditions des fichiers :
nano /usr/share/logwatch/default.conf/logfiles/lighttpd.conf
Modifier les valeurs :
LogFile = lighttpd/*access_log
LogFile = lighttpd/*access.log.1
LogFile = lighttpd/*access.log
LogFile = lighttpd/*access.log.1
LogFile = lighttpd/*access.log
LogFile = lighttpd/*error.log.1
LogFile = lighttpd/*error.log
Je suis au début du tuto et je voulais savoir qu'est ce que je modifie car j'ai de nombreux ligne.
LogFile = httpd/*access_log
LogFile = apache/*access.log.1
LogFile = apache/*access.log
LogFile = apache2/*access.log.1
LogFile = apache2/*access.log
LogFile = apache2/*access_log
LogFile = apache-ssl/*access.log.1
LogFile = apache-ssl/*access.log
LogFile = nginx/*access.log
LogFile = nginx/*access.log.1
Salut
Pour le début de ta question, je passe mon tour.

Pour nano /etc/aliases, remplaces root : user par root : tonmail@blabla.com, tu perdras pas ton user root.
ça doit ressembler à ça, tu peux avoir plus de lignes mais tu dois avoir ces 2 là :
postmaster:    root
root: toto@gmail.com
Pour lighttpd, tu peux remplacer les 7 premières lignes par les tiennes (tu n'as ni apache ni ngnix de toute façon donc.. )
Ex.
Je viens de faire ce que vous m'avez dis et cela fonctionne.
Mais j'ai un problème pour logWatch.
Je reçois bien les emails quand je les demande mais le fichier lightpd n'est pas dans le bon répertoire je pense.
voila mon message d'erreur à chaque fois que je fait logWatch:
logwatch --range today
*** Error: There is no logfile defined. Do you have a /etc/logwatch/conf/logfiles/lighttp.conf file ?
Dans le logWatch (email), j'ai ça. Aucun m'est de mes emails donc je suppose que c'est des personnes qui essaie d'aller sur mon serveur?
Failed logins from:
61.174.51.207 (207.51.174.61.dial.wz.zj.dynamic.163data.com.cn): 36 times
109.228.22.163 (server109-228-22-163.live-servers.net): 15 times
222.186.62.7: 24 times
222.186.62.13: 6 times
222.186.62.32: 18 times
222.186.62.38: 36 times

Illegal users from:
undef: 60 times
5.135.183.21 (ks3289417.kimsufi.com): 3 times
85.214.248.108 (h2216237.stratoserver.net): 40 times
109.228.22.163 (server109-228-22-163.live-servers.net): 13 times
210.21.110.58: 4 times

Pour sécurisation SSH:
J'ai bien changé le port, je peux me connecté avec mon user principal créer que pour le ssh.
Quand je veux me connecté en ssh avec l'utilisateur rutorrent, il ne fonctionne pas donc cool (putty se ferme automatiquement).

Est ce bien utile vu que cela fonctionne chez moi déjà?
chown root:<userX> /home/<userX>
chmod 755 /home/<userX>

fail2ban:
ignoreip = 127.0.0.1 XXX.XXX.XXX.XXX #<= Votre IP "maison" habituelle si fixe

Donc si j'ai bien compris 127.0.0.1 autre ip en espaçant a chaque fois pour en rajouter une.
Je demande car je suis sous vpn souvent et donc je veux la rajouter.
Dans le désordre...

- Pour ssh, si tu as déjà un user "toto" (on parle pas de root là !) qui ne sera pas utilisateur de la seedbox, tu n'as pas besoin d'en créer un autre sinon tu en crée un nouveau et tu suis bien le tuto à la lettre en prenant le temps.

- Pour tes connexions failed et illégal oui C'est normal et c'est juste la routine, c'est bien pour ça qu'on va changer le port ssh, fermer le root mettre tout le monde à la porte avec fail2ban

- Pour lighttpd et logwatch, t'as du louper un truc... J'ai un peu de mal à voir là.
Est-ce que tu pourrais copié coller ça pour voir si c'est édité comme il faut déjà :
nano /usr/share/logwatch/default.conf/logfiles/lighttpd.conf
(surtout le début ou tu as remplacé toute la série des " LogFile = lighttpd/*access_log" ect...
Ex.
Voila le début du fichier.
J'ai rajouter les lignes et commenté les autres.
# What actual file? Defaults to LogPath if not absolute path....

LogFile = lighttpd/*access_log
LogFile = lighttpd/*access.log.1
LogFile = lighttpd/*access.log
LogFile = lighttpd/*access.log.1
LogFile = lighttpd/*access.log
LogFile = lighttpd/*error.log.1
LogFile = lighttpd/*error.log

#LogFile = httpd/*access_log
#LogFile = apache/*access.log.1
#LogFile = apache/*access.log
#LogFile = apache2/*access.log.1
#LogFile = apache2/*access.log
#LogFile = apache2/*access_log
#LogFile = apache-ssl/*access.log.1
#LogFile = apache-ssl/*access.log
#LogFile = nginx/*access.log
#LogFile = nginx/*access.log.1
Ça c'est correct. Je pige pas son soucis avec le message d'erreur ...
Pis faut que je me sauve bosser là

Si t'as pas eu de soluce d'ici ce soir, on avisera pour la suite
Ex.
Bon travail. J'ai pas trouvé.
J'ai fini le tutoriel sinon. J'ai testé en retirant l'ip de chez moi et me bannir et cela fonctionne.
On a plus accès au serveur pendant 10 minutes.
Pour ceux trouver dans le logwatch, il faut les bannir manuellement?

access.html Je suppose que je vais mettre un .htaccess pour pas que tout le monde puisse le voir.
Voila les actions que des gens essaies:
115.239.253.11 xxx.xxx.xxx.xxx - [01/Mar/2014:11:17:36 +0100] "GET /MyAdmin/scripts/setup.php HTTP/1.1" 404 345
115.239.253.11 62.210.114.164 - [01/Mar/2014:11:17:31 +0100] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 345
115.239.253.11 62.210.114.164 - [01/Mar/2014:11:17:31 +0100] "GET /pma/scripts/setup.php HTTP/1.1" 404 345
115.239.253.11 62.210.114.164 - [01/Mar/2014:11:17:27 +0100] "GET /w00tw00t.at.blackhats.romanian.anti-sec🙂 HTTP/1.1" 404 345
187.122.78.222 - - [01/Mar/2014:10:34:36 +0100] "HEAD / HTTP/1.0" 200 0 "-" "-"
85.18.108.228 - - [01/Mar/2014:07:20:05 +0100] "HEAD / HTTP/1.0" 200 0 "-" "-"
179.60.148.11 - - [01/Mar/2014:03:32:58 +0100] "POST //%63%67%69%2D%62%69%6E/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 400 349 "-" "-"
Je viens de les bannir manuellement + ceux du logwatch.

Donc si je recapitule, il faut regarder toujours les logwatch en email + regarder le access.html pour vérifié que l'on se fait pas attaquer.
Mais est ce qu'il est possible de ne pas mettre dans le access.html sont ip à la maison dessus car j'ai une page énorme.


Les bannis par fail2ban les bannis que pour 10 minutes.
Après c'est à moi de voir que si les ips reviennent, je les bannis?

Je viens de regarder les ip bloqués:
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 114-43-6-245.dynamic.hinet.net anywhere
DROP all -- 220.168.30.67 anywhere
DROP all -- 217.169.223.79 anywhere
DROP all -- 198.204.242.84 anywhere
DROP all -- h2216237.stratoserver.net anywhere
DROP all -- 222.186.62.38 anywhere
DROP all -- 222.186.62.21 anywhere
DROP all -- 222.186.62.7 anywhere
DROP all -- 222.186.62.12 anywhere
DROP all -- 220.168.30.67 anywhere
DROP all -- h2216237.stratoserver.net anywhere
DROP all -- 196.51.174.61.dial.wz.zj.dynamic.163data.com.cn anywhere
DROP all -- 61.147.103.152 anywhere
DROP all -- 1.93.33.2 anywhere
fail2ban-lighttpd-noscript tcp -- anywhere anywhere multiport dports http,https
fail2ban-lighttpd tcp -- anywhere anywhere multiport dports http,https
fail2ban-vsftpd tcp -- anywhere anywhere multiport dports ftp
fail2ban-ssh tcp -- anywhere anywhere multiport dports 22186
DROP all -- scanresearch1.syssec.ruhr-uni-bochum.de anywhere
DROP all -- 110.19.ultimate-int.uia.net anywhere
DROP all -- 179.60.148.11.ptr.vds4you.ru anywhere
DROP all -- 85-18-108-228.ip.fastwebnet.it anywhere
DROP all -- 187-122-78-222.cpecoa.viaembratel.net.br anywhere
DROP all -- 115.239.253.11 anywhere
DROP all -- 96.47.239.120 anywhere
test rkhunter me donne en warning
/usr/bin/unhide.rb [ Warning ]
re !
Je vois que t'as bien avancé cet après-midi
T’embêtes pas à bannir à la main, si ils reviennent ils vont tomber tout seul maintenant.
Et ce sera comme ça à chaque fois, t'as rien à faire

Le log sert plus à garder un œil sur l'activité et à voir une anomalie, faut rester zen, Fail2ban fait le boulot !
Pour le problème de la taille, je viens de trouver une soluce pour faire un peu de ménage la dedans avec le nouveau tuto, je vais l'adapter sur celui que tu as suivi dans la semaine. La modification sera facile à faire.

Pour ton soucis de logwatch /lighttpd qui a pas l'air d'être réglé, je peux jeter un œil si tu veux. Tu peux m'envoyer un MP si tu le souhaites

Sinon tente de refaire à zéro juste cette partie :

Configuration pour lighttpd, on lance les 3 commandes :
cp /usr/share/logwatch/default.conf/logfiles/http.conf /usr/share/logwatch/default.conf/logfiles/lighttpd.conf
cp /usr/share/logwatch/default.conf/services/http.conf /usr/share/logwatch/default.conf/services/lighttpd.conf
cp /usr/share/logwatch/scripts/services/http /usr/share/logwatch/scripts/services/lighttpd
Editions des fichiers :
nano /usr/share/logwatch/default.conf/logfiles/lighttpd.conf
Modifier les valeurs :
LogFile = lighttpd/*access_log
LogFile = lighttpd/*access.log.1
LogFile = lighttpd/*access.log
LogFile = lighttpd/*access.log.1
LogFile = lighttpd/*access.log
LogFile = lighttpd/*error.log.1
LogFile = lighttpd/*error.log
nano /usr/share/logwatch/default.conf/services/lighttpd.conf
Modifier les valeurs :
Title = "lighttpd"
LogFile = lighttpd
Et vérifie que t'as bien un fichier access.log en /var/log/lighttpd/ (y'a pas de raison si tu l'as activé mais des fois que...)
Ex.
Pour le problème du script "taille de la page html" (sous lighttpd seulement)

On ouvre le script logserver.sh:
nano /usr/share/mes-scripts/logserver.sh
On efface tout et on colle :
#!/bin/bash
#
#

# Récupération des logs
cp /var/log/lighttpd/access.log /tmp/access.log
cd /tmp
# Nettoyage
sed -i '/plugins/d' access.log
sed -i '/images/ d' access.log

# Création de la page html
ccze -h < /tmp/access.log > /var/www/logserver/access.html
On le teste directement :
/usr/share/mes-scripts/logserver.sh
Voilà c'est tout. On doit avoir une page un peu plus zen vidé d'une partie des lignes superflues.

J'ai mis l'ancien tuto à jour
Ex.
Ok je viens de faire la modification et je trouve que c'est mieux.
On le sait comment si par exemple, une attaque a réussi ou elle sera bloqué avant d'avoir un problème.

Edit: j'ai plus de problème affiché avec la refonte de la modification.
Salut ex.

Dit moi en ayant fait une installe complète de ton tuto de sécurisation sous lighttpd, quelles sont les réelles modifs a effectués sous nginx.

Je ne doit pas être dans l'obligation de tous désinstaller ? Une possibilité de modifier les fichiers de config?

Merci.
Cool cocolacombe tout était bon sur le serveur, surement un fantôme...

Dam,
Il n'y a pas des millions de modif et non, on refait pas tout. Pour pas te perdre tu peux ouvrir les deux tuto sécu en même temp pour comparer vu que tout est +/- dans le même ordre

- rien à faire pour ssh/ portsentry et rkhunter

- Fail2ban, tu supprimes tout ce qui parle de lighttpd et tu ajoutes pour nginx (jail.local et filter.d)

- même topo pour pour Logwatch

-modif du script à la fin + chemin des log pour la page html/log

Rien qui doit vraiment poser problème si on s’applique
Ex.