Koozali.org: home of the SME Server

Fail2ban - comment créer /etc/fail2ban/action.d/smeserver-iptables-tarpit.conf

Offline Xavier.A

  • ***
  • 104
  • +0/-0
Salut à tous,

La question que je pose s'adresse en premier lieu à Daniel B. de FWS le mainteneur de la contrib Fail2ban mais les autres membres du forum peuvent participer, sachant que j'anticipe un peu sur la future SME9, qui avec un kernel plus récent, devrait nous permettre d'utiliser nativement des iptables plus récents et des xtables-addons avec Tarpit.

Pour ceux qui n'ont pas l'habitude, ça peut toujours être utile de se pencher sur l'utilisation du Firewall de la SME et son optimisation/son adaptation à des usages spécifiques ;-)

Avant d'utiliser la contrib, j'avais l'habitude d'utiliser Fail2ban à partir des sources et de l'adapter à mes besoins comme pour l'exemple de cet après-midi dans le http://bugs.contribs.org/show_bug.cgi?id=8071.

J'ai pris bonne note de ta réactivité et de plus  je sais que tu essayais depuis un moment (cf un vieux post sur Ixus) de faire fonctionner Fail2ban sur SmeServer.

1) Le contexte
Voilà, en utilisant ta contrib, je ne m'y retrouve plus, j'essaie de comprendre son fonctionnement et je vais y arriver mais j'ai besoin d'un peu d'aide pour y voir plus clair.

Dans le répertoire /etc/fail2ban/action.d, il y a parmis les autres scripts habituels, ça:
  • smeserver-iptables.conf
  • smeserver-sendmail.conf

Si je me penche sur smeserver-iptables.conf, on y trouve ça :
actionban = /sbin/e-smith/smeserver-fail2ban --host=<ip> --proto=<protocol> --port=<port> --bantime=<bantime>

(je vais à l'essentiel donc pour ceux qui n'ont jamais pratiqué fail2ban ça peut être bon de récupérer les sources)

Si je regarde /sbin/e-smith/smeserver-fail2ban (du très beau Perl en passant ;-) j'y vois à la fin :

/sbin/e-smith/signal-event fail2ban-update

qui met à jour ce qui sert de script IpTables pour la SME, c'est à dire /etc/rc.d/init.d/masq (dailleurs avec les iptables récents, ce script génère des erreurs mais c'est un autre problème)

2) L'objectif

Je voudrais créer action.d/smeserver-iptables-tarpit.conf pour rendre plus difficile certain scan d'apache avec dedans l'équivalent de ça:
actionban = iptables -I fail2ban-<name> 1 -s <ip> -p tcp -j TARPIT
                 iptables -I fail2ban-<name> 1 -s <ip> -j DROP

et évidemment si je remplace la commande iptables par /sbin/e-smith/smeserver-fail2ban ça ne va pas fonctionner !

3) La question

Comment adapter ta contrib pour lui faire faire ce que je veux, c'est à dire "tarpiter" les vilains script kiddie ?

Merci d'avance pour toutes les réponses.

Xavier
“When the wise man points to the moon, the fool looks at the finger.”

Offline Daniel B.

  • *
  • 1,699
  • +0/-0
    • Firewall Services, la sécurité des réseaux
Salut à tous,

La question que je pose s'adresse en premier lieu à Daniel B. de FWS le mainteneur de la contrib Fail2ban mais les autres membres du forum peuvent participer, sachant que j'anticipe un peu sur la future SME9, qui avec un kernel plus récent, devrait nous permettre d'utiliser nativement des iptables plus récents et des xtables-addons avec Tarpit.

J'ai pas testé, mais la cible TARPIT semble dispo sous SME8 aussi.


J'ai pris bonne note de ta réactivité et de plus  je sais que tu essayais depuis un moment (cf un vieux post sur Ixus) de faire fonctionner Fail2ban sur SmeServer.

J'ai pas mis tout ce temps à la faire, c'est juste que ça faisait très longtemps que je voulais m'y mettre, et je n'ai pris le temps de m'y attaquer que cette année ;-)

Comment adapter ta contrib pour lui faire faire ce que je veux, c'est à dire "tarpiter" les vilains script kiddie ?

Oui, comme tu as vu, tout est fait par /sbin/e-smith/smeserver-fail2ban. Ce script prend en paramètres certaines options passées par fail2ban (protocole, port, durée du ban), met à jour la DB SME (db fail2ban) et invoque un signal-event fail2ban-update qui régénère le script masq et applique les changements.

La meilleur solution serait que j'ajuste ce script /sbin/e-smith/smeserver-fail2ban pour lui ajouter une option (par exemple --target=DROP, --target=REJECT ou --target=TARPIT), et que je fasse en sorte de pouvoir choisir la cible par défaut avec une clé de DB.

Je jetterai un œil au taf nécessaire quand j'ai un moment, je promet pas de date ;-)

Par contre, je vois pas trop l'intérêt par rapport à un simple DROP dans le cas de fail2ban, si tu peux m'éclairer.....
C'est la fin du monde !!! :lol:

Offline Xavier.A

  • ***
  • 104
  • +0/-0
J'utilise déjà Tarpit en complément de Drop pour certain ports particulièrement attaqués ce qui permet de ralentir les attaques en gardant la connexion active mais en mettant la taile de la "fenêtre TCP" à zero, c'est à dire que l'attaquant va attendre indéfiniment une réponse du serveur ou jusqu'au timeout.

Le Drop avec Fail2ban est trés efficace cependant Tarpit permet vraiment de ralentir l'attaquant, mais car il y a un mais, Tarpit ne peut fonctionner qu'avec TCP c'est sa limitation. On se rapproche presque du concept "HoneyPot" ou piège à C*N adapté au réseau.

En cas de récidive de scan http ou de scan de ports trop appuyé, détecté par Fail2ban dans les logs, l'attaquant est "tarpité" pour le port TCP attaqué et "dropé" pour tous les autres (UDP/ICMP)

Pour éviter des explications trop techniques ici, je renvois tout le monde aux articles suivants (liste non-exhaustive):

Évidemment Tarpit peut être utiliser directement avec la commande iptables (adaptation à partir de la doc http://wiki.contribs.org/Firewall) :

mkdir -p /etc/e-smith/templates-custom/etc/rc.d/init.d/masq/
nano -w /etc/e-smith/templates-custom/etc/rc.d/init.d/masq/40DenyRiffRaff

# Interdire l'acces par IP sans spécifié un port tcp
/sbin/iptables -A INPUT -p tcp -s 69.212.12.76/32 -j TARPIT
/sbin/iptables -A INPUT -s 69.212.12.76/32 -j DROP


Comme tout le monde le sait, ça ne sert souvent à rien de bannir longtemps une IP, car les attaquants peuvent changer d'IP (sauf peut-être dans le cas d'Universités nord-coréennes).

Adaptation du script avec GeoIP (les pays en question me broutent les nerfs ;-) )

nano -w /etc/e-smith/templates-custom/etc/rc.d/init.d/masq/40DenyRiffRaff

# Interdire l'acces au port 25 (SMTP)
/sbin/iptables -A INPUT -p tcp --dport 25 -m geoip --src-cc AR,BR,CN,PL,RO,RU,SK,TH,TR,TW,UA -j ULOG --ulog-prefix "GeoIP BAN: SMTP"
/sbin/iptables -A INPUT -p tcp --dport 25 -m geoip --src-cc AR,BR,CN,PL,RO,RU,SK,TH,TR,TW,UA -j TARPIT
/sbin/iptables -A INPUT -p tcp --dport 25 -m geoip --src-cc AR,BR,CN,PL,RO,RU,SK,TH,TR,TW,UA -j DROP


Ici le Drop ne sert à rien puisque le port est spécifié je le laisse juste pour mémoire. Cette méthode n'est pas infaillible mais ça peut être un complément de la contrib GeoIP http://wiki.contribs.org/GeoIP

J'espère que ces quelques explications vont te motivés, Daniel, pour adapter ta contrib qui ma fait abandonner l'installation par les sources de Fail2ban  :lol:

En revanche, pour les autres lecteurs du forum, Fail2ban n'est qu'un outil parmi d'autre, il peut (devrait) être complété par un autre à base de LibPcap avec ou sans réponse active (N/H/IDS/IPS) et surtout il ne faut, sauf cas particulier, n'ouvrir que les ports absolument nécessaires.

Voilà, A+

P.S. : Daniel, tu avais demandé, y a bien longtemps (je crois) des exemples de filtres Fail2ban : est-ce que c'est toujours un besoin?
Si oui, je dois avoir du failregex pour les logs de snort, de qpsmtpd, d'apache
« Last Edit: December 20, 2013, 07:04:37 PM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline stephdl

  • *
  • 1,519
  • +0/-0
    • Linux et Geekeries
Heu....pourquoi tout cela n'est pas marqué dans le wiki...autant de connaissance *doit* être partagée sinon cela ne sert à rien de l'accumuler... :cool:
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

Offline Xavier.A

  • ***
  • 104
  • +0/-0
Salut Steph, tu ne manques pas une occasion de me rappeler mes devoirs ;-)

Dès que Daniel a adapté sa contrib, je te ponds de la doc aux petits oignons, d'ailleurs j'en profite pour te signaler un article en cours d'écriture sur le chaînage de proxies (Privoxy + Polipo/Squid+ Tor/I2P/Freenet) http://blog.ansoult.fr/co/privoxy.html et il va en avoir un autre sur l'anonymisation de Squid avec un bout de template 96xForwardedFor (j'ai pompé sur le site de FWS et adapté/complété :lol: )
« Last Edit: December 20, 2013, 07:21:01 PM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline stephdl

  • *
  • 1,519
  • +0/-0
    • Linux et Geekeries
désolé de titiller mais la force de la sme-server ce sont ses contribs, son immense documentation et les gens qui alimentent tout cela....
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

Offline Daniel B.

  • *
  • 1,699
  • +0/-0
    • Firewall Services, la sécurité des réseaux
Bon, après analyse, la cible TARPIT n'est pas disponible, ni sur SME8, ni sur SME9. SME8 contient ce qu'il faut niveau userspace, mais il manque le support kernel, et sur SME9, même la partie userspace a été retiré. Ça restera donc sur du DROP ;-)
C'est la fin du monde !!! :lol:

Offline Xavier.A

  • ***
  • 104
  • +0/-0
ok, je m'y attendais un peu mais c'est pas grave il me reste l'installation par les sources.

Le problème c'est que j'installe de plus en plus de soft par les sources sur SME et sur CentOS par rapport à une Debian stable!

A+
« Last Edit: December 23, 2013, 11:33:15 AM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline Xavier.A

  • ***
  • 104
  • +0/-0
Bon finalement,
Après des tests, la contrib peut être adaptée avec des template-custom pour utiliser les actions natives de Fail2ban.
Il faut juste y remplacer dans les définitions des jails

smeserver-iptables
par
  • iptables
  • iptables-multiport
  • iptables-allports
  • iptables-tarpit
Ca a même l'avantage de rendre Fail2ban plus rapide et réactif en fonction évidement des RegEx dans les filtres.

En revanche on peut garder smeserver-sendmail qui n'est que la définition de l'action sendmail dont il a été retiré actionstart, actionstop et actioncheck
“When the wise man points to the moon, the fool looks at the finger.”

Offline Daniel B.

  • *
  • 1,699
  • +0/-0
    • Firewall Services, la sécurité des réseaux
On peut tout faire avec les templates-custom, évidemment, sauf que là, je n'y vois pas d'intérêt. La cible tarpit n'est pas disponible sous CentOS, ça les actions natives de fail2ban n'y changeront rien. Ensuite utiliser iptables, iptables-multiport, iptables-allports n'a pour seul avantage technique qu'une exécution un poil plus rapide (aucun autre avantage fonctionnel). Par contre, ça a de gros inconvénients (et c'est pas pour rien que j'ai créée l'action smeserver-iptables): tout est volatile. Si la configuration du par feu est régénérée (par exemple en modifiant un paramètres dans la section Accès à distance du server-manager), les règles iptables insérés par Fail2ban auront disparues, sans que Fail2ban en soit informé. Donc:

- la blacklist à sauté pour certaines IP, mais fail2ban est persuadé que ces IP sont encore blacklistées, donc si y'a d'autres tentatives, fail2ban ne les ré-ajoutera pas
- quand la limite de temps sera atteinte, fail2ban va essayer de sortir ces IP de la blacklist, mais comme elles existent plus dans iptables, ça génèrera des messages d'erreur

Bref, trop facile de se retrouver dans une situation d'incohérence entre la vue de fail2ban et la réalité. C'est justement pour régler ça que j'ai fais smeserver-fail2ban, et c'est la garantie de cohérence qui rajoute quelques secondes à l'exécution (inscription des IP dans une DB, expand-template et ajustement du script masq)
C'est la fin du monde !!! :lol:

Offline Xavier.A

  • ***
  • 104
  • +0/-0
@Daniel

Je ne veux pas dénigrer ton travail, c'est une super contribs pour la grande majorité des utilisateurs de SME Server mais dans ta réponse, il y a des points qui me "titillent" un peu :
1) Les cibles ne sont pas disponibles chez CentOS et alors?
2) La volatilité des configurations de Fail2ban, de IpTables, c'est à dire?
3) Blacklist, message d'erreur et problème d'incohérence au niveau de la configuration du serveur?

1)C'est ce qui me gène le plus dans ta réponse, c'est de dire que comme c'est pas dispo alors il ne faut pas triturer ta contrib !
Tout d'abord je ne vois pas ce qui empêche d'installer un iptables à partir des sources mais d'accord en production les RPMs c'est mieux. La cible "tarpit" en question est disponible dans les sources de iptables depuis un bon moment !

L'iptables installé avec une SME Server, n'est pas utilisable dans mon cas, pour l'utilisation que je fais de certaines machines (recherche académique et expérimentation de solution de sécurité open source):

# rpm -qa | grep -i iptables
iptables-1.3.5-9.2.el5_8

Ca pique les yeux ! Cet iptables date de ....janvier 2006 (8 ans). Il y en a eu des corrections de bogues depuis janvier 2006 et des évolutions du Kernel !

On en est à iptables 1.4.21 (http://www.netfilter.org),  je ne l'ai pas encore testé ni même nftables mais pour moi ne pas mettre à jour son iptables c'est quasi criminel.

Surtout qu'apres une installation d'un kernel récent et optimisé à partir des sources (https://www.kernel.org/) ou un de ceux mis à dispo par la team ELRepo (http://elrepo.org), on peut mettre à jour iptables facilement:

cd /usr/local/src
wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.20.tar.bz2 http://www.netfilter.org/projects/iptables/files/iptables-1.4.20.tar.bz2.sig
gpg --verify iptables-1.4.20.tar.bz2.sig
tar xvjf iptables-1.4.20.tar.bz2
rm -f iptables
ln -sv iptables-1.4.20 iptables

cd iptables
 ./configure --prefix=/usr \
 --exec-prefix= \
 --bindir=/usr/bin \
 --libdir=/lib64 \
 --with-xtlibdir=/lib64/xtables \
 --with-pkgconfigdir=/usr/lib64/pkgconfig \
 --enable-libipq \
 --enable-devel \
 --with-ksource=/usr/src/kernels/$(uname -r)-x86_64
 
make

Débrancher la machine du WAN

rpm -e --nodeps iptables.x86_64

make install

Relancer le "parefeu" de la SME Server

/sbin/e-smith/expand-template /etc/rc.d/init.d/masq
service masq restart
iptables -V
iptables -v -L -n
iptables -j TARPIT -h
iptables -m ipp2p  -h
iptables -m layer7 -h
iptables -j ULOG -h
iptables -j LOG -h

Rebrancher au Wan avec un iptables tout neuf. (bon il faut corriger le script /etc/rc.d/init.d/masq qui génère des erreurs en fonction du paramétrage du serveur, on en reparlera à la sortie de la SME10)

Je sais que tu sais faire, l'exemple je le mets juste pour signaler que ce n'est pas impossible à faire ;-)
Je penses que tu le sais mais ne pas mettre à jour un maillon aussi essentielle que Iptables pour un serveur c'est pas terrible et en tout cas c'est pas parce que ce n'est pas packagé ou disponible dans un dépôt qu'il ne faut pas le faire d'autant plus que des spec sont eux disponibles pour créer les rpms.

Si on dépasse l'aspect anecdotique de la mise à jour d'iptables, je reconnais que je ne vois pas bien l'intérêt de la blacklist en lien avec la db.

2) La blacklist de Fail2ban, autrement dit le fait que Fail2ban sache quelles Ip il a déjà blacklisté lorsqu'il redémarre, va disparaître comme par magie.
Bizarre parce que sans ta contribs ça marche trés bien et donc avec ta contribs ça continue à fonctionner correctement. Je vais pas rentrer dans le détail du fonctionnement de Fail2ban et du script "/etc/rc.d/init.d/masq" mais là franchement je ne vois pas où tu es allé chercher ça. C'est vrai que le fait de mettre en db sur une SME Server ça ne peut pas faire de mal mais Fail2ban se débrouille trés bien sans la db. Je ne vois pas le lien que tu fais entre la configuration de Fail2ban et celle de l'iptables de SME.

Peux tu m'éclairer sur ce point?

J'ai fait le test en gardant de ta contribs juste les parties concernant le fail2ban.conf et les parties du jail.conf concernant les services à protéger. Les choix que tu fais de configuration sont de toute manière à adapter au besoin de l'admin notamment concernant :
-ignoreip (il faut corriger un bug lorsqu'on ajoute une IP, je t'en reparlerai plus tard)
-backend (la config de la contrib fait planter Fail2ban en cas de mauvais choix/définition de jail)
Fail2ban continue à faire son job même si parfois il a du mal avec la rotation des logs.

Je suis conscient que pour réaliser cette contrib tu as fait des choix au niveau de son code pour en simplifier la configuration en lien avec la db de la SME.  Cependant si on prend comme hypothèse que la plupart des attaques que l'on voit passer ont pour origine des IP issues du cloud d'amazon, de pool d'IP de serveurs virtualisés ou d'universités Nord-coréennes, blacklister ces IP n'a pas d'utilité sur le court ou moyen terme. Il vaut mieux privilégier la vitesse de réaction de la machine quitte à utiliser la jail [recidive] pour bannir plus longuement une IP, la mettre en base de donnée voire l'ajouter au script qui génére le host.deny
Surcharger Iptables avec toute une liste d'IP que l'on sait être utilisées que pour faire des attaques ça n'a pas de sens à mon avis.
La vitesse n'est pas un avantage fonctionnel dérisoire quand une machine doit réagir à une attaque. C'est même une caractéristique essentielle de sa capacité à pouvoir se défendre efficacement en fonction des types d'attaque.
Dans le cas des scans de serveur Web ou SMTP, "droper" les IP est moins efficace pour le réseau que de les "tarpiter" car les machines attaquantes vont voir que les ports se sont fermés et vont aller attaquer une autre cible alors que si les ports semblent restés ouverts elles vont "s'acharner" mais la machine cible elle ne verra pas ses performances impactées.
Le fait de fermer les ports donne aussi des informations sur le type de défense mise en place et donc un attaquant chevronné pourrait tenter de la contourner.

Pour mes recherches, je fais aussi tourner différents outils de type honeypot dont un portsentry patché par mes soins sur une SME server avec du "Tarpitage"  pour garder les connexions ouvertes.
Le résultat des tests en liant Portsentry, Fail2ban et Tarpit, c'est un ralentissement certain de la vitesse d'attaque de la machine lançant le scan. Dans le cas de nmap, si on simule l'ouverture dynamique de tous les ports, nmap ne sait plus donner de résultats vraiment exploitables. Clairement pour améliorer l'hygiène du réseau élargie la cible tarpit d'iptables permettrait de faire diminuer non pas la quantité d'attaque mais leur vitesse, les rendant ainsi beaucoup moins efficace.

3) Je n'ai pas constaté ce que tu décris concernant des problèmes d'incohérence notamment lors de re-démarrage du service Fail2ban si l'ordre de ré-démarrage est respecté.
C'est à dire en relançant Fail2ban à chaque fois que le script du parefeu est re-généré. Si Fail2ban n'est pas relancé c'est peut-être possible, je vais faire des tests.
En revanche le panel "accès à distance" ne concerne que trés peu de ports et de services (VPN/SSH/FTP), les problèmes d'incohérence devrait être facile à corriger sans limiter la possibilité d'utilisation des actions native de Fail2ban, non?

Ta contrib m'interesse pour savoir si oui ou non elle permet de défendre efficacement une machine, mais si pour l'utiliser il faut exclure les mises à jour du Kernel, de Iptables, les xtables-addons ou les actions fournies par Fail2ban voire l'adaptation des "actionbans" au besoin spécifique de l'admin, c'est un peu embêtant. On va se priver de toutes les correction de bugs et d'outils renforçant cette même sécurité. La puissance de Fail2ban comme parser de log, c'est justement sa capacité à être adapter au besoin, non?
« Last Edit: January 29, 2014, 08:20:57 PM by Xavier Ansoult »
“When the wise man points to the moon, the fool looks at the finger.”

Offline Daniel B.

  • *
  • 1,699
  • +0/-0
    • Firewall Services, la sécurité des réseaux

Ca pique les yeux ! Cet iptables date de ....janvier 2006 (8 ans). Il y en a eu des corrections de bogues depuis janvier 2006 et des évolutions du Kernel !

On en est à iptables 1.4.21 (http://www.netfilter.org),  je ne l'ai pas encore testé ni même nftables mais pour moi ne pas mettre à jour son iptables c'est quasi criminel.
De mon point de vu, c'est toucher à ce genre de paquet qui extrêmement dangereux. Oui, il y'a des versions plus récentes d'iptables et du kernel, mais c'est exactement le but des distro à longue durée de vie (comme CentOS): maintenir une base stable, avec une ABI stable, tout en backportant des correctifs (aussi bien bug importants que problèmes de sécurité). En remplaçant ce type de composants à la main, on introduit plus de bugs potentiels et de pb de sécurité qu'on en enlève

2) La blacklist de Fail2ban, autrement dit le fait que Fail2ban sache quelles Ip il a déjà blacklisté lorsqu'il redémarre, va disparaître comme par magie.
Bizarre parce que sans ta contribs ça marche trés bien et donc avec ta contribs ça continue à fonctionner correctement. Je vais pas rentrer dans le détail du fonctionnement de Fail2ban et du script "/etc/rc.d/init.d/masq" mais là franchement je ne vois pas où tu es allé chercher ça.

C'est très simple: si tu vas dans le server-manager, menu Accès à distance, tu sauves (même sans rien changer), ça fait un expand-template du script masq, et ça lance un /etc/init.d/masq adjust (y'a pas que ce panel qui peut lancer ça, c'est juste un exemple). Si tes règles de blacklist sont pas inscrites dans une DB (comme le fait la contrib par défaut), les règles introduites par Fail2Ban sont perdues (dans le meilleurs des cas. En inscrivant ça dans la DB, un expand-template maintiens les règles, et un adjust (ou même un restart) du script masq conserve tout ça: fail2ban n'a même pas besoin d'être au courant, la vue qu'il a en interne correspnd toujours à la réalité.

La vitesse n'est pas un avantage fonctionnel dérisoire quand une machine doit réagir à une attaque. C'est même une caractéristique essentielle de sa capacité à pouvoir se défendre efficacement en fonction des types d'attaque.
Fail2Ban ne doit pas être vu comme un outil contre les attaques ciblées (ça serait complètement illusoire), c'est principalement pour limiter les risques qu'un script-kiddy trouve le mot de passe d'un compte, et pour dégager des tentatives à répétition de polluer tes journaux, dans ce contexte, réagir 1 seconde plus vite n'apporte pas vraiment de sécurité supplémentaire.

3) Je n'ai pas constaté ce que tu décris concernant des problèmes d'incohérence notamment lors de re-démarrage du service Fail2ban si l'ordre de ré-démarrage est respecté.
Les problèmes d'incohérences se posent justement dans le cas inverse: quand tu relances masq sans relancer fail2ban

En revanche le panel "accès à distance" ne concerne que trés peu de ports et de services (VPN/SSH/FTP), les problèmes d'incohérence devrait être facile à corriger sans limiter la possibilité d'utilisation des actions native de Fail2ban, non?
Le fait que le panel ne concerne que très peu de service n'importe pas vraiment: quand on valide, on régénère le script de par feu, et on fait un adjust (l'action adjust du script masq s'attend à ce que certaines règles de certaines chaines se trouvent à un emplacement précis: en injectant des règles iptables au mauvais endroit, tu as un risque non négligeable de tout bloquer)

Ta contrib m'interesse pour savoir si oui ou non elle permet de défendre efficacement une machine, mais si pour l'utiliser il faut exclure les mises à jour du Kernel, de Iptables, les xtables-addons ou les actions fournies par Fail2ban voire l'adaptation des "actionbans" au besoin spécifique de l'admin, c'est un peu embêtant. On va se priver de toutes les correction de bugs et d'outils renforçant cette même sécurité. La puissance de Fail2ban comme parser de log, c'est justement ça capacité à être adapter au besoin, non?

je compte pas empêcher qui que ce soit de le faire, mais je compte fortement déconseiller à tout le monde de faire ce genre de personnalisation

- SME est fait pour fournir une base fiable, solide prévisible. C'est ces caractéristiques qui font que tant de contribs ont pu être développées: les auteurs de contribs connaissent les composants et le comportement du serveur. En mettant à jour des composants aussi critiques que le kernel et/ou iptables, on modifie cette base stable, il y a de forte chance que beaucoup de choses ne fonctionne plus comme prévu
- Sur des distrib stables comme CentOS, mettre à jour manuellement ces composants est bien plus dangereux que les laisser dans des versions à priori très vieille: Red Hat se charge de backporter les correctifs

Mes 2 centimes
C'est la fin du monde !!! :lol:

Offline Xavier.A

  • ***
  • 104
  • +0/-0
@Daniel

Merci pour ces explications. MDR comme diraient les jeunes que j'ai eu en cours :lol:

Et franchement, je fais de mon mieux pour prendre sur moi dans l'intérêt de la SME mais y a pas si longtemps j'aurais eu une mauvaise réaction avec ce genre de réponse complètement hors-sujet. Pourquoi donc faire des contribs et des RPMs puisqu'il faut tout attendre des backports de RH! et pourquoi donc fais tu des remontées de bugs aux dev de Fail2ban, ne devrais-tu pas attendre que ceux de RH le fasse?
 
Pourquoi donc former les admin :
  • à la gestion des mises à jour à partir des sources, à construire des rpms, des debs,
  • à utiliser rpm, yum, dpkg, apt, aptitude, Apt4rpm, Urpmi, zypper, Up2date
  • à créer des dépôts
  • à gérer des mirroirs locaux ou non
Pourquoi donc les noyaux sont-ils modulaires si on ne peut pas les optimiser pour les rendre plus lègers et accèlèrer le fonctionnement des machines. Il faudrait vraiment pas me sortir une bêtise de plus dans ce genre parce que faire un rpm à partir des source de Kernel.org c'est vraiment pas une compétence difficile à acquérir. C'est aussi possible à partir des sources des kernels de RH mais faut-il donc être autorisé par les dev de la SME pour le faire?

Franchement quand on voit le script IPtables, c'est à se tordre de rire, alors l'ordre des règles il est respecté mais l'écriture des règles est vraiment à revoir! Ce qui m'inquiète encore plus au-delà du ton c'est que tu as à l'air convaincu des grosses bétises que tu as écrites mais alors il va falloir courir en parler aux dev des autres distro parce que tu as découvert que si les règles d'iptables sont regénérées celles introduites par Fail2ban disparaissent...heu dis moi ça n'a pas été pensée ce genre de comportement dans le fonctionnement de Fail2ban?

Je vais donc considérer le post comme RESOLU pour t'éviter le "Principe de Peter" corrélé avec une "Loi de Moore".

Sur le coup, j'ai l'impression d'être revenu au collège avec le Micral et la 5" ¼ de mes années club d'info. Je vais de ce pas me replonger dans du Turtle/Logo pour voir si je peux apprendre le Perl des grands qui font des contribs.

Donc fais ce que tu veux de ta contrib, on ne te demande pas de l'améliorer mais juste de la rendre cohérente avec le code d'origine !
A+

PS: en quelques secondes on évite la prise de tête, le blabla abscons sur la db et surtout le dialogue de sourd
yum remove smeserver-fail2ban
cd /usr/local/src
wget https://codeload.github.com/fail2ban/fail2ban/tar.gz/0.8.12 -O fail2ban-0.8.12.tar.gz;
tar -zxvf fail2ban-0.8.12.tar.gz
cd fail2ban-0.8.12
python setup.py install
cp files/redhat-initd /etc/init.d/fail2ban
chmod +x /etc/init.d/fail2ban
/etc/init.d/fail2ban start; /etc/init.d/fail2ban restart; /etc/init.d/fail2ban stop
ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S98fail2ban
config set fail2ban service status enabled
/etc/init.d/fail2ban start; fail2ban-client status

On se fait le rpm, on le signe et on se le met dans son dépôt à soi (ce qui peut faire un excellent atelier !)
« Last Edit: January 30, 2014, 08:22:55 AM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline stephdl

  • *
  • 1,519
  • +0/-0
    • Linux et Geekeries
@Daniel

Merci pour ces explications. MDR comme diraient les jeunes que j'ai eu en cours :lol:

Et franchement, je fais de mon mieux pour prendre sur moi dans l'intérêt de la SME mais y a pas si longtemps j'aurais eu une mauvaise réaction avec ce genre de réponse complètement hors-sujet. Pourquoi donc faire des contribs et des RPMs puisqu'il faut tout attendre des backports de RH! et pourquoi donc fais tu des remontées de bugs aux dev de Fail2ban, ne devrais-tu pas attendre que ceux de RH le fasse?
 
Pourquoi donc former les admin :
  • à la gestion des mises à jour à partir des sources, à construire des rpms, des debs,
  • à utiliser rpm, yum, dpkg, apt, aptitude, Apt4rpm, Urpmi, zypper, Up2date
  • à créer des dépôts
  • à gérer des mirroirs locaux ou non
Pourquoi donc les noyaux sont-ils modulaires si on ne peut pas les optimiser pour les rendre plus lègers et accèlèrer le fonctionnement des machines. Il faudrait vraiment pas me sortir une bêtise de plus dans ce genre parce que faire un rpm à partir des source de Kernel.org c'est vraiment pas une compétence difficile à acquérir. C'est aussi possible à partir des sources des kernels de RH mais faut-il donc être autorisé par les dev de la SME pour le faire?

Franchement quand on voit le script IPtables, c'est à se tordre de rire, alors l'ordre des règles il est respecté mais l'écriture des règles est vraiment à revoir! Ce qui m'inquiète encore plus au-delà du ton c'est que tu as à l'air convaincu des grosses bétises que tu as écrites mais alors il va falloir courir en parler aux dev des autres distro parce que tu as découvert que si les règles d'iptables sont regénérées celles introduites par Fail2ban disparaissent...heu dis moi ça n'a pas été pensée ce genre de comportement dans le fonctionnement de Fail2ban?

Je vais donc considérer le post comme RESOLU pour t'éviter le "Principe de Peter" corrélé avec une "Loi de Moore".

Sur le coup, j'ai l'impression d'être revenu au collège avec le Micral et la 5" ¼ de mes années club d'info. Je vais de ce pas me replonger dans du Turtle/Logo pour voir si je peux apprendre le Perl des grands qui font des contribs.

Donc fais ce que tu veux de ta contrib, on ne te demande pas de l'améliorer mais juste de la rendre cohérente avec le code d'origine !
A+

PS: en quelques secondes on évite la prise de tête, le blabla abscons sur la db et surtout le dialogue de sourd
yum remove smeserver-fail2ban
cd /usr/local/src
wget https://codeload.github.com/fail2ban/fail2ban/tar.gz/0.8.12 -O fail2ban-0.8.12.tar.gz;
tar -zxvf fail2ban-0.8.12.tar.gz
cd fail2ban-0.8.12
python setup.py install
cp files/redhat-initd /etc/init.d/fail2ban
chmod +x /etc/init.d/fail2ban
/etc/init.d/fail2ban start; /etc/init.d/fail2ban restart; /etc/init.d/fail2ban stop
ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S98fail2ban
config set fail2ban service status enabled
/etc/init.d/fail2ban start; fail2ban-client status

On se fait le rpm, on le signe et on se le met dans son dépôt à soi (ce qui peut faire un excellent atelier !)
pour la postérité
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!