Règle IPTABLE : bloquer une adresse IP publique en entrée sortie


#1

Bonjour,

Je loue actuelement un serveur dédié chez un fournisseur, et je me suis monter une petite VM sous Linux Debian (La dernière verssion en conssole) avec deux carte réseaux qui me sert de pasqserelle routeur entre mon hyperviseur (Proxmox) et mes VM.

J’ai fait une DMZ depuis mon hyperviseur vers ma VM routeur qui comporte deux carte réseaux : Eth0 entré internet et eth1 sortie internet (Ouverture de tout les ports sur ma VM routeur) avec des règle de NAT pour autoriser d’autre VM à entré depuis l’exterrieur.

eth0 : 88.12X.XXX.XXX
eth1 : 192.168.0.254

Tout fonctionne parfaitement, je peux vous donné mes règle IPTABLE si nécésaire.

Sans monter de proxy (proxy transparent avec squidguard), je souhaiterais simplement avec des règle iptable bloquer des site internet (Via leur IP) sur les VM connecté (virtuelement) sur mon interface eth1.


#2

On ne peut pas ajouter de règles comme ça sans connaître l’ensemble du jeu de règles.

iptables-save

#3

Hyperviszeur PROXMOX qaui fait office de passerelle et NAT

# Generated by iptables-save v1.6.0 on Sat Feb  9 18:58:28 2019
*nat
:PREROUTING ACCEPT [308:30198]
:INPUT ACCEPT [48:4081]
:OUTPUT ACCEPT [11:901]
:POSTROUTING ACCEPT [26:1685]
-A PREROUTING -d XXX.XX4.58.190/32 -i vmbr0 -j DNAT --to-destination 192.168.254.253
-A PREROUTING -d XXX.XX4.60.20/32 -i vmbr0 -j DNAT --to-destination 172.20.23.1
-A POSTROUTING -s 192.168.254.0/24 -o vmbr0 -j MASQUERADE
-A POSTROUTING -s 172.20.23.0/24 -o vmbr0 -j MASQUERADE
COMMIT
# Completed on Sat Feb  9 18:58:28 2019
# Generated by iptables-save v1.6.0 on Sat Feb  9 18:58:28 2019
*filter
:INPUT ACCEPT [20046:10101902]
:FORWARD ACCEPT [3314:472133]
:OUTPUT ACCEPT [17102:19570815]
COMMIT
# Completed on Sat Feb  9 18:58:28 2019

VMBR(X) c’est une carte réseaux vietuelle


#4

La table filter est vide donc pas de précaution particulière à prendre.

Pour bloquer les paquets traversant le routeur à destination d’une adresse IP :

iptables -A FORWARD -d $ADRESSE -j DROP

Pour bloquer les paquets traversant le routeur en provenance d’une adresse IP :

iptables -A FORWARD -s $ADRESSE -j DROP

#5

Au top sa fonctionne.

Par contre FACEBOOK et youtube, je n’arrive pas à les bloquer, sa doit être différant, tu aurais une idée ?


#6

Ces services utilisent plusieurs (beaucoup) adresses IP différentes qui peuvent changer. Essayer de les bloquer avec iptables n’est pas une méthode très fiable.


#7

`

Ces services utilisent plusieurs (beaucoup) adresses IP différentes qui peuvent changer. Essayer de les bloquer avec iptables n’est pas une méthode très fiable.

`

En tout cas Merci [PascalHambourg] pour tout, j’espère que ce salon aidera d’autre personne à trouver solution
[Résolu]


#8

On peut en obtenir une liste grâce aux whois, si tant est que les informations y soient complètes:


On peut ensuite mettre en forme cette liste d’IP, pour par exemple la mettre dans un tableau qui serait parcouru par une boucle for dans un script chargé de configurer le parefeu iptables (comme /etc/network/if-pre-up.d/iptables-up).
Mais il y a probablement plus élégant comme façon de faire. Peut-être que firewalld permet de faire ça plus simplement, je connais pas.


#9

Et si tant est que Facebook n’utilise pas de serveurs dans d’autres AS, comme des appliances Akamai ou autres.

En utilisant de préférence une liste ipset plutôt que des règles iptables pour chaque préfixe.