LINUX.ORG.RU

iptables + блокировка по стране

 , ,


0

1

Ребят, можно ли заблокировать соединения для определенной страны именно для 1 домена, а не для всех доменов на сервере?

Просто задача такая, что нужно не открывать сайт, если пользователь пришел из определенного ряда стран и с определенным языком браузера.

Поставил mod_geoip но он выдает 403 ошибку, а мне важно, чтобы сайт не открывался вообще никак. Полагаю, что это либо делается на уровне файрвола. А да, разговор про apache

Находил подобное для nginx пишут что там достаточно разрывать соединение с 444 статусом, есть ли аналог для апача?

p.s. если поможет - на сервере стоит панель DirectAdmin!

Спасибо!


Можно, для ioptables есть модификатор "-m geoip". А что бы обрабатывался только определённый домен вам придётся использовать ещё один модификатор "-m string" для отсеивания имени домена.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

Думаю, iptables'ами этого не сделать. Только апачём. Поправьте меня. А в mod_geoip нельзя настроить что отдавать?

turtle_bazon ★★★★★
()
Ответ на: комментарий от wakuwaku

Что за ioptables?

Очевидно, что это «очепятка».

Это же будет содомия, на паре сотен ежесекундных коннектов ляжет, или нет?

Кто же его «ддосить» собирается? Всё зависит от мощности сервера и ширины канала, да и то маловероятно. А так, если точно идёт атака - так это к хостинг провайдере надо обращаться.

kostik87 ★★★★★
()
Ответ на: комментарий от turtle_bazon

Можно. Но там возвращается 403 ответ, а мне важно, чтобы сайт вообще не открывался никак, как будто его нет или он отключен!

xisip
() автор топика
Ответ на: комментарий от kostik87

ддос маловероятен. Задача в другом.

xisip
() автор топика
Ответ на: комментарий от xisip

А смысл? Читайте документацию по HTTP заголовку и смотрите есть ли в нём какое-либо указание языка браузера.

kostik87 ★★★★★
()
Ответ на: комментарий от xisip

То, что браузер всё же сообщает в http заголовке язык, посмотрите как он это делает, удостоверьтесь, что вы выбрали правильную форму указания языка на всех браузерах и напишите соответствующее правило для iptables.

Удачи.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Спасибо! Я пока проверю блокировку страны для домена, это самое важное. Язык браузера это уже как бонус :)

xisip
() автор топика
Ответ на: комментарий от xisip

Как тогда браузер передаст свои языки, если надо будто он отключён? Т.е. в любом случае ему надо соединиться и передать заголовки.

turtle_bazon ★★★★★
()
Ответ на: комментарий от xisip

Тем, что надо получить заголовки с http клиента (по языку это Accept-languages или типа того). А для этого надо принять соединение. На страну тупо по IP можно проерить.

turtle_bazon ★★★★★
()
Ответ на: комментарий от turtle_bazon

Дак если страна пропустится, то дальше нужно проверить на язык, иначе можно включить VPN и спокойно зайти. По идее достаточно и одной страны, но в связке с языком более надежно.

xisip
() автор топика
Ответ на: комментарий от xisip

Ну тогда 403 будет. :) Хотя, в теории, можно написать модуль, который будет разрывать соединение, а не отправлять ответ. Причём будет видно, что запрос ушёл.

turtle_bazon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.