Как заблокировать сайты с помощью 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 после имени веб-сайта

  • Прозрачный туннель между интерфейсами на удаленных хостах
  • Перенаправление трафика с маршрутизатором Rasperry Pi
  • Как настроить iptables для трафика на порт 80 из определенных источников
  • Маршрутизация трафика ЛВС через eth0, а не tun0, в точке доступа к VPN
  • Исходная политическая маршрутизация и NAT (DNAT / SNAT) aka Multi WANs на CentOS 5
  • Настройка маршрутизации и iptables для нового VPN-подключения для перенаправления ** только ** портов 80 и 443
  • Маршрутизация политики для сервера и клиента OpenVPN на одном маршрутизаторе?
  • Не знаю, что слушает порт 80 в OS X
  • Блокировать обновления Windows 10 P2P с помощью корпоративного межсетевого экрана
  • Настройка Iptables NATforwarding
  • Как настроить маршрутизатор интрасети для информирования своих хостов о маршрутах в другие подсети?
  • Interesting Posts

    Подключение к локальному хосту с другого компьютера

    Как я могу «открыть» файл из WSL с помощью приложения по умолчанию?

    Linux: псевдонимы при использовании `screen`

    Windows XP – синий экран

    Найдите версию установленного пакета npm

    Как импортировать classы в JSP?

    Какие из обновлений Windows действительно необходимы?

    Установить дополнение для UITextField с помощью UITextBorderStyleNone

    Уникальные настройки IP-адреса (статические / dhcp) для каждой беспроводной сети?

    Как указать версию компилятора Java в файле pom.xml?

    Как я могу сбросить память процесса в Windows 7?

    Как отключить aero snap без отключения win + R + win + L на окнах 10

    Какова цель этого 4-контактного интерфейса на жестких дисках SATA и почему он не существует на SSD?

    Как избежать зарезервированных слов, используемых в качестве имен столбцов? MySQL / Создать таблицу

    Как принудительно «выключить» в предопределенное время, в учетной записи администратора?

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