Мини Вики. Чтоб ничего не забыть!

Ubuntu: Заглушка с подменой web-страницы


Возникла ситуация, когда определенной группе клиентов необходимо ограничить доступв в интернет, при этом оповещая их об этом.

В моем случае это клиенты, которые не могут ходить в интернет, по причине того, что их учетная запись заблокирована. Выпускать их в интернет или нет, этим занимается биллинговая система, выдавая IP из определенных блоков адресов.

Осталось сделать страничку с оповещением, что клиенту "перекрыли интернеты". Пусть будет условно такая страница, поправите на свой вкус:

 


 

 

доступ заблокирован

 

Эту страницу помещаем на заранее заготовленный http сервер.

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

# cat .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^(.*)[png|gif|css|jpg|html|htm|js|swf]$
RewriteRule ^(.*)$ ./index.html


ErrorDocument 404 /index.html

Осталось настроить правила iptables

iptables -t nat -A PREROUTING ! -d 10.0.0.11/32 -s 172.16.128.0/17 -p tcp -m multiport --dport 80 -j DNAT --to-destination 10.0.0.11:80

Здесь мы даем задание для iptables, которое должно быть помещено в таблицу NAT и чтобы оно срабатывало еще до обработки правилами брандмауэра.

Если

Не забудьте в конце сохранить изменения, внесенные в iptables

iptables-save