[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: intrusion par ssh



Bonjour,
salut,

Quelqu'un peut-il m'indiquer comment je devrais réagir en termes de
sécurisation?

Voici ma méthode pour accéder en ssh aux serveurs de la boite depuis le LAN ou internet. Il necessite un serveur mail.

Par défaut, j'ai ça:

# cat /etc/hosts.allow
ALL: 192.168.99.0/255.255.255.0

# cat /etc/hosts.deny
sshd: ALL

Ce qui signifie que depuis le LAN, je peux faire du ssh mais nada depuis internet. Donc, mon /var/log/secure est nickel.

Quand je suis chez moi et que je veux bosser, c'est à dire faire du ssh sur un serveur de la boite, j'envoie un mail avec le sujet "ouverture du service ssh" à un user spécial (genre robot@mondomaine.com). A réception, postfix fait travailler procmail qui vérifie si les 2 contraintes sont respectées (sujet + destinataire). Si c'est le cas, alors, il lance un petit script perl pour modifier le host.allow. De la même façon, lorsque je veux protéger le service ssh depuis internet, j'envoie un mail avec le sujet "fermeture du service ssh" à mon user spécial.

Voici le détail de la procédure:


Activation de procmail dans postfix:
Dans /etc/postfix/main.cf, mettre la ligne
mailbox_transport = procmail
à la place de la ligne
#mailbox_transport = cyrus

C'est le user cyrus (group mail) qui lance le script depuis /etc/procmail
chmod 664 /etc/hosts.allow
chown root.mail /etc/hosts.allow

# cat /etc/procmailrc
LOGFILE = /var/log/procmail.log
LOGABSTRACT = "all"
VERBOSE = "off"
SHELL = /bin/bash

DELIVERMAIL="/usr/libexec/cyrus/deliver"
IMAP="$DELIVERMAIL -e -a $USER -m user.$USER"
BACKUP="$DELIVERMAIL -e -a $USER -m user.$USER.sav"

#INCLUDERC=/home/$USER/.procmailrc

#################################################################### ### Create a backup of the messagejust in case one of our recipes fail ### We can always comment this out later when we're confident of our recipes ####################################################################


#:0 c
#| $BACKUP


#ouvrir ssh (rajoute une sshd: ALL dans hosts.allow)
:0:
* ^Subject: ouverture du service ssh
* ^To: TON_USER_SPECIAL@TON_DOMAIN.FR
|echo "sshd: ALL" >> /etc/hosts.allow

#fermer ssh (vire sshd: ALL de hosts.allow)
:0:
* ^Subject: fermeture du service ssh
#|perl -pi -e 's/sshd: ALL/ /g' /etc/hosts.allow
1) créer un hosts.allow temporaire dans tmp
2) vider le /etc/hosts.allow
3) remplir le /etc/hosts.allow à patir de /tmp/hosts.allow
|sed -e 's/sshd: ALL/ /g' /etc/hosts.allow > /tmp/hosts.allow && sed '' /etc/hosts.allow > /etc/hosts.allow && cat /tmp/hosts.allow >> /etc/hosts.allow


########################################################### ### Deliver it to the user inbox ###########################################################

:0 w
| $IMAP

:0 w
{
EXITCODE=$?
HOST
}

Autrement, à chaque fois que quelqu'un se connecte en ssh sur tes serveurs, il lance automatiquement /etc/ssh/sshrc. Il suffirait d'y placer la ligne :
echo $USER | mail -s "Connexion ssh depuis internet" root
pour récupérer toutes les connexions réussies.

voilà voilà

a+

f.



Reply to: