Перейти до

Перенаправление подсети на страничку iptables, подскажите...?)


Рекомендованные сообщения

Ув. сообщество, помогите написать верно правило для iptables, в котором я не силен(
Есть одна подсеть, хотел редиректить из нее запросы на определенную страничку сайта.
Но чего-то не редиректит.

Шлюз на дебиане, на нем же крутится этот сайт.
По поводу адресов:
192.168.16.0/24 - подсеть которую редиректить надо
4х.ххх.ххх.ххх:80 - внешний адрес шлюза с страничкой, порт 80
По идее надо перенаправлять все запросы с 80 порта этой подсети на 80-й порт адреса внешнего. Писал так:

iptables -t nat -A PREROUTING -d 192.168.16.0/24 -p tcp -m tcp --dport 80 -j DNAT --to-destination 4х.ххх.ххх.ххх:80
и обратно:
iptables -t nat -A POSTROUTING -d 4х.ххх.ххх.ххх/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.16.0/24
Но, не вышло...
Может, кто подскажет, или пнет в нужное русло?)
Это все одна машина - на ней все эти посети, думал еще как:

iptables -t nat -A PREROUTING -d 192.168.16.0/24 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:80
Но тоже ,что-то молчит все(

Спасибо за ответы)

Ссылка на сообщение
Поделиться на других сайтах

iptables -t nat -A PREROUTING -s 192.168.16.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 80

 

Страница должна находиться в дефолтном виртуалхосте на этой же машине.

 

Но этот способ не самый лучший. Лучше всего поднять Nginx на каком то другом порту на этой же машине и редиректить в него, а он уже будет редиректить на нужную страницу на любом сайте.

Відредаговано Ромка
Ссылка на сообщение
Поделиться на других сайтах

iptables -t nat -A PREROUTING -s 192.168.16.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 80

 

Страница должна находиться в дефолтном виртуалхосте на этой же машине.

 

Но этот способ не самый лучший. Лучше всего поднять Nginx на каком то другом порту на этой же машине и редиректить в него, а он уже будет редиректить на нужную страницу на любом сайте.

угу...находится, даже  специально ставлю "00" в начале имени файла.

Про nginx, слышал, что через него делают...Там вроде в секции server, конфига можно указать, что слушать, к примеру "listen 8010"?

Спасибо, что ответили...я поставлю, попробую набросать конфиг и отпишусь)  

Ссылка на сообщение
Поделиться на других сайтах

Я могу еще раз :).

#user http;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    #include       mime.types;
    #default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    #sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  0;
    #keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8000;
        server_name  localhost;

        #charset koi8-r;

        access_log /var/log/nginx/redirect.access.log;


        location / {
if ( $http_user_agent ~ ^uTorrent ) {
                            return 404;
            }
            if ( $http_user_agent ~ Windows-Update-Agent ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Microsoft NCSI" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "ESS Update" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Google Update" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Microsoft-CryptoAPI" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Microsoft BITS" ) {
                            return 404;
            }
            if ( $http_user_agent ~ MSDW ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^SeaPort ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Windows-Media-Player ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Google Update" ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^GoogleEarth ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Skype ) {
                            return 404;
            }
            if ( $http_user_agent = "MailRuSputnik" ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Ya\.Online ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^MRA ) {
                            return 404;
            }
            if ( $http_user_agent ~* ^MediaGet ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^BTWebClient ) {
                            return 404;
            }
            # Avast updater
            if ( $http_user_agent ~ ^Syncer ) {
                            return 404;
            }
            # Trend Micro updater
            if ( $http_user_agent = "TMUFE" ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Akamai\ NetSession\ Interface ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^VKSaver ) {
                            return 404;
            }
            if ( $http_user_agent ~ DrWebUpdate ) {
                            return 404;
            }
            if ( $http_user_agent = "" ) {
                            return 404;
            }
            if ( $host ~ geo\.kaspersky\.com ) {
                            return 404;
            }
            if ( $host ~ (su|download|webrep).*\.avast\.com ) {
                            return 404;
            }

            if ( $host = wi2geo.mobile.yandex.net ) {
                            return 404;
            }
            if ( $host ~ bar.*\.yandex\.ru ) {
                            return 404;
            }
            if ( $host ~ (ping|master)\d*\.(dyngate|teamviewer)\.com ) {
                            return 404;
            }
            if ( $host ~ sitecheck\d*\.opera\.com ) {
                            return 404;
            }
            if ( $host ~ (xml\.my|mailsputnik|maps)\.mail\.ru ) {
                            return 404;
            }
            if ( $host = onlineconfigservice.ubi.com ) {
                            return 404;
            }
            if ( $host = com-services.pandonetworks.com ) {
                            return 404;
            }
            if ( $host ~ ticno\.com ) {
                            return 404;
            }
            if ( $host ~ conduit ) {
                            return 404;
            }
            if ( $host ~ cbox\.ws ) {
                            return 404;
            }
            if ( $host ~ (pricelist|metrics)\.skype\.com ) {
                            return 404;
            }
            if ( $host = weather.service.msn.com ) {
                            return 404;
            }
            if ( $host = advstat.letitbit.net ) {
                            return 404;
            }
            if ( $host = skymonk.net ) {
                            return 404;
            }
            if ( $host ~ counter ) {
                            return 404;
            }
            if ( $host ~ pluraserver ) {
                            return 404;
            }
            if ( $host ~ apps.bittorrent.com ) {
                            return 404;
            }
            if ( $host ~ offers.bittorrent.com ) {
                            return 404;
            }
            if ( $host ~ tracker ) {
                            return 404;
            }
            if ( $request_uri ~* (update|feed|announce|rss|xml|json|oauth) ) {
                            return 404;
            }
            if ( $request_uri ~* (toolbar|suggest) ) {
                            return 404;
            }
            if ( $request_filename ~ \.(ico|gif|jpg|png) ) {
                            return 404;
            }
            if ( $request_filename ~ \.(css|xml|js|swf|flv) ) {
                            return 404;
            }
            if ( $request_filename ~ \.(crl|txt|cab|msi|jar) ) {
                            return 404;
            }
            if ( $host ~ norton ) {
                            return 404;
            }


	    rewrite ^ http://some.url/ redirect;
            #root   html;
            #index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}
Ссылка на сообщение
Поделиться на других сайтах

Еще в копилку вам , если надо редирект сделать на другой сервер используйте простенькую прожку simpleproxy , нормально компилится под любой *nix 

Ссылка на сообщение
Поделиться на других сайтах

Еще в копилку вам , если надо редирект сделать на другой сервер используйте простенькую прожку simpleproxy , нормально компилится под любой *nix

Спасибо)
Ссылка на сообщение
Поделиться на других сайтах

Эмм...работает nginx)
Но что-то правило не перенаправляет на этот порт, я посмотрел...в "Goo***" - заезженная тема, но, что-то не получается.
В конфиге nginx, я написал адрес шлюза в управляющем влане, к примеру 172.11.24.1. (rewrite ^ http://172.11.24.1redirect;) хотя естественно если вводить 192.168.16.1 - то тоже откроется та же страница, т.к. все на одной машине.
Теперь пишу правило(nginx слушает на 8000 порту):
iptables -t nat -A PREROUTING -d 192.168.16.0/24 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.11.24.1:8000
Но не ворк...я что-то делаю не так?...если можно критикуйте.
 

Ссылка на сообщение
Поделиться на других сайтах

Было зацикливание т.к.  это все один шлюз.
Просто сделал так: с 80, 443 портов подсети на 8000 nginix, потом на 8080 виртуалхоста странички.
Все ок, но скайп и пр. P2P  не тушится...начитался тут про squid...думаю, правильно-ли я все это начал?
По сути, пытаюсь тут в качестве эксперимента сделать чудо-биллинг в конторе, мол когда скрипт кидает в эту подсеть, использовать для нее такие правила iptables и связку с nginx.
Но трабл в том, что как в таком случае дать доступ на один сайт с https, который внешний и есть нужным...
Как поступить? Блочить все входящие, и на исходящий адрес только этого сайта разрешить?

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від smartlid
      Есть такая проблема, сделал ipip туннель и перенаправляю трафик с внешнего айпи на внутренний, для этого используется nat + prerouting, вообщем обычный фовардинг. И есть synproxy который убирает с контрака syn, поэтому перенаправление трафика ломается. Вот правила:
      iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 iptables -A INPUT -m conntrack --ctstate INVALID -j DROP iptables -t nat -D PREROUTING -p tcp -m tcp -d $wan_addr --dport $dest_port_wan -j DNAT --to-destination $dest_addr_lan:$dest_port_lan iptables -D FORWARD -m state -p tcp -d $dest_addr_lan --dport $dest_port_lan --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -t nat -D POSTROUTING -p tcp -m tcp -s $dest_addr_lan --sport $dest_port_lan -j SNAT --to-source $wan_addr Как это заставить вместе работать?
    • Від renegade310
      Всем привет.
      Подскажите пожалуйста, как в junos по бэстпрактису управлять анонсами через комунити.
      Для примера:
      Есть 4 апстрима, хочу заанонсить клиента(даунстрима) только в один апстрим и сделать это при помощи комунити.
      Спасибо.
    • Від ageNT_666
      Всем привет, подскажите как можно ограничить максимальное количество контраков на абона? делал так
      iptables -I FORWARD -m connlimit --connlimit-above 5000 -j DROP
      проц в полку!(
    • Від Vsevolod
      Добрый день!
       
      Имеется mikrotik ССR 1036, заведено 3 провайдера, один из которых (isp2) отдает по bgp n-ое количество префиксов.
       
      Также есть 2 абонентские сети ( 172.18.0.0/22, 10.0.0.0/22).
      Нужно чтоб первая сеть (172.18.0.0/22) ходила через isp2, если маршрут приходит по bgp, если же не приходит то уходила в isp1, и также со второй (10.0.0.0/22) - чтоб уходила в isp2, если маршрут приходит по bgp, если же не приходит то уходила в isp3.
       
      Подскажите, пожалуйста, реализацию.

    • Від DronReviews
      Всім привіт. Є роутер MikroTik  (hAP lite) який роздає інтернет.
       
      Завдання: на роутері встановити з'єднання з VPN сервером і виводити в інтернет деяких(або всіх) користувачів через VPN. (VPN сервер теж hAP lite).
       
      Проблема: підключення PPTP client створюється( отримується IP 192.168.88.22) (фото 1), пінг до PPTP сервера "192.168.88.1" іде, до local.com.ua теж іде через інтерфейс "pptp-out1"(фото 2). При встановленні "Add to default route" на клієнтських пристроях перестає робити інтернет. При відключенні "Add to default route" знову починає робити. Пристрої за роутером успішно пінгують 192.168.88.22 але інтернет і 192.168.88.1 - Connection time out(фото 3). 
      Допоможіть, будь ласка, зробити інтернет через pptp-out1.
      Що робив:
      змінював  action=masquerade out-interface=ether1 на  action=masquerade out-interface=pptp-out1
      помічати пакети від ноутбука prerouting, в ip route додавати адресацію через pptp-out1 для пакетів помічених від ноутбука
      встановлював маршрут до певного сайту через інтерфейс pptp-out1 -> перестає відповідати сайт.
        PS. При встановленні підключення PPTP на ноутбуці інтернет працює через VPN як і потрібно. На роутері в фаерволі немає жодного правила заборони.   (фото 1 - PPTP з'єднання) (фото 2 - Пінг із роутера PPTP клієнта) (фото 3 - Пінг із ноутбука)
×
×
  • Створити нове...