Как заблокировать сайты с помощью iptables

Я хотел бы заблокировать сайты с помощью iptables . Как мне это сделать, и как я могу обеспечить сохранение правил iptables ?

6 Solutions collect form web for “Как заблокировать сайты с помощью iptables”

Блокирование сайтов с помощью правил iptables – очень плохая идея, главным образом потому, что iptables (так как большинство брандмауэров) имеет дело с IP-адресами, а отношения между сайтом и его IP-адресом довольно слабы:

  1. На одном сайте может быть много IP-адресов, которые могут быть изменены довольно часто. Как только правила iptables создаются, даже если вы укажете имя сайта как часть правила, используется первый IP-адрес в этот момент . Если адрес сайта изменяется, ваши правила iptables будут устаревшими.

  2. Один IP-адрес может содержать множество сайтов (и это часто бывает). Это будет только чаще, из-за нехватки IP-адресов. Если вы блокируете IP-адрес, вы блокируете все размещенные на нем сайты.

Поэтому, хотя в других ответах объясняется, как вы это делаете, я настоятельно призываю вас найти другое решение. Например, установка прозрачного HTTP-прокси обеспечит то, что вам нужно. Этот прозрачный HTTP-прокси HOWTO немного устарел, но он поможет вам начать работу.

Когда у вас есть прозрачный прокси-сервер, вы можете добавить к нему произвольные правила для блокировки определенных сайтов, вам даже не нужно использовать функцию кеширования squid, если вы этого не хотите.

Существуют и другие способы борьбы с блокировкой сайта (другие брандмауэры, прокси и т. Д.), Но правила iptables – это в значительной степени один из худших возможных способов его устранения.

Вы можете использовать сопоставление строк iptables для достижения этого:

 iptables -A OUTPUT -p tcp -m string --string "block-me.com" --algo kmp -j REJECT 

-A OUTPUT добавляет следующее правило в цепочку OUTPUT .

-m string --string "block-me.com" --algo kmp сообщает iptables искать строку block-me.com с использованием алгоритма соответствия Knuth-Morris-Pratt .

Самый простой способ сделать ваши iptables восстанавливается при перезагрузке вашего компьютера – установить пакет iptables-persistent если он доступен в вашей системе. Если вы установите пакет после установки новых правил, вас спросят, хотите ли вы сохранить используемые в настоящее время правила для постоянного использования. iptables-persistent основном просто загружает правила, сохраненные в файлах /etc/iptables/rules.v4 и /etc/iptables/rules.v6 .

Если вы снова измените свои правила, чтобы сохранить изменения и восстановить их при перезагрузке, вы должны сохранить их в вышеупомянутых файлах с помощью команд

 iptables-save > /etc/iptables/rules.v4 iptables-save > /etc/iptables/rules.v6 

Теперь они будут восстановлены при перезагрузке.

На самом деле вам также не нужны iptables-persistent . У этого вопроса есть еще одно почти простое решение.

Обратите внимание, что вам нужно запустить iptables-save как root, или с помощью sudo :

 sudo bash -c "iptables-save > /etc/iptables/rules.v4" 

Если вы просто запустите sudo iptables-save > /etc/iptables/rules.v4 вы получите сообщение «access denied» для rules.v4 .

Существует несколько способов ограничить сайты https.

1- Squid Proxy

2- IPtables

С Squid Proxy Server

-> Откройте конфигурацию Squid в моем случае (vim /etc/squid/squid.conf)

-> Поместите правила, как определено.

Acl badsite dstdomain .facebook.com .soundcloud.com .playit.pk .songs.com

Http_reply_access deny badsite # Эта строка блокирует HTTP

Http_access deny CONNECT badsite # Этот блок строк HTTPS

-> После этого перезапустите кальмара

С Iptables Вам нужно установить правила как определить здесь

Iptables -N STREAM

Iptables -I OUTPUT -m string –string "www.facebook.com" –algo bm – from 1 –to 600 -j STREAM

Iptables -I OUTPUT -m string –string "facebook.com" –algo bm – from 1 –to 600 -j STREAM

Iptables -I FORWARD -m string –string "www.facebook.com" –algo bm – from 1 –to 600 -j STREAM

Iptables -I FORWARD -m string –string "facebook.com" –algo bm – from 1 –to 600 -j STREAM iptables -A STREAM -j REJECT

В разделе gentoo, чтобы сохранить правила iptables, которые вы добавили, используйте

 /etc/init.d/iptables save 

Тем не менее, вам также необходимо убедиться, что сценарий инициализации iptables (целью которого является перезагрузка правил) запускается при загрузке:

 rc-update add iptables default 

Обе команды должны выполняться как root (через sudo, если вы его установили)

Ok, Предположим, вы хотите заблокировать IP-адрес 192.168.1.5, просто введите это в командной строке в свой сценарий оболочки:

 iptables -A INPUT -s 192.168.1.5 -j DROP 

Затем вы можете заблокировать исходящий IP-адрес 192.168.1.2 с сервера с помощью этой команды:

 iptables -A OUTPUT -d 192.168.1.2 -j DROP 

И он должен блокировать этот сайт, когда-либо беспокоя вас. надеюсь это поможет.

 -A INPUT -p tcp -m tcp -d www.facebook.com -j DROP 

Мы просто изучили его сегодня

Debian 7

Если вы хотите разрешить им пинговать этот сайт, просто добавьте --dport 80,443 после имени веб-сайта

  • Какие правила iptables разрешают ntp?
  • Связать входящие пакеты с одним интерфейсом и исходящими пакетами со вторым интерфейсом?
  • Разделение двух сетей
  • Предел пропускной способности по порту на iptables
  • Как добавить виртуальные сетевые адаптеры на мой Linux-ПК, чтобы они отображали свои MAC-адреса в домене ISP?
  • Требуется правило iptables для принятия всего входящего трафика
  • Настройка Iptables NATforwarding
  • IP-пересылка с помощью iptables
  • Маршрутизация трафика ЛВС через eth0, а не tun0, в точке доступа к VPN
  • Как увидеть попытки подключения, отклоненные брандмауэром в режиме реального времени?
  • Почему я не могу заблокировать https?
  • Не знаю, что слушает порт 80 в OS X
  • Interesting Posts

    Как я могу исправить «ПРЕДУПРЕЖДЕНИЕ: сообщение не защищено целостностью» при использовании симметричного шифрования GPG?

    Как отправить событие переключения раскладки клавиатуры с помощью autohotkey в Windows 7?

    Выберите конкретную точку доступа в точке множественного доступа WIFI-сеть, использующая SSID

    Сервер 2012 – Менеджер Hyper V, RemoteFX отсутствует Список оборудования

    Что случилось с моей учетной записью Windows 7?

    Как создать самозаверяющий сертификат с openssl?

    Не удается получить доступ к виртуальной машине через ping с физической хост-машины

    Передвижные кнопки и проводники Windows Explorer

    Как удалить всю историю веб-поиска, соответствующую конкретному запросу в Google Chrome

    Что такое программирование RESTful?

    Поиск и замена с использованием разных ключевых слов

    Сообщения об ошибках оборудования из syslogd

    Удаление Notepad ++ Путь к заголовку

    Шифрование файлов на SD-карте

    Инструмент для копирования текста из диалоговых окон?

    Давайте будем гением компьютера.