Nous pouvons voir des journaux nginx qu'il y a une adresse IP faisant des choses méchantes.
Comment pouvons-nous le bloquer avec une commande pf
et ensuite plus tard en permanence avec le /etc/pf.log
? Comment pouvons-nous bloquer un x.x.x.x/24
pour cette adresse IP? C'est l'exemple: 1.2.3.4
Mise à jour: Non, on dirait que OpenBSD n'a pas autorisé/refuser le fichier dans/etc. Et Afaik, le meilleur conseil pour bloquer les adresses IP abusives utilise PF.
# cd /etc
# ls -la|egrep -i 'deny|allow'
# uname -a
OpenBSD foo.com 5.4 GENERIC.MP#0 AMD64
#
La meilleure façon de le faire est de définir une table et de créer une règle pour bloquer les hôtes, dans pf.conf
:
table <badhosts> persist
block on fxp0 from <badhosts> to any
Puis ajouter/supprimer/supprimer/supprimer de manière dynamique les adresses IP:
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T delete 1.2.3.4
Les autres commandes "table" incluent flush
(supprimer tout), replace
et show
. Voir man pfctl
pour plus.
Si vous souhaitez une liste plus permanente, vous pouvez le conserver dans un (ou plusieurs) fichiers. Dans pf.conf
:
table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on fxp0 from <badhosts> to any
Vous pouvez également ajouter des noms d'hôte au lieu des adresses IP. Voir la section "Tables" de man pf.conf
et man pfctl
.
NOTE: Les exemples ci-dessus supposent que l'interface face à Internet est fxp0
, veuillez changer en fonction de votre configuration. N'oubliez pas non plus que les règles de pf.conf
sont évalués séquentiellement et pour block
ou pass
règles de la dernière règle correspondante qui s'applique. Avec ce jeu de règles
table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80
et après l'ajout 1.2.3.4 et 192.168.0.10 à la table badhosts
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T add 192.168.0.10
Tout le trafic de 1.2.3.4 et 192.168.0.10 sera bloqué mais le deuxième hôte volonté Pouvoir des connexions au port d'autres machines 80 car la règle pass
et remplace la règle block
.
Il n'est pas clair d'autres réponses que vous devez créer une table réelle des Badhosts que vous essayez de bloquer.
Cela va dans le fichier pf.conf, par exemple, j'ai deux fichiers Badguys, 1 et 2 Badguys1, c'est pour ceux qui viennent et badguys2 sont pour la liste noire permanente.
Donc, si vous devez ajouter une adresse IP de quelqu'un qui est une nuisance pendant une période de temps, ajoutez-les à Badguys1.
Maintenant, dans votre fichier pf.conf, vous avez ceci. Dans mon exemple, j'utilise EN1, car c'est mon interface wifi. Définissez cela sur ce que l'interface de votre réseau est disponible.
table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on en1 from <badhosts> to any
Maintenant, vous pouvez ajouter des adresses temporaires à Badguys1. (Pas Badhosts, c'est un nom pour les tables)
Sudo pfctl -t badguys1 -T add 185.130.5.160
1 table created.
1/1 addresses added.
Bien que cela indique 1 table créée - il ajoute la propriété intellectuelle, ne créant pas une nouvelle table. Maintenant, si vous regardez dans Badguys1, vous verrez la nouvelle adresse IP.
Sudo pfctl -t badhosts -T show