
Bonjour, voici un script pour paramétrer votre Firewall avec filtre Hadopi, indésirables, ainsi que Fail2ban et Portsentry
Merci a Ex_rat et au site Mondedie
Je l'ai testé sur une machine debian 7 et 8, marche très bien.
Je log pas les "indésirables", je les drop direct (mais rien ne vous empêche de le faire).
Donc vous pouvez l'utiliser pour configurer votre firewall.
Pour cela vous ouvrez une session root sur votre serveur puis vous tapez:
"VotreNomUtilisateur" c'est le nom d'user sur le serveur
*-Un copier coller
Pour coller dans nano ......."clic droit de la souris "
Pour sauver les modif ....... Touches : Ctrl + o , Enter, Ctrl + x
*-Apres un petit:
*-Puis on l'execute:
Surtout vous ne fermez pas votre session ssh, il faut verifier que tout tourne bien
*-Un petit :
Vous avez vos règles firewall de listées, avec :
les entrées en premier : Input : ce qui est accepté et rejeté
les routées : Forward
Les sorties
Les log
Et les règles crées par des logiciels tiers (ex: Fail2ban etc..)
Essayez d'ouvrir une deuxième connection ssh, si vous arrivez à vous loggé, c'est tout bon
*-Vous pouvez fermer vos sessions.
*************** dessous ce qui est à coller dans le fichier "ruleFire" ************
#ruleFire a écrire:
#******************************fin du script **************************
Supprimer une règle :
# On liste les régles avec les numéros de ligne
#Si on veut supprimer la règle de la ligne 2 de la table OUTPUT
Pour activer le script IPtable dès le démarrage :
*-Vous pouvez l'ajouter au démarrage :
*-Pour l'enlever du démarrage :
Bon pour être complet voici 2 tutos rapides pour installer Fail2ban et Portsentry.
Installe de Postfix:
Installe ....... choix : Internet
adresse de la machine
*-test mail:
echo 'Salut, je suis un email.' | mail -s 'Hello world' [email protected]
Tuto installer Fail2ban :
*-Le configurer :
On vas créer un filtre spécial apache contre les attaques ip:
*-On change dans le code si dessous : "XXX.XXX.XXX.XXX" par l'IP de notre serveur:
Exemple : Notre IP est 192.168.1.2 donc ça donne : "failregex = 192.168.1.2:80
*-On Copie et on colle dans le fichier (apache-other-Vhost.conf)
[Définition]
failregex = XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*muieblackcat
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*w00t
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*mysql
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*dbadmin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*myadmin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*MyAdmin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*admin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*php
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*jmx-console
ignoreregex =
*-On sauve et on quitte le fichier.
*-On créer un autre fichier :
*-On colle dedans ceci :
[Definition]
failregex = ^<HOST> -.*"GET /w00tw00t.at.ISC.SANS.DFind:).*".*
ignoreregex =
*-On sauve et on quitte le fichier.
*-On configure notre fichier de configuration des "Prisons" :
*-On va modifier des Block :
Block :
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1/8
bantime = 7200
maxretry = 3
Liste des adresses IP de confiance à ignorer par fail2ban
*-On ajoute dans "ignoreip" notre ip a la maison si elle est fixe.
Exemple notre ip maison : 99.99.99.99 donc ::> "ignoreip = 127.0.0.1/8 99.99.99.99
On peut aussi modifier "bantime" c'est en secondes, c'est le temps de bannissement d'une Ip
"maxretry" c'est le nombre d'essais avant qu'une connexion soit bannie
Block :
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = [email protected]
*-On met l'adresse mail ou l'on veut recevoir les logs (bannissement,démarrage).
Attention smtp doit être configuré (postfix, exim4 etc).
Je vous recommande une adresse gmail, et aussi d'installer postfix et après supprimer exim si il est installé.
Block :
# email action. Since 0.8.1 upstream fail2ban uses sendmail
# MTA for the mailing. Change mta configuration parameter to mail
# if you want to revert to conventional 'mail'.
mta = sendmail
Là on ne change rien
Block :
# Choose default action. To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section
action = %(action_)s
*-On modifie pour avoir ça :
action = %(action_mwl)s
Comme ça l'email sera un peu plus détaillée.
Maintenant on attaque les sections "Jails":
C'est là que l'on active les filtres qui vont tourner celon ce que l'on veut surveiller :
*-On passe de "false" à "true" celles que l'on veut activer
Block:
# JAILS
#
# Next jails corresponds to the standard configuration in Fail2ban 0.6 which
# was shipped in Debian. Enable any defined here jail by including
#
# [SECTION_NAME]
# enabled = true
# in /etc/fail2ban/jail.local.
#
# Optionally you may override any other parameter (e.g. banaction,
# action, port, logpath, etc) in that section within jail.local
[ssh]
enabled = false
port = ssh,sftp
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = -1
*-On va activer le filtre ssh et modifier le "port" pour avoir celui qui correspond à votre configuration :
"enabled= true"
Exemple notre port ssh est le port 158 :
"port =158"
Donc ça donne :
[ssh]
enabled = true
port = 158
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = -1
*-On va modifier ce Block pour avoir ça :
[pam-generic]
enabled = true
# pam-generic filter can be customized to monitor specific subset of 'tty's
filter = pam-generic
# port actually must be irrelevant but lets leave it all for some possible uses
port = all
banaction = iptables-allports
port = anyport
logpath = /var/log/auth.log
maxretry = 3
*-Celui là aussi on l'active en remplaçant le "port" par notre port ssh là si 158:
[ssh-ddos]
enabled = true
port = 158
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 3
*-Ceux là aussi on les active :
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 3
*-On crée ceux-ci :
[apache-Vhost]
enabled = true
filter = apache-other-Vhost
action = iptables[name=Apache-other-Vhost,port=80,protocol=tcp]
logpath = /var/log/apache2/other_vhosts_access.log
maxretry = 1
[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
action = iptables[name=Apache-w00tw00t,port=80,protocol=tcp]
logpath = /var/log/apache*/*access.log
maxretry = 1
Si vous avez un ftp listé dans la liste (genre pure-ftpd, proftpd) activez le (true)
*-On active postfix si on l'utilise :
# Mail servers
[postfix]
enabled = true
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log
*** Voila on peut relancer fail2ban ***
Vous devez avoir ça :
[ ok ] Restarting authentication failure monitor: fail2ban.
*-Vous faites un :
Et vous aurez le nombre de filtres actifs.
Voilà, de plus si votre service mail est bien configuré vous avez dû recevoir des mail de fail2ban et des filtres démarrés.
Tuto pour installer Portsentry et le configurer pour virer les tentatives de scan.
Merci a Ex_rat du site Mondedie.fr
Installe Portsentry :
*-Configuration Portsentry :
*-Modifier :
# IP du serveur (votre serveur)
x.x.x.x
# Votre IP maison si fixe par sécurité (ou mettre plage d'ip de votre FAI : ex: IP Orange 81.253.0.0/18 -86.208.0.0/16)
x.x.x.x
# Plage d'IP Google
66.249.64.0/19
*-Configuration de Portsentry 2:
*-Cherchez ce block la :
##################
# Ignore Options #
##################
# These options allow you to enable automatic response
# options for UDP/TCP. This is useful if you just want
# warnings for connections, but don't want to react for
# a particular protocol (i.e. you want to block TCP, but
# not UDP). To prevent a possible Denial of service attack
# against UDP and stealth scan detection for TCP, you may
# want to disable blocking, but leave the warning enabled.
# I personally would wait for this to become a problem before
# doing though as most attackers really aren't doing this.
# The third option allows you to run just the external command
# in case of a scan to have a pager script or such execute
# but not drop the route. This may be useful for some admins
# who want to block TCP, but only want pager/e-mail warnings
# on UDP, etc.
#
#
# 0 = Do not block UDP/TCP scans.
# 1 = Block UDP/TCP scans.
# 2 = Run external command only (KILL_RUN_CMD)
BLOCK_UDP="0"
BLOCK_TCP="0"
*-Et mettez "1" a la place de "0":
BLOCK_UDP="1"
BLOCK_TCP="1"
*-Cherchez le Block ci dessous et vérifier que devant KILL_ROUTE se soit décommenté (pas de #) :
# Newer versions of Linux support the reject flag now. This
# is cleaner than the above option.
KILL_ROUTE="/sbin/route add -host $TARGET$ reject"
Aller au Block :
###################
# External Command#
###################
# This is a command that is run when a host connects, it can be whatever
# you want it to be (pager, etc.). This command is executed before the
# route is dropped or after depending on the KILL_RUN_CMD_FIRST option below
#
#
# I NEVER RECOMMEND YOU PUT IN RETALIATORY ACTIONS AGAINST THE HOST SCANNING
# YOU!
#
# TCP/IP is an *unauthenticated protocol* and people can make scans appear out
# of thin air. The only time it is reasonably safe (and I *never* think it is
# reasonable) to run reverse probe scripts is when using the "classic" -tcp mode.
# This mode requires a full connect and is very hard to spoof.
#
# The KILL_RUN_CMD_FIRST value should be set to "1" to force the command
# to run *before* the blocking occurs and should be set to "0" to make the
# command run *after* the blocking has occurred.
*-Et ajoutez ceci :
# Ajout de moi
KILL_RUN_CMD="/sbin/iptables -I INPUT -s $TARGET$ -j DROP && /sbin/iptables -I INPUT -s $TARGET$ -m limit --limit 3/minute --limit-burst 5 -j LOG --log-level debug --log-prefix 'Portsentry: dropping: '
*-On sauve ( Ctrl + o, enter, Ctrl + x )
*-On édite :
*-On modifie le Block ainsi :
# /etc/default/portsentry
#
# This file is read by /etc/init.d/portsentry. See the portsentry.8
# manpage for details.
#
# The options in this file refer to commandline arguments (all in lowercase)
# of portsentry. Use only one tcp and udp mode at a time.
#
TCP_MODE="atcp"
UDP_MODE="audp"
Voilà on vient de passer en mode automatique la détection de nos ports qui sont utilisés.
*-Un coup de :
et voilà Portsentry est démarré et fonctionne en dropant les scans
*-Pour vérifier les log de Portsentry :
******* Un ptit Merci sera Apprécié. ********
Merci a Ex_rat et au site Mondedie
Je l'ai testé sur une machine debian 7 et 8, marche très bien.
Je log pas les "indésirables", je les drop direct (mais rien ne vous empêche de le faire).
Donc vous pouvez l'utiliser pour configurer votre firewall.
Pour cela vous ouvrez une session root sur votre serveur puis vous tapez:
- Code: Tout sélectionner
nano /home/VotreNomUtilisateur/ruleFire
"VotreNomUtilisateur" c'est le nom d'user sur le serveur
*-Un copier coller
Pour coller dans nano ......."clic droit de la souris "
Pour sauver les modif ....... Touches : Ctrl + o , Enter, Ctrl + x
*-Apres un petit:
- Code: Tout sélectionner
chmod +x /home/VotreNomUtilisateur/ruleFire
*-Puis on l'execute:
- Code: Tout sélectionner
/home/VotreNomUtilisateur/ruleFire
Surtout vous ne fermez pas votre session ssh, il faut verifier que tout tourne bien
*-Un petit :
- Code: Tout sélectionner
iptables -L -v -n
Vous avez vos règles firewall de listées, avec :
les entrées en premier : Input : ce qui est accepté et rejeté
les routées : Forward
Les sorties
Les log
Et les règles crées par des logiciels tiers (ex: Fail2ban etc..)
Essayez d'ouvrir une deuxième connection ssh, si vous arrivez à vous loggé, c'est tout bon
*-Vous pouvez fermer vos sessions.
*************** dessous ce qui est à coller dans le fichier "ruleFire" ************
#ruleFire a écrire:
- Code: Tout sélectionner
#!/bin/bash
### BEGIN INIT INFO
# Provides: firewall rules
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
#!/bin/sh
# On vire tout
iptables -t filter -F
iptables -L
iptables -Z
# Vider les règles personnelles
iptables -t filter -X
echo - Vidage : [OK]
# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo - Interdire toute connexion : [OK]
#Filtres Anti Hadopi et Autres Lourds
iptables -t filter -I INPUT -p all -s 61.174.51.0/24,61.64.128.0/17,116.10.191.0/24,122.120.0.0/13,168.95.0.0/16 -j DROP
iptables -t filter -I INPUT -p all -s 5.23.42.12/30,90.80.100.192/28,195.5.217.72/29,194.79.189.240/29 -j DROP
iptables -t filter -I INPUT -p all -s 82.138.70.128/26,82.138.74.0/25,91.189.104.0/21,193.107.240.0/22,195.191.244.0/23,193.105.197.0/24 -j DROP
iptables -t filter -A INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.' -j DROP
echo - Blocage indésirable : [OK]
# On garde les connexions etablies
iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo - Connexion actuelle : [OK]
# Autoriser le loopback (reseau local)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo - LOOPBACK : [OK]
# ICMP (ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
echo - ICMP : [OK]
# DNS (bind)
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 953 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 953 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 953 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 953 -j ACCEPT
echo - BIND : [OK]
# APACHE : HTTP + HTTPS
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
echo - web : [OK]
# Mail SMTP:25 - Pour acces gmail ajouter 587
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
echo - SMTP : [OK]
# NTP Horloge synchro
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
echo - NTP : [OK]
# SSH numéros de Port à changer (XXXX) en rapport avec : : "/etc/ssh/sshd_config" on remplace XXXX par votre port ssh par exemple 22
iptables -t filter -A INPUT -p tcp --dport XXXX -m recent --rcheck --seconds 60 --hitcount 2 --name SSH -j LOG --log-prefix "SSH REJECT"
iptables -t filter -A INPUT -p tcp --dport XXXX -m recent --update --seconds 60 --hitcount 2 --name SSH -j DROP
iptables -t filter -A INPUT -p tcp --dport XXXX -m state --state NEW -m recent --set --name SSH -j ACCEPT
echo - Autoriser SSH : [OK]
# Rtorrent à vous de mettre les bons ports surtout pour le port d'annonce tracker
iptables -t filter -A INPUT -p tcp --dport 6890:6999 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 6890:6999 -j ACCEPT
iptables -t filter -A INPUT -m udp -p udp --dport 6881:6999 -j ACCEPT
iptables -t filter -A OUTPUT -m udp -p udp --dport 6881:6999 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 6400 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 6400 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 6400 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 6400 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 35000 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 35000 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 35000 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 35000 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 2086 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 2086 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 2086 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 2086 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m tcp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
echo - RTORRENT : [OK]
#Décommenter ci-dessous les services que vous utilisez
# FTP (BACKUP)
# iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT
# Mail POP3:110
# iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
# Mail IMAP:143
# iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
# Mail POP3S:995
# iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT
# WEBMIN
# iptables -t filter -A INPUT -p tcp --dport 10000 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 10000 -m state --state ESTABLISHED -j ACCEPT
#******************************fin du script **************************
Supprimer une règle :
# On liste les régles avec les numéros de ligne
- Code: Tout sélectionner
iptables -L --line-numbers
- Code: Tout sélectionner
iptables -L --line-numbers -n
#Si on veut supprimer la règle de la ligne 2 de la table OUTPUT
- Code: Tout sélectionner
iptables -D OUTPUT 2
Pour activer le script IPtable dès le démarrage :
*-Vous pouvez l'ajouter au démarrage :
- Code: Tout sélectionner
cp /home/VotreNomUtilisateur/RuleFire /etc/init.d/RuleFire
chmod +x /etc/init.d/RuleFire
update-rc.d RuleFire defaults
*-Pour l'enlever du démarrage :
- Code: Tout sélectionner
update-rc.d -f RuleFire remove
Bon pour être complet voici 2 tutos rapides pour installer Fail2ban et Portsentry.
Installe de Postfix:
- Code: Tout sélectionner
apt-get install -f postfix mailutils
Installe ....... choix : Internet
adresse de la machine
*-test mail:
echo 'Salut, je suis un email.' | mail -s 'Hello world' [email protected]
Tuto installer Fail2ban :
- Code: Tout sélectionner
apt-get install -f fail2ban
*-Le configurer :
On vas créer un filtre spécial apache contre les attaques ip:
- Code: Tout sélectionner
nano /etc/fail2ban/filter.d/apache-other-Vhost.conf
*-On change dans le code si dessous : "XXX.XXX.XXX.XXX" par l'IP de notre serveur:
Exemple : Notre IP est 192.168.1.2 donc ça donne : "failregex = 192.168.1.2:80
*-On Copie et on colle dans le fichier (apache-other-Vhost.conf)
[Définition]
failregex = XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*muieblackcat
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*w00t
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*mysql
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*dbadmin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*myadmin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*MyAdmin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*admin
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*php
XXX.XXX.XXX.XXX:80 <HOST> -.*"GET .*jmx-console
ignoreregex =
*-On sauve et on quitte le fichier.
*-On créer un autre fichier :
- Code: Tout sélectionner
nano /etc/fail2ban/filter.d/apache-w00tw00t.conf
*-On colle dedans ceci :
[Definition]
failregex = ^<HOST> -.*"GET /w00tw00t.at.ISC.SANS.DFind:).*".*
ignoreregex =
*-On sauve et on quitte le fichier.
*-On configure notre fichier de configuration des "Prisons" :
- Code: Tout sélectionner
nano /etc/fail2ban/jail.conf
*-On va modifier des Block :
Block :
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1/8
bantime = 7200
maxretry = 3
Liste des adresses IP de confiance à ignorer par fail2ban
*-On ajoute dans "ignoreip" notre ip a la maison si elle est fixe.
Exemple notre ip maison : 99.99.99.99 donc ::> "ignoreip = 127.0.0.1/8 99.99.99.99
On peut aussi modifier "bantime" c'est en secondes, c'est le temps de bannissement d'une Ip
"maxretry" c'est le nombre d'essais avant qu'une connexion soit bannie
Block :
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = [email protected]
*-On met l'adresse mail ou l'on veut recevoir les logs (bannissement,démarrage).
Attention smtp doit être configuré (postfix, exim4 etc).
Je vous recommande une adresse gmail, et aussi d'installer postfix et après supprimer exim si il est installé.
Block :
# email action. Since 0.8.1 upstream fail2ban uses sendmail
# MTA for the mailing. Change mta configuration parameter to mail
# if you want to revert to conventional 'mail'.
mta = sendmail
Là on ne change rien
Block :
# Choose default action. To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section
action = %(action_)s
*-On modifie pour avoir ça :
action = %(action_mwl)s
Comme ça l'email sera un peu plus détaillée.
Maintenant on attaque les sections "Jails":
C'est là que l'on active les filtres qui vont tourner celon ce que l'on veut surveiller :
*-On passe de "false" à "true" celles que l'on veut activer
Block:
# JAILS
#
# Next jails corresponds to the standard configuration in Fail2ban 0.6 which
# was shipped in Debian. Enable any defined here jail by including
#
# [SECTION_NAME]
# enabled = true
# in /etc/fail2ban/jail.local.
#
# Optionally you may override any other parameter (e.g. banaction,
# action, port, logpath, etc) in that section within jail.local
[ssh]
enabled = false
port = ssh,sftp
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = -1
*-On va activer le filtre ssh et modifier le "port" pour avoir celui qui correspond à votre configuration :
"enabled= true"
Exemple notre port ssh est le port 158 :
"port =158"
Donc ça donne :
[ssh]
enabled = true
port = 158
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = -1
*-On va modifier ce Block pour avoir ça :
[pam-generic]
enabled = true
# pam-generic filter can be customized to monitor specific subset of 'tty's
filter = pam-generic
# port actually must be irrelevant but lets leave it all for some possible uses
port = all
banaction = iptables-allports
port = anyport
logpath = /var/log/auth.log
maxretry = 3
*-Celui là aussi on l'active en remplaçant le "port" par notre port ssh là si 158:
[ssh-ddos]
enabled = true
port = 158
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 3
*-Ceux là aussi on les active :
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 3
*-On crée ceux-ci :
[apache-Vhost]
enabled = true
filter = apache-other-Vhost
action = iptables[name=Apache-other-Vhost,port=80,protocol=tcp]
logpath = /var/log/apache2/other_vhosts_access.log
maxretry = 1
[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
action = iptables[name=Apache-w00tw00t,port=80,protocol=tcp]
logpath = /var/log/apache*/*access.log
maxretry = 1
Si vous avez un ftp listé dans la liste (genre pure-ftpd, proftpd) activez le (true)
*-On active postfix si on l'utilise :
# Mail servers
[postfix]
enabled = true
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log
*** Voila on peut relancer fail2ban ***
- Code: Tout sélectionner
service fail2ban restart
Vous devez avoir ça :
[ ok ] Restarting authentication failure monitor: fail2ban.
*-Vous faites un :
- Code: Tout sélectionner
fail2ban-client status
Et vous aurez le nombre de filtres actifs.
Voilà, de plus si votre service mail est bien configuré vous avez dû recevoir des mail de fail2ban et des filtres démarrés.
Tuto pour installer Portsentry et le configurer pour virer les tentatives de scan.
Merci a Ex_rat du site Mondedie.fr
Installe Portsentry :
- Code: Tout sélectionner
apt-get install portsentry
*-Configuration Portsentry :
- Code: Tout sélectionner
nano /etc/portsentry/portsentry.ignore.static
*-Modifier :
# IP du serveur (votre serveur)
x.x.x.x
# Votre IP maison si fixe par sécurité (ou mettre plage d'ip de votre FAI : ex: IP Orange 81.253.0.0/18 -86.208.0.0/16)
x.x.x.x
# Plage d'IP Google
66.249.64.0/19
*-Configuration de Portsentry 2:
- Code: Tout sélectionner
nano /etc/portsentry/portsentry.conf
*-Cherchez ce block la :
##################
# Ignore Options #
##################
# These options allow you to enable automatic response
# options for UDP/TCP. This is useful if you just want
# warnings for connections, but don't want to react for
# a particular protocol (i.e. you want to block TCP, but
# not UDP). To prevent a possible Denial of service attack
# against UDP and stealth scan detection for TCP, you may
# want to disable blocking, but leave the warning enabled.
# I personally would wait for this to become a problem before
# doing though as most attackers really aren't doing this.
# The third option allows you to run just the external command
# in case of a scan to have a pager script or such execute
# but not drop the route. This may be useful for some admins
# who want to block TCP, but only want pager/e-mail warnings
# on UDP, etc.
#
#
# 0 = Do not block UDP/TCP scans.
# 1 = Block UDP/TCP scans.
# 2 = Run external command only (KILL_RUN_CMD)
BLOCK_UDP="0"
BLOCK_TCP="0"
*-Et mettez "1" a la place de "0":
BLOCK_UDP="1"
BLOCK_TCP="1"
*-Cherchez le Block ci dessous et vérifier que devant KILL_ROUTE se soit décommenté (pas de #) :
# Newer versions of Linux support the reject flag now. This
# is cleaner than the above option.
KILL_ROUTE="/sbin/route add -host $TARGET$ reject"
Aller au Block :
###################
# External Command#
###################
# This is a command that is run when a host connects, it can be whatever
# you want it to be (pager, etc.). This command is executed before the
# route is dropped or after depending on the KILL_RUN_CMD_FIRST option below
#
#
# I NEVER RECOMMEND YOU PUT IN RETALIATORY ACTIONS AGAINST THE HOST SCANNING
# YOU!
#
# TCP/IP is an *unauthenticated protocol* and people can make scans appear out
# of thin air. The only time it is reasonably safe (and I *never* think it is
# reasonable) to run reverse probe scripts is when using the "classic" -tcp mode.
# This mode requires a full connect and is very hard to spoof.
#
# The KILL_RUN_CMD_FIRST value should be set to "1" to force the command
# to run *before* the blocking occurs and should be set to "0" to make the
# command run *after* the blocking has occurred.
*-Et ajoutez ceci :
# Ajout de moi
KILL_RUN_CMD="/sbin/iptables -I INPUT -s $TARGET$ -j DROP && /sbin/iptables -I INPUT -s $TARGET$ -m limit --limit 3/minute --limit-burst 5 -j LOG --log-level debug --log-prefix 'Portsentry: dropping: '
*-On sauve ( Ctrl + o, enter, Ctrl + x )
*-On édite :
- Code: Tout sélectionner
nano /etc/default/portsentry
*-On modifie le Block ainsi :
# /etc/default/portsentry
#
# This file is read by /etc/init.d/portsentry. See the portsentry.8
# manpage for details.
#
# The options in this file refer to commandline arguments (all in lowercase)
# of portsentry. Use only one tcp and udp mode at a time.
#
TCP_MODE="atcp"
UDP_MODE="audp"
Voilà on vient de passer en mode automatique la détection de nos ports qui sont utilisés.
*-Un coup de :
- Code: Tout sélectionner
service portsentry restart
et voilà Portsentry est démarré et fonctionne en dropant les scans
*-Pour vérifier les log de Portsentry :
- Code: Tout sélectionner
cat /var/log/daemon.log | grep "portsentry"
******* Un ptit Merci sera Apprécié. ********
Vu+ Zero BlackHole 3.0.3.0, oscam r11360,cccam 2.1.4,wicard 1.19
Vu + Zéro OpenPLi 4.0 , OSCAM 1.20-unstable_svn SVN r8972 script serveur
Atlas HD 200 Se
Vu + Zéro OpenPLi 4.0 , OSCAM 1.20-unstable_svn SVN r8972 script serveur
Atlas HD 200 Se