1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
import os
import pickle
import re
## Definition des variables
#############################
MAX_ESS = 6
#DELAY =
# Mettre ici les adresses IP autorisees a faire une connexion SSH
AUTH_IP = ['192.168.1.1','192.168.2.1']
#Saisir ici l'adresse mail de l'administrateur
EMAIL = "pierre.martin@hotmail.fr"
## Changement du port SSH par defaut : 22 -> 22022
###################################################
ssh_config = open("sshd_config.txt","r")
chaine=ssh_config.read().replace('Port 22','Port 22022')
ssh_config.close()
f=open("sshd_config.txt",'w')
f.write(chaine)
f.close()
## Mise en place des regles
####################################################
## Ajout de la regle qui permet de surveiller les connexions SSH
os.system("iptables -t filter -A INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport ssh -j LOG --log-prefix \"IPT-IN-SSH\" ")
os.system("iptables -t filter -A INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport ssh -j ACCEPT")
# creation du fichier log
os.system("touch /VAR/LOG/SSH_CONNEXIONS")
# redirection des logs ssh vers le fichier adequate
#/var/log/logauth.log
prefix = ["IPT-IN-SSH"]
FICH_LOG = open ("logauth.log.txt","r")
FICH_SSH_LOG = open ("SSH_CONNEXIONS.txt","a")
chaine=FICH_LOG.read()
for prefix in chaine :
pickle.dump (chaine, FICH_SSH_LOG) # copie toutes les lignes contenant le prefix dans le fichier log ssh mais la ca marche poooo!!!!!!
FICH_LOG.close()
FICH_SSH_LOG.close()
# creation du fichier IP a BANNIR
os.system("touch /var/log/BAN_IP")
# recherche des adresses IP et copie vers fichier BAN_IP
# comptabilisation du nombre de tentative si superieur a MAX_ESS -> BAN + envoie mail vers admin
balise = 'Failed password for invalid user a from '
balise2 = 'Failed password for root from '
end_balise = ' port'
motif = balise + '.*' + end_balise
motif1= balise2 + '.*' + end_balise
FICH_SSH_LOG = open ("SSH_CONNEXIONS.txt","r")
BAN_IP = open("BAN_IP.txt","a")
texte = FICH_SSH_LOG.read()
FICH_SSH_LOG.close()
....... |
Partager