LINUX.ORG.RU

История изменений

Исправление Pinkbyte, (текущая версия) :

Средствами одного iptables задача нерешаема, потому что iptables работает на 3 уровне модели OSI и не может знать о всех протоколах более высокого уровня(HTTP, IM и т.д.).

То есть, для того чтобы «англоязычная википедия и, видимо, викимедия, чтобы грузились иллюстрации к статьям.» - данная задача уже подразумевает как минимум знания о DNS(ну или регулярное ручное слежение за обновлением IP-адресов вышеуказанных ресурсов = костыль).

Конкретно эта задача(доступ только по определенным доменным именам по HTTP) решается с помощью прокси-сервера(можно - в прозрачном режиме), например Squid.

Как оставить возможность пользоваться торрентами, IM (Telegram, jabber) и «прочим»?

Определись что такое «прочим» и если устраивает открытие определенных портов - открой их. Но только ты учти, что, например, если есть служба на 80 порту - то это не значит что там будет 100% HTTP. Кстати, обход файрволов, которые полагаются на это правило именно так и делается.

P.S. Нужно ли добавлять DNS сервера, чтобы не вводить ip адреса вручную?

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

В общем случае твоя задача решается через DPI, но это - совсем не «домашний» уровень.

Исправление Pinkbyte, :

Средствами одного iptables задача нерешаема, потому что iptables работает на 3 уровне модели OSI и не может знать о всех протоколах более высокого уровня(HTTP, IM и т.д.).

То есть, для того чтобы «англоязычная википедия и, видимо, викимедия, чтобы грузились иллюстрации к статьям.» - данная задача уже подразумевает как минимум знания о DNS(ну или регулярное ручное слежение за обновлением IP-адресов вышеуказанных ресурсов = костыль).

Конкретно эта задача(доступ только по определенным доменным именам по HTTP) решается с помощью Squid.

Как оставить возможность пользоваться торрентами, IM (Telegram, jabber) и «прочим»?

Определись что такое «прочим» и если устраивает открытие определенных портов - открой их. Но только ты учти, что, например, если есть служба на 80 порту - то это не значит что там будет 100% HTTP. Кстати, обход файрволов, которые полагаются на это правило именно так и делается.

P.S. Нужно ли добавлять DNS сервера, чтобы не вводить ip адреса вручную?

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

В общем случае твоя задача решается через DPI, но это - совсем не «домашний» уровень.

Исходная версия Pinkbyte, :

Средствами одного iptables задача нерешаема, потому что iptables работает на 3 уровне модели OSI и не может знать о всех протоколах более высокого уровня(HTTP, IM и т.д.).

То есть, для того чтобы «англоязычная википедия и, видимо, викимедия, чтобы грузились иллюстрации к статьям.» - данная задача уже подразумевает как минимум знания о DNS(ну или регулярное ручное слежение за обновлением IP-адресов вышеуказанных ресурсов = костыль).

Конкретно эта задача(доступ только по определенным доменным именам по HTTP) решается с помощью Squid.

Как оставить возможность пользоваться торрентами, IM (Telegram, jabber) и «прочим»?

Определись что такое «прочим» и если устраивает открытие определенных портов - открой их. Но только ты учти, что, например, если есть служба на 80 порту - то это не значит что там будет 100% HTTP. Кстати, обход файрволов, которые полагаются на это правило именно так и делается.