Logwatch : HTTP, ça commence à faire beaucoup !

Ce matin, j’ai un record dans les essais sur HTTP.
J’ai vraiment besoin de savoir quoi faire pour éviter ces “visiteurs” :
Le premier, 400, je ne sais pas à quoi ça correspond
les deux 401 ce sont des essais réguliers pour accéder à deux pages privées de ma galerie photo
Mais le reste ?

[code]--------------------- httpd Begin ------------------------

Requests with error response codes
400 Bad Request
/w00tw00t.at.ISC.SANS.DFind:): 1 Time(s)
401 Unauthorized
/piwigo/index.php?/category/3: 2 Time(s)
/piwigo/index.php?/category/8: 1 Time(s)
404 Not Found
//PMA2005/scripts/setup.php: 1 Time(s)
//admin/phpmyadmin/scripts/setup.php: 1 Time(s)
//admin/pma/scripts/setup.php: 1 Time(s)
//admin/scripts/setup.php: 1 Time(s)
//admm/scripts/setup.php: 1 Time(s)
//admn/scripts/setup.php: 1 Time(s)
//databaseadmin/scripts/setup.php: 1 Time(s)
//db/scripts/setup.php: 1 Time(s)
//dbadmin/scripts/setup.php: 1 Time(s)
//myadmin/scripts/setup.php: 1 Time(s)
//mysql-admin/scripts/setup.php: 1 Time(s)
//mysql/scripts/setup.php: 1 Time(s)
//mysqladmin/scripts/setup.php: 2 Time(s)
//mysqlmanager/scripts/setup.php: 1 Time(s)
//p/m/a/scripts/setup.php: 1 Time(s)
//php-my-admin/scripts/setup.php: 2 Time(s)
//php-myadmin/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.2.3/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.2.6/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.4/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.5-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.5-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.5-rc2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.5/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.6-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.6-rc2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.6/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.7-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.5.7/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-alpha/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-alpha2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-beta1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-beta2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-pl2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-pl3/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-rc2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0-rc3/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.0/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.1-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.1-pl2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.1-pl3/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.1-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.1-rc2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.2-beta1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.2-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.2-rc1/scripts/setup.php: 2 Time(s)
//phpMyAdmin-2.6.2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.3-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.3-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.3/scripts/setup.php: 2 Time(s)
//phpMyAdmin-2.6.4-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.4-pl2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.4-pl3/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.4-pl4/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.4-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.6.4/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.7.0-beta1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.7.0-pl1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.7.0-pl2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.7.0-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.7.0/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0-beta1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0-rc2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0.1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0.2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0.3/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0.4/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.0/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.1-rc1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.1/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2.8.2/scripts/setup.php: 1 Time(s)
//phpMyAdmin-2/scripts/setup.php: 1 Time(s)
//phpMyAdmin/scripts/setup.php: 2 Time(s)
//phpadmin/scripts/setup.php: 1 Time(s)
//phpmanager/scripts/setup.php: 1 Time(s)
//phpmy-admin/scripts/setup.php: 1 Time(s)
//phpmyadmin/scripts/setup.php: 2 Time(s)
//phpmyadmin1/scripts/setup.php: 1 Time(s)
//phpmyadmin2/scripts/setup.php: 1 Time(s)
//pma/scripts/setup.php: 1 Time(s)
//pma2005/scripts/setup.php: 1 Time(s)
//scripts/setup.php: 1 Time(s)
//sqlmanager/scripts/setup.php: 1 Time(s)
//sqlweb/scripts/setup.php: 1 Time(s)
//typo3/phpmyadmin/scripts/setup.php: 1 Time(s)
//web/phpMyAdmin/scripts/setup.php: 1 Time(s)
//web/scripts/setup.php: 1 Time(s)
//webadmin/scripts/setup.php: 1 Time(s)
//webdb/scripts/setup.php: 1 Time(s)
//websql/scripts/setup.php: 2 Time(s)
//xampp/phpmyadmin/scripts/setup.php: 1 Time(s)
/Ads/adxmlrpc.php: 1 Time(s)
/MyAdmin/scripts/setup.php: 1 Time(s)
/a1b2c3d4e5f6g7h8i9/nonexistentfile.php: 1 Time(s)
/ads/adxmlrpc.php: 1 Time(s)
/adserver/adxmlrpc.php: 1 Time(s)
/adxmlrpc.php: 1 Time(s)
/b2/xmlsrv/xmlrpc.php: 1 Time(s)
/b2evo/xmlsrv/xmlrpc.php: 1 Time(s)
/blog/xmlrpc.php: 1 Time(s)
/blog/xmlsrv/xmlrpc.php: 1 Time(s)
/blogs/xmlrpc.php: 1 Time(s)
/blogs/xmlsrv/xmlrpc.php: 1 Time(s)
/blogtest/xmlsrv/xmlrpc.php: 1 Time(s)
/community/xmlrpc.php: 1 Time(s)
/drupal/xmlrpc.php: 1 Time(s)
/muieblackcat: 1 Time(s)
/myadmin/scripts/setup.php: 1 Time(s)
/phpAdsNew/adxmlrpc.php: 1 Time(s)
/phpMyAdmin/scripts/setup.php: 1 Time(s)
/phpads/adxmlrpc.php: 1 Time(s)
/phpadsnew/adxmlrpc.php: 1 Time(s)
/phpgroupware/xmlrpc.php: 1 Time(s)
/phpmyadmin/scripts/setup.php: 1 Time(s)
/pma/scripts/setup.php: 1 Time(s)
/robots.txt: 15 Time(s)
/w00tw00t.at.blackhats.romanian.anti-sec:): 1 Time(s)
/wordpress/xmlrpc.php: 1 Time(s)
/xmlrpc.php: 1 Time(s)
/xmlrpc/xmlrpc.php: 1 Time(s)
/xmlsrv/xmlrpc.php: 1 Time(s)

---------------------- httpd End -------------------------

[/code]

A part fermer ton serveur ou blacklister les ip’s y’a pas grand chose à faire.

Regarde du côté de fail2ban… il s’occupe aussi des problèmes d’authentification sur les serveur Web!

Mais ce ne sont pas les not found les plus emmerdants… C’est plutôt quand ils parviennent à entrer…

Ou ce genre de truc…GET /w00tw00t.isc.sans.dfind:)

salut
Sécuriser apache c’est pas évident, pour l’instant j’ai fermer le port 80, a quand un wiki pour sécuriser apache ? (pour les débutant sa peux servir) :slightly_smiling:
j’ai quand même des tentatives sur le port 80 chaque jours si sa continue il va faloir que je les ban définitivement…

sinon comme le dit lol le plus chian c’est quand il arrive faire une demande ou le serveur renvoiye des données, généralement le page les plus lourde

Oui, c’est une excellente idée. :023
Je sais que Kna (pour ne citer que lui) à l’air très à l’aise avec apache, il faudrait lui demander… :wink:

Saluts,

Toujours désagrèable ce genre de situation. :confused:

As tu pensé à denyhost et porsentry (si ce n’est fait, il est temps) et ces quelques règles, sont elles de la partie … ?

[code]## Se protéger des attaques de type Syn Flood: ##
echo “1” > /proc/sys/net/ipv4/tcp_syncookies
echo “1024” > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo “1” > /proc/sys/net/ipv4/conf/all/rp_filter

Se protéger contre les Smurf Attack:

echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Eviter le source routing:

echo “0” > /proc/sys/net/ipv4/conf/all/accept_source_route

Désactivez l’autorisation des redirections ICMP:

echo “0” > /proc/sys/net/ipv4/conf/all/accept_redirects
echo “0” > /proc/sys/net/ipv4/conf/all/secure_redirects

Eviter le log des paquets icmp erroné:

echo “1” > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

Active le logging des packets aux adresses sources falficiées ou non routable:

echo “1” > /proc/sys/net/ipv4/conf/all/log_martians

Rejette les fausses connexions prétendues s’initialiser et sans bit SYN

iptables -A INPUT -p tcp ! --syn -m state --state NEW,INVALID -j REJECT
echo “- Rejeter les connexions sans bit SYN : [OK]”[/code]

En attendant d’y voir plus clair, j’ai coupé tout le serveur et je vais approfondir l’affaire.
mon mail Postfix est donc out pour l’instant, reste celui de free qui est consultable facilement sur le forum.
Mais le mieux est encore MP.
:006

[quote=“ricardo”]En attendant d’y voir plus clair, j’ai coupé tout le serveur et je vais approfondir l’affaire.
mon mail Postfix est donc out pour l’instant, reste celui de free qui est consultable facilement sur le forum.
Mais le mieux est encore MP.
:006[/quote]
un peux comme moi, vu le nombre de paramètres a régler pour le securiser … :doh:
je pense que de mettre un minimum de module serai déjà un bon point. mai évidament php mysql son souvant requit :smiley:
pas mal de truc sur la sécu de apache traine sur le web m’enfin sa date et c est peux sure. :unamused:
il fu un temps ou debian sécurisait d’office les logiciel… on dirait que apache ne répond plus a cette règle… sa me fait pense a webmin… :snooty:
ceci dit je dit rien je suis un noob, donc forcement les conn** j’en fait :005

[quote=“panthere”]
un peux comme moi, vu le nombre de paramètres a régler pour le securiser … :doh:
je pense que de mettre un minimum de module serai déjà un bon point. mai évidament php mysql son souvant requit :smiley:
pas mal de truc sur la sécu de apache traine sur le web m’enfin sa date et c est peux sure. :unamused:
il fu un temps ou debian sécurisait d’office les logiciel… on dirait que apache ne répond plus a cette règle… sa me fait pense a webmin… :snooty:
ceci dit je dit rien je suis un noob, donc forcement les conn** j’en fait :005[/quote]

Pour sécuriser apache c’est pas très compliqué encore faut-il savoir de quoi on n’a besoin comme module et c’est là que Debian ne peu rien proposer car chacun y va à sa façon si je puis dire donc il laisse relativement vierge le bouzin ( a toi de voir ce que tu fais tourner et le sécurisé, au passage c’est pas vraiment apache que l’on sécurise ce sont les services qu’il fait tourner ).

Je repose une question :
comment supprimer momentanément apache de façon à ce qu’il ne soit plus actif, sans tout effacer ?

[quote=“ricardo”]Je repose une question :
comment supprimer momentanément apache de façon à ce qu’il ne soit plus actif, sans tout effacer ?[/quote]

/etc/init.d/apache stop

:083 et tu vie son lancement depuis l’init quand tu redémarre le serveur :033

C’est ce que j’avais pensé mais ça me paraît trop simple :stuck_out_tongue:
Je laisse au repos encore la nuit et je fais ça demain
:006

sinon iptable et tu ferme le port :slightly_smiling:

faut que je vire les modules, et que je limite la bande passante par ip, histoire de garder des ressource :slightly_smiling:
iproute et iptables devrai faire l’affaire :slightly_smiling:

À ce sujet Panthère,
1/ pour fermer le port, tu supprimes la ligne ?
2/ quelle ligne pour rendre un port ouvert masqué ?

Ouvrir :

et rajouter les 2 définitions suivantes. La 1ere est déjà présente mais pas active

[php-url-fopen]

enabled = true
port    = http,https
filter  = php-url-fopen
logpath = /var/log/apache*/access.log
maxretry = 1

[apache-myadmin]
enabled = true
filter   = apache-myadmin
port = http,https
logpath = /var/log/apache2/error.log
action = iptables-multiport[name=apache-myadmin, port="http,https", protocol=tcp]
maxretry = 2
bantime = 84600
root@bougnat: cd /etc/fail2ban/filter.d
root@bougnat: vi apache-myadmin.conf

et coller ça dedans

[Definition]
failregex = ^[[]client <HOST>[]] File does not exist: *myadmin* *\s*$
        ^[[]client <HOST>[]] File does not exist: *MyAdmin* *\s*$
        ^[[]client <HOST>[]] File does not exist: *mysqlmanager* *\s*$
        ^[[]client <HOST>[]] File does not exist: *setup.php* *\s*$
        ^[[]client <HOST>[]] File does not exist: *mysql* *\s*$
        ^[[]client <HOST>[]] File does not exist: *phpmanager* *\s*$
        ^[[]client <HOST>[]] File does not exist: *phpadmin* *\s*$
        ^[[]client <HOST>[]] File does not exist: *sqlmanager* *\s*$
        ^[[]client <HOST>[]] File does not exist: *sqlweb* *\s*$
        ^[[]client <HOST>[]] File does not exist: *webdb* *\s*

ignoreregex =

root@bougnat: iptables -L

fail2ban-apache-myadmin  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-proftpd  tcp  --  anywhere             anywhere            multiport dports ftp,ftp-data,ftps,ftps-data
fail2ban-courierauth  tcp  --  anywhere             anywhere            multiport dports smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
fail2ban-apache  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
fail2ban-apache-overflows  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-apache-multiport  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-ssh-ddos  tcp  --  anywhere             anywhere            multiport dports ssh
fail2ban-apache-noscript  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-php-url-fopen  tcp  --  anywhere             anywhere            multiport dports www,https

voila avec ça, ca épure dèjà pas mal

Salut gilles974,
C’est pour les erreurs d’authentification, pas pour les autres tentatives.

On s’y colle à ce tuto sur apache ??? :wink:

salut lol

c’est le cas pour phpmyadmin avant de s’authentifier faut accéder :wink:

le bouge fait une recherche sur quel phpmyadmin il utilise il se fait jeter donc il s’authentifie pas

c’est mon raisonnement. maintenant je peux me tromper

a+

[quote=“ricardo”]À ce sujet Panthère,
1/ pour fermer le port, tu supprimes la ligne ?
2/ quelle ligne pour rendre un port ouvert masqué ?[/quote]

je part d’un autre principe, sa passe ou sa passe pas, l’histoire du masquer ou ouvert, change quasiment rien puisque de mon point de vue sa peux entrer. je me donc la règle a DROP sur le port 80.

en #shell script INSERTN=2 iptables -I INPUT $INSERTN -p tcp -m multiport --destination-port 80 -j DROP

($INSERTN) Variable permet d’inserer la ligne ou on veux, mai rien ne vous empêche de faire autrement :slightly_smiling:
si on veux laisser passer, on place la meme règle sur -j ACCEPT
note que d’autre port peuve être a l’écoute puisque c’est configurable :slightly_smiling:

Merci Panthere, ça me convient car ainsi, je peux fermé momentanément mon site, sans pour ça fermer le reste du serveur.
Juste le temps de me mieux protéger car j’ai l’impression que mes règles iptables sont insuffisantes.

@ Gilles :
merci pour ces astuces qui semblent pleines de bon sens, je vais en tenir compte.

[quote=“ricardo”]Merci Panthere, ça me convient car ainsi, je peux fermé momentanément mon site, sans pour ça fermer le reste du serveur.
Juste le temps de me mieux protéger car j’ai l’impression que mes règles iptables sont insuffisantes.

@ Gilles :
merci pour ces astuces qui semblent pleines de bon sens, je vais en tenir compte.[/quote]

C’est dans le Wiki l’explication sur fail2ban… :mrgreen:
isalo.org/wiki.debian-fr/ind … e=Fail2ban

Re,

As-tu vérifié s’il y a des POST et/ou des CONNECT dans acces.log ?

Edit: Tu as “surveillance” d’installé, non ?