Je souhaite bloquer quelques sites Web qui fonctionnent également sur https, comme Facebook, Twitter et Gmail, dans mon organisation. Squid n'est pas censé être utilisé ici selon les ordres de la haute direction. Nous pouvons utiliser Untangle Lite Package et iptables
.
Y a-t-il une option autre que Squid pour ce faire? Une iptables
règle pour bloquer ce type de trafic serait également très utile.
j'ai trouvé ça
iptables -t filter -I INPUT -m string --string facebook.com -j LOG --algo bm
iptables -t filter -I INPUT -m string --string facebook.com -j REJECT --algo bm
mais https fonctionne toujours sur les machines à l'exception de la machine locale.
Réponses:
Au lieu de faire une correspondance en fonction de l'URL, essayez de faire une correspondance en fonction du contenu du certificat.
Vous pouvez également établir une correspondance sur l'empreinte digitale, mais si la destination modifie ou met à jour son certificat, cela invalidera votre règle.
la source
nat
table (et il n'y a pas de chaîne INPUT dans la table nat), je pense que vous vouliez direfilter
là. De plus, il y a une chance (très) éloignée que cela corresponde aux paquets où 443 est le port client-p tcp
règle, cela ne semble pas être quelque chose d'utile ..Le pare-feu ne peut pas contrôler les URL HTTPS auxquelles le client tente d'accéder, car l'URL est chiffrée. Le pare-feu ne peut contrôler que les sites auxquels le client se connecte, en utilisant des adresses IP, mais cela n'aide pas si les versions HTTP et HTTPS du site sont à la même URL (et même si elles ne le sont pas, vous auriez pour maintenir une énorme liste d'adresses IP).
La seule façon réaliste de bloquer HTTPS est de le bloquer complètement. Insistez sur le fait que toutes les connexions doivent être HTTP valides (c'est-à-dire que le client commence par envoyer une
HTTP
ligne, etc.). Cela ne peut pas être fait avec seulement IPtables, vous avez besoin d'un proxy réel prenant en charge le protocole tel que Squid. (Je ne sais pas de quoi Untangle Lite est capable.)Vous pouvez bloquer la plupart du trafic HTTPS en bloquant le trafic sortant vers le port 443, car presque tous les serveurs HTTPS sont sur ce port. Ou, suivant une approche de liste blanche, autorisez uniquement le trafic sortant vers le port 80 (le port HTTP normal).
Une approche différente serait de proxy toutes les connexions HTTP et HTTPS. Ensuite, vous pouvez faire correspondre les URL. Cela nécessite de mener une attaque d'homme au milieu sur les clients. Vous pouvez le faire si vous déployez votre propre autorité de certification sur toutes les machines clientes et que vous l'enregistrez en tant que racine de confiance. Cela peut être considéré comme contraire à l'éthique.
Peu importe ce que vous faites, les utilisateurs déterminés configureront un proxy en dehors de votre environnement et exécuteront IP sur HTTP ou quelque chose comme ça.
Vous semblez soit essayer de résoudre un problème social avec des moyens techniques, qui ne fonctionne presque jamais, soit faire de votre mieux pour mettre en œuvre une exigence idiote de la part de la direction (dans ce cas, je choisirais de bloquer le port 443, peut-être uniquement pour certaines adresses IP, qui vous permettraient de signaler que vous avez fait votre travail, peu importe leur utilité).
la source
Je connais une option.
Si vous avez des serveurs DNS internes à utiliser, mettez simplement des références statiques dans vos données de zone TLD qui résolvent les domaines (que vous ne souhaitez pas établir les connexions externes) à 127.0.0.1. De cette façon, tous les hôtes utilisant le DNS central de votre réseau résoudront les domaines (facebook.com/twitter.com en soi) en adresse de bouclage, ce qui ne mènera nulle part.
Cela fonctionnera si vous avez un contrôle total sur la configuration du résolveur des ordinateurs clients de votre réseau. Si les postes de travail / clients sont autorisés à modifier / modifier / etc / hosts ou /etc/resolv.conf, ils peuvent contourner cette option.
la source
/etc/hosts
fichier. Par exemple:127.0.0.1 www.facebook.com
Une option consiste à blackhole les routes vers les blocs réseau: (La liste est pour FB)
la source
Le filtre de contenu simple ne peut pas bloquer le site SSL.
Utilisez des outils de protection contre les intrusions comme snort / suricata.
Exemple de règle IPS : pour bloquer les URL ssl pour une adresse IP spécifique.
drop ip any 443 -> 192.168.3.30 any (content:".facebook.com"; msg:"Simplewall Ssl block for User30 : Urls => .facebook.com " sid:26648513;rev:1;)
drop ip any 443 -> 192.168.3.30 any (content:".fbcdn.net"; msg:"Simplewall Ssl block for User30 : Urls => .fbcdn.net " ;sid:11469443;rev:1;)
drop ip any 443 -> 192.168.3.30 any (content:".youtube.com"; msg:"Simplewall Ssl block for User30 : Urls => .youtube.com " ;sid:13989722;rev:1;)
Télécharger Simplewall : dans les règles de politique de simplewall partagées par Squid + Suricata IPS.
la source
Vous devriez mettre cela sur la chaîne FORWARD, par exemple
Cela affectera les autres systèmes du réseau, à l'exception du pare-feu.
la source