Andesi - forum

Forum francophone pour Debian

Vous n'êtes pas identifié(e).

#1 14/03/2006 01:29:45

oliver82
Membre
Lieu : Montauban
Inscription : 08/09/2005
Messages : 26

antihack, anticrack... et anti-guigne?

Bonjour,

j'ai un gros soucis. Je suis victime d'un hacker qui doit se faire les dents sur moi... enfin plutôt sur le serveur d'un collègue.

Il y a quelques mois j'ai monté un serveur web sous debian. J'ai monté aussi un poste qui fait office de firewall-proxy-dns entre le routeur et le reste du réseau local (comprenant le serveur web). Bon là, j'aurai pu déjà faire une DMZ...

Son provider lui a fourni une adresse ip publique. Sur le firewall j'ai ouvert 3 ports qui sont accessibles depuis l'extérieur : ssh, http et https. Ces 2 derniers étant redirigés vers le serveur web.

1ère attaque : bon ben là, c'est un peu ma faute. J'avais pas sécurisé ssh et le collègue avait mis un mot de passe root contenant que 6 chiffres... Du coup, il s'est fait cassé le code sur le firewall et le gars s'est logué en root. Par chance, le pirate a laissé plein de trace partout. Je corrige donc le tir. On réinstalle tout et on recommence.

J'interdis root sur ssh et j'ajoute un utilisateur dont lui seul peut se loguer en ssh...Je modifie aussi le port d'écoute de ssh.

Soit dit en passant, mon collègue avait reçu un gars qui audite la sécurité juste avant le piratage... Il lui avait proposé une solution (payante bien évidemment)... Bon soyons pas mauvaise langue.

2ème attaque : 3-4 semaines plus tard, aujourd'hui... J'arrive au boulot... Mon téléphone sonne... C'est mon collègue. Ils n'ont plus d'accès Internet. Je me logue sur le serveur qui met du temps à me répondre. J'essai en même temps de me connecter à son site web : connection time out !... Bon j'ai tout de même ssh... mais vu les temps de réponse (genre je tape une lettre et j'ai le temps d'aller me reservir un cappuccino et revenir). Et depuis ce matin , c'est une lutte à mort...
Je crois que je suis victime d'un DOS... Alors j'ai mis tout ce que l'on peut mettre avec iptables, rien n'y fait... je drope, je reject, je tombe le serveur web, je stoppe squid et bind9...
En plus tout cela en ssh avec les temps de latence. Je me vois obligé de refaire des shutdown -r now pour reprendre un temps la main de manière à peu près confortable....
Au bout de 4 heures de lutte, je fais un erreur, shutdown -h now.... Bon du coup, il me reste plus qu'à me coucher....

Voici le script iptables que j'ai repiqué sur léa-linux :

#!/bin/sh
# Pour info :
#eth0=carte coté routeur
#eth1=carte coté réseau local

# Activation du forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

# Pour empêcher les attaques de type spoofing
# et bloquer les réponses ICMP du firewall,
# Attention, le fait de bloquer le trafic ICMP sur
# le firewall bloque les pings.

# Pas de spoofing

if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $filtre
done
fi

# pas de icmp

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts


# Pour faire bien, on va vider toutes les règles
# avant d'appliquer les nouvelles règles de firewall

iptables -F
iptables -X

# Ajout de 2 nouvelles chaînes.
# Ceci permettra d'ajouter des nouvelles cibles qui
# auront la possibilité de loguer ce qui se passe.

# La on logue et on refuse le paquet,
# on rajoute un préfixe pour pouvoir
# s'y retrouver dans les logs
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP

# ici, on logue et on accepte le paquet,
# on rajoute un préfixe pour pouvoir
# s'y retrouver dans les logs
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT

# Par defaut on refuse tout

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Pour éviter les problèmes, on va tout accepter sur
# la machine en local (interface lo).

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# FIN partie initialisation ####################################################################################

# Protection comtre nmap

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# Protection contre le Syn Flood

iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -J ACCEPT

# Protection contre le chargen Chargen Denial of Service Attack UDP Flood

iptables -A FORWARD -p udp -m limit --limit 1/second -J ACCEPT

# Protection contre Smurfing

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -J ACCEPT

# Autorisation pour que le proxy ait une connexion
# internet directe.
# Mise en place des états

iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT

# Redirection vers le proxy squid

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.76:3128

# Redirection vers le serveur web

iptables -t nat -A PREROUTING -d 192.168.1.168 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.77:80

# Configuration du firewall #####################################################################################

# Autorisation connexion ssh
# (port 22) provenant d'une machine exterieure

iptables -A INPUT -i eth0 -s 0/0 -m state --state NEW,ESTABLISHED -p tcp --dport ssh -j LOG_ACCEPT
iptables -A OUTPUT -o eth0 -d 0/0 -m state --state ESTABLISHED -p tcp --sport ssh -j LOG_ACCEPT

# On veut que le LAN connecté à l'interface
# eth0 ait un accès complet à internet.
# La règle de NAT qui permettait d'avoir
# un proxy transparent sera automatiquement
# appliqué. L'interface correspondant
# à la connexion internet est ici eth0

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT

# Maintenant il n'y a plus qu'à dire au firewall
# d'autoriser à transmettre des paquets TCP à
# destination du port 80 provenant de l'adresse
# IP publique (i.e. d'internet) vers le serveur
# web que nous avons naté précédemment.

iptables -A FORWARD -i eth0 -o eth1 -p tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth0 -i eth1 -p tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT

# Il faut permettre à l'ensemble du LAN de dialoguer
# sur internet avec la même adresse IP.

iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE

# Toutes les règles qui n'ont pas passé les
# règles du firewall seront refusées et loguées...
# facile :

iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP

# Contre Emule

iptables -A INPUT -p tcp --dport 4662 -m state --state NEW,ESTABLISHED,RELATED -j LOG_DROP
iptables -A INPUT -p udp --dport 4665 -m state --state ESTABLISHED,RELATED -j LOG_DROP
iptables -A INPUT -p udp --dport 4672 -m state --state ESTABLISHED,RELATED -j LOG_DROP

# Pour faire zoli
echo " [Termine]"

# c'est enfin fini

C'est grâce à LOG_DROP, que j'ai pu voir le soucis. J'avais plein de refus provenant d'une adresse IP extérieure dans les logs. Hélas les logs sont sur le serveur dont je n'ai plus accès, vu que je l'ai éteint...

Le serveur firewall tourne sous debian sarge 3.1 avec un noyau 2.6.15.

Bon ben voilà... Le truc bizare dans l'affaire, c'est que son site ne comporte aucune donnée sensible et n'est pas utilisé dans un but lucratif.... D'ailleurs, il n'est même pas référencé dans les moteurs de recherche... Ce dernier n'évite bien évidemment pas les tentatives de piratage... Mais bon il faut à un moment que le jeu en vaille la chandelle pour le pirate... Je me demande si le gars de l'audit n'y serait pas pour quelque chose... Sinon son serveur est devenu l'attraction principale des pirates en herbe qui veulent se faire la main...

Demain est un autre jour... J'ai perdu la bataille mais pas la guerre... Je mettrais les logs sur le forum demain.

Hors ligne

#2 14/03/2006 11:39:39

ioguix
Administrator
Lieu : Paris
Inscription : 25/04/2003
Messages : 3 945

Re : antihack, anticrack... et anti-guigne?

Salut,

Tu dis que tu as arrêté tous les services ouvert vers l'extérieur (sauf ssh) et que la machine était toujours down ? Et la machine continuait à être si lente ??

Dans tes logs, l'IP rejettée est toujours la même ? sur le même protocol ? lequel ? à quelle fréquence ?

As tu essayé de stoper le journal des paquet rejeté histoire de retirer un peu de charge sur ton serveur ? (c'est faible hein)

As-tu pû détecté quel processus occupait ton système comme ça ? était-ce le système ou le réseau qui était saturé ?

Tu peux pas appeler la personne de ton bureau pour qu'elle redémarre la machine ?

++


[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222

Hors ligne

#3 14/03/2006 11:51:56

oliver82
Membre
Lieu : Montauban
Inscription : 08/09/2005
Messages : 26

Re : antihack, anticrack... et anti-guigne?

Salut,

Actuellement le serveur web est down et pas de problème. Cependant comme le firewall l'a été aussi durant cette nuit, le hacker a pu arrêter l'attaque...

J'attends que mon collègue soit plus dispo pour qu'il me redémarre le serveur web et voir ce qui se passe....

Voici un extrait de syslog (ligne répétée à "l'infini") :

kernel: [IPTABLES DROP] : IN=eth0 OUT=eth0 SRC=192.168.1.77 DST=86.107.130.61 LEN=43 TOS=0x00 PREC=0x00 TTL=63 ID=54763 DF PROTO=UDP SPT=32780 DPT=53 LEN=23

192.168.1.77 = serveur web

voilà, je continue mon enquête...

Hors ligne

#4 14/03/2006 12:04:52

ioguix
Administrator
Lieu : Paris
Inscription : 25/04/2003
Messages : 3 945

Re : antihack, anticrack... et anti-guigne?

Salut,

Et ben à prioris, tu te fait attaquer depuis la roumanie (commande whois)...

C'est toujours la même adresse IP source ?


[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222

Hors ligne

#5 14/03/2006 15:11:21

oliver82
Membre
Lieu : Montauban
Inscription : 08/09/2005
Messages : 26

Re : antihack, anticrack... et anti-guigne?

Rooo.... Ils sont fous ces roumains... J'avais vu mais bon est-ce vraiment un roumain ou un pc "otage malgré lui"....

Bon de toute façon j'ai plus la main dessus car j'ai pas mal de boulot ici. Quelqu'un d'autres a pris le relais... Lui il part sur un IPCOP pour le firewall mais reste sur Debian pour le serveur web.

En tout cas merci pour ton aide wink...

Olivier

Hors ligne

Pied de page des forums