Симулятор Интернета

 
+
-
edit
 

digger

опытный

В системном администрировании не разбираюсь,а нужна такая вещь.Подскажите,как сделать.
Сервер , желательно Windows XP.Клиент, тоже Windows XP. Клиент получает по DNS положительный ответ на любое имя и случайный уникальный IP.На любой IP клиент видит страницу в http.Если просит EXE - получает что просит с припиской, с какого URL он был выгружен, и так с некоторыми другими расширениями.Неплохо бы то же с ftp,но не так актуально.
3 основные проблемы.
1.Как настроить раутинг на сервере,чтобы он направлял любой IP вне подсети на себя?
2.Где взять нужный ДНС сервер, поддерживающий скрипт? Я уже начал писать свой, пока не работает.
3.Как настроить Апач, чтобы он делал что надо в http?
 19.019.0

Mishka

модератор
★★☆
digger> Сервер , желательно Windows XP.Клиент, тоже Windows XP. Клиент получает по DNS положительный ответ на любое имя и случайный уникальный IP.На любой IP клиент видит страницу в http.Если просит EXE - получает что просит с припиской, с какого URL он был выгружен, и так с некоторыми другими расширениями.Неплохо бы то же с ftp,но не так актуально.

Если IP получено, то он и остаётся за этим клиентом? Или каждый раз новый выдаётся? Последнее — с http сервером надо долго возится. Точнее с обвязкой, т.к. там сессии надо организовывать.

Что значит "на любой IP клиент видит http страницу"? Тут нет однозначного соответствия.

Ну и с любым IP падающим на адрес придётся повозиться, т.к. специальной приблуды, которая любые IP адреса возьмёт — это только раутинг софт. Работает он близко к ядру обычно.

А зачем клиенту приписка? Он же сам знает, к кому ходил? И зачем тогда разные IP? Ты же ими не пользуешься.

digger> 3 основные проблемы.
digger> 1.Как настроить раутинг на сервере,чтобы он направлял любой IP вне подсети на себя?

Он же только направлять должен на себя (это просто — default gateway), он же ещё должен и обрабатывать эти пакеты и просовывать далее вверх по TCP стеку. А раутингу последнее по барабану — не его это задача, а задача самого стека.

digger> 2.Где взять нужный ДНС сервер, поддерживающий скрипт? Я уже начал писать свой, пока не работает.

А зачем тебе DNS-то? Не проще ли использовать IP адрес напрямую?
Вместо URL http://www.popa.info/viewer.exe
будет URL http://10.0.0.2/viewer.exe


digger> 3.Как настроить Апач, чтобы он делал что надо в http?
Это не Апач надо настроить. А надо написать небольшую цацу, которая пошлёт в ответ запрашиваемый URL, ну и файл какой-нибудь. Апач должен быть настроен в том смысле, что разрешит использование такого расширения.

В общем, ИМХО, изобретение трудностей для последующего их преодоления.
 18.018.0
+
-
edit
 

Полл

литератор
★★★
Mishka> В общем, ИМХО, изобретение трудностей для последующего их преодоления.
Человек хочет вебсервер-"обманку". Чтобы он в ответ на любое введенное имя отправлял клиента на случайный IP, привязанный всегда к конкретному серверу.
Я бы предложил поиграться с виртуалками на сервере. Там можно и МАК-адрес менять.
Но главная задача сделать скрипт, который будет обрабатывать DNS-запросы клиента, генерируя связку адреса и имени, а затем поднимая виртуалку с сгенерированными адресами.
С вебсервером придется повозиться, чтобы он корректно в такой среде жил.
 

Vale

Сальсолёт

Если коротко - чего хочется? Не на уровне частных задач, а в общем?

Сделать так, чтобы людям в подсетке казалось, что они в интернете, а на самом деле- нет? "Великий диггеровский фаерволл"? :F

Я так понимаю, для этого достаточно *nix овой машины, с поднятым DNS сервером и Апачем. DNS всегда показывает на себя, а Апач тщательно притворяется Сетью.
"Не следуй за большинством на зло, и не решай тяжбы, отступая по большинству от правды" (Исх. 23:2)  19.019.0

digger

опытный

Нужно это для анализа нехороших программ, которые желают видеть Интернет,но без реального выхода в него.

Давaйте по порядку, начнем с DNS.
DNS на себя - это неинтересно.Мне хочется ,чтобы у каждого домейна был свой IP,чтобы разпознать,что с какого домейна качалось, ведь качается по IP.Есть ли DNS сервер, поддерживающий не только конфиги,но и скрипты?

Раутер.Раутинг в XP есть.Это должна быть строка в таблице,добавляемая route add,но я не знаю, как это делается.

Апач.С IP у него нет проблем, он получает всё как будто обращаются к нему.
Но как узнать оригинальный адресс запроса? Если никак, то не страшно,переживем.С файлами - самое простое, перенаправление делается с помощью Aliasmatch,но на фиксированные файлы, примерно так:
Aliasmatch *.ехе c:\goat\goat.exe
Я хочу делать это скриптом.
 19.019.0
+
-
edit
 

Mishka

модератор
★★☆
Полл> Человек хочет вебсервер-"обманку". Чтобы он в ответ на любое введенное имя отправлял клиента на случайный IP, привязанный всегда к конкретному серверу.

Вопрос — а зачем на случаайный? С тем NAT/NATP на Лине решается на раз. Всех отправляем в одну дырку, даже если адреса разные. :F Т.е. мы подставляем адреса разные из подсети, любой dst IP меняем на один с помощью NAT (ipchains) на лине и дальше пусть сам стек этого линя заботится (или даже ХРюша за NAT-ом). Стек сам протолкнёт в нужном направлении.

Полл> Я бы предложил поиграться с виртуалками на сервере. Там можно и МАК-адрес менять.

Можно. Только зачем?

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

А адрес можно тоже менять всегда на один. :) Зачем разные-то?

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


А иначе придётся возиться с IP стеком на машине, бо его чётко с рождения приучили — не твой IP — не трожь! А хочеться трогать чужое. Да ещё и обрабатывать. Т.е. гораздо больше, чем снифер.
 18.018.0

Mishka

модератор
★★☆
digger> Нужно это для анализа нехороших программ, которые желают видеть Интернет,но без реального выхода в него.

А почему ты решил, что программки будут пользоваться DNS-ом? При открытии соединения важен IP. Его можно просто вбить в программу так же, как и DNS имя. Т.е. с анализом таких программ будет плохо.

digger> Давaйте по порядку, начнем с DNS.
digger> DNS на себя - это неинтересно.Мне хочется ,чтобы у каждого домейна был свой IP,чтобы разпознать,что с какого домейна качалось, ведь качается по IP.Есть ли DNS сервер, поддерживающий не только конфиги,но и скрипты?

Качается по IP. Домейн быть не обязан. IP хватает для уникальной идентификации машины. Более того, он и только он и используются.

Не хочешь линуксовый/фряшный стандартный — на тебе — Dual DHCP DNS Server | Free software downloads at SourceForge.net. И понятно, где поменять. В тот момент, когда он на нашёл, то добавь и запиши в конфиг. Всё.

digger> Раутер.Раутинг в XP есть.Это должна быть строка в таблице,добавляемая route add,но я не знаю, как это делается.

Раутинг есть. Очень простой. И default gateway есть. Вот такого, чтобы принимал по любому IP и обрабатывал — такого нет. Бо стек приучен с рождения к обратному. Более того, даже на раутерах и лине с фряхой, софт для раутинга не работает полноценно со стеком сам, он ему перебрасывает, когда надо.

А присвоить альтернативных IP адресов на ХР можно не более 4-х, ЕМНИП. На лине виртуальных адресов на физическую карту можно больше, но тоже есть лимит. И надо выдавать командочку ifconfig (ну, или через вызовы кернела).

digger> Апач.С IP у него нет проблем, он получает всё как будто обращаются к нему.

Он получает только то, что стек ему направит. А далее ищёт URL. Ну, или через модули расширения обрабатывает вещи, как в тех же стратах — ищется вход в карте концов URL и по ним вызывается джавовский страт. Для PHP вызывается PHP, которая и генерит страницу.

digger> Но как узнать оригинальный адресс запроса? Если никак, то не страшно,переживем.С файлами - самое простое, перенаправление делается с помощью Aliasmatch,но на фиксированные файлы, примерно так:
digger> Aliasmatch *.ехе c:\goat\goat.exe

дык, это вход в ту же карту.
digger> Я хочу делать это скриптом.

Кто мешает дописать в апаческий конфиг и из скрипта дёрнуть, чтобы перечитал?


Добавление default router:
Вначале
code text
  1. H:\>route print
  2. ===========================================================================
  3. Interface List
  4. 0x1 ........................... MS TCP Loopback interface
  5. 0x2 ...00 1e 4f e8 43 92 ...... Intel(R) 82566DM-2 Gigabit Network Connection - Packet Scheduler Miniport
  6. ===========================================================================
  7. ===========================================================================
  8. Active Routes:
  9. Network Destination        Netmask          Gateway       Interface  Metric
  10.           0.0.0.0          0.0.0.0        10.23.4.1     10.23.4.115       10
  11.         10.23.4.0    255.255.254.0      10.23.4.115     10.23.4.115       10
  12.       10.23.4.115  255.255.255.255        127.0.0.1       127.0.0.1       10
  13.    10.255.255.255  255.255.255.255      10.23.4.115     10.23.4.115       10
  14.         127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
  15.         224.0.0.0        240.0.0.0      10.23.4.115     10.23.4.115       10
  16.   255.255.255.255  255.255.255.255      10.23.4.115     10.23.4.115       1
  17. Default Gateway:         10.23.4.1
  18. ===========================================================================
  19. Persistent Routes:
  20.   None


Потом
code text
  1. route ADD 0.0.0.0 MASK 0.0.0.0  10.23.4.1 METRIC 10 IF 2


Заметь номер интерфейса 2 в первой команде (0x02) и во второй (IF 2) — надо использовать, если хочешь DG для этого интерфейса.

Но default gateway может быть только один. Поэтому можно добавить раут для подсети на твою машину:
code text
  1. route ADD 89.108.0.0 MASK 255.255.0.0  10.23.4.2 METRIC 10 IF 2

И 65,534 адресов будут ходить (точнее пытаться) не через 10.23.4.1, а через 10.23.4.2.


Повторюсь, что принять эти все IP пакеты и обработать на 10.23.4.2 — задача трудная.
 18.018.0
Это сообщение редактировалось 01.03.2013 в 02:47

Jerard

аксакал

Mishka> А почему ты решил, что программки будут пользоваться DNS-ом? При открытии соединения важен IP.
Не все программки используют IP, OEBS от Oracle без DNS не работает.
"Остановите Землю — я сойду" (С) Лесли Брикасс, Энтони Ньюли  19.019.0

digger

опытный

Mishka> А почему ты решил, что программки будут пользоваться DNS-ом? При открытии соединения важен IP. Его можно просто вбить в программу так же, как и DNS имя. Т.е. с анализом таких программ будет плохо.

Пользуются.Пойти на fuck.com - ему необхoдим DNS,чтобы найти IP.Я уже написал свой ДНС, клиент и сервер, клиент доволен и понимает ответ,а браузер - фиг.

Mishka> Раутинг есть. Очень простой. И default gateway есть. Вот такого, чтобы принимал по любому IP и обрабатывал — такого нет. Бо стек приучен с рождения к обратному. Более того, даже на раутерах и лине с фряхой, софт для раутинга не работает полноценно со стеком сам, он ему перебрасывает, когда надо.

Дело в том,что система уже работала и она у меня есть,но я не могу понять как.Сервер там Линукс.Но как работает - не совсем понимаю.Пишешь любой IP в браузере клиента - получаешь страничку по умолчанию.
Вот раутинг тейбл сервера:

dest gateway mask
192.228.226.0 0.0.0.0 255.255.255.0
127.0.0.0 0.0.0.0 255.0.0.0
0.0.0.0 192.168.226.245 0.0.0.0

192.168.226.245 is IP of server
 19.019.0
RU просто спокойный тип #01.03.2013 11:29  @digger#01.03.2013 04:35
+
-
edit
 

просто спокойный тип
Спокойный_Тип

старожил

написал свой ДНС??

такие вещи любят SEO оптимизаторы делать и порнушники - торговцы мусорным трафиком - наверняка у тебя подобная покупная система (раз уже линукс есть), это сидж-крутилка какой-то


на преле пишется свой DNS-заглушка ( модели NET::DNS \ NET::DNS::RESOLVER и тп) - есть готовые примеры в сети , видел у людей нечто подобное для подобной задачи

далее на линухе (или фрюхе) ты через файрволл заворачиваешь трафик на все эти айпишник на один айпи на веб серевере (или ещё как-то трафик собираешь, в общем случае это слушаешь *:80 на нгикнсе, а он дальше всё на один скрипт гонит, и побольше айпи адресов приписываешь к серверу)

ну и на самом сервере стоит перловый скрипт который генерит контент этот мусорный - собирает что-то из заранее подготовленных шаблонов на лету, с мод_реврайтом колдует или ещё что делает...
(ну или не перловый, смотря какой трафик, разные бывают варианты)

да , ещё вариант два...допустим ты имел в виду нечто иное ))) у тебя стоит на линуксе прокси сервер - SQUID и все клиенты туда заворачиваются файрволлом (на дефолтном шлюзе) через принудительный нат для порта 80 и 443... и далее тебе сквид тебе все эти странички подсовывает согласно правил прописанных у него в фильтрах
If plan A didn't work , the alphabet has 25 more letters ! so stay cool  19.019.0
Это сообщение редактировалось 01.03.2013 в 14:27

Mishka

модератор
★★☆
Jerard> Не все программки используют IP, OEBS от Oracle без DNS не работает.
Все. Интернет (не с большой буквы, а с маленькой — TCP/IP предъявляет такие требования) иначе не работает. Oracle работает прекрасно и с IP, если их в Listenere указать вместо имён. Единственное, где он паразитирует на DNS, так это на load balancinge, когда один listener слушает, а потом редиректает на нужные. Да и там с IP работает, если знаешь, как. У нас вон UP тоже так сделало. Ещё и хотели закрыть от SQLDeveloper-а БД. Только, когда знаешь на сетевом уровне, как это работает, то туннель ставится напрямую к одному из серверов балансинга и получаешь доступ к инстансу Оракла.
 18.018.0

Mishka

модератор
★★☆
digger> Пользуются.Пойти на fuck.com - ему необхoдим DNS,чтобы найти IP.Я уже написал свой ДНС, клиент и сервер, клиент доволен и понимает ответ,а браузер - фиг.

PuTTY знаешь? Вон он может напрямую по IP. Раутер дома имеешь? На страничку 192.168.1.1 заходишь без DNS. И так везде. Просто браузер ставит в запрос (HTTP запрос) и полный адрес. Т.е. когда ты видешь запрос
code text
  1. http://www.balancer.ru/tech/forum/post.php?tid=87660&qid=3079810


то браузер получает IP Сайт расходящихся тропок // Balancer.Ru (89.108.118.15), открывает к нему соединение, а потом в строке запроса (HTTP запроса) посылает весь URL — тот, который упомянут сверху. Тем не менее, если в строке браузера ты введёшь
code text
  1. http://89.108.118.15/tech/forum/post.php?tid=87660&qid=3079810


То увидишь фиг. Причина проста, браузер отошлёт уже другой URL, а у Ромы включён виртуальный Апач, который использует первую часть URL (та, которая не протокол — http: — протокольная часть определяет порт по умолчанию, который может быть заменён, и правила взаимодействия верхнего протокола) для отображения в нужный модуль. Так и работает виртуальный хостинг вебсерверов.

Если ты войдёшь телнетом к Роме на адрес 89.108.118.15 порт 80, ручками наберёшь нормальный запрос, который содержит URL со словом balancer, то в ответ получишь gzip-нутую страничку.


digger> Дело в том,что система уже работала и она у меня есть,но я не могу понять как.Сервер там Линукс.Но как работает - не совсем понимаю.Пишешь любой IP в браузере клиента - получаешь страничку по умолчанию.

Я думаю, что там NAT, как я и предлагал. Поэтому, если линь очень старый, то надо посмотреть ipchains и iptables. В более современно только последнее. Раутинга недостаточно. Ну и раутинг надо смотреть на клиенте тоже. И знать адреса клиента и сервера.

digger> Вот раутинг тейбл сервера:
digger> dest gateway mask
digger> 192.228.226.0 0.0.0.0 255.255.255.0
digger> 127.0.0.0 0.0.0.0 255.0.0.0
digger> 0.0.0.0 192.168.226.245 0.0.0.0

А где интерфейсы? А где метрики? Без этого дела не разобраться.

digger> 192.168.226.245 is IP of server

Выдай на лине netstat -r и скопируй сюда. На клиенте (если винда), то route print и тоже сюда.
 18.018.0

Jerard

аксакал

Mishka> Все. Интернет (не с большой буквы, а с маленькой — TCP/IP предъявляет такие требования) иначе не работает. Oracle работает прекрасно и с IP, если их в Listenere указать вместо имён.
О, сенкс за инфу. Но структура наименвоания НЕ нами придумана. :(
"Остановите Землю — я сойду" (С) Лесли Брикасс, Энтони Ньюли  19.019.0

Mishka

модератор
★★☆
Jerard> О, сенкс за инфу. Но структура наименвоания НЕ нами придумана. :(

Jerard> О, сенкс за инфу. Но структура наименвоания НЕ нами придумана. :(
Если пригодится, то описываю, как у нас с Union Pacific работает.

У нас есть одна машинка, которая называется наш gateway. Пусть он имеет адрес 192.168.1.21.
Со стороны UP имеется тоже gateway. Пусть у него есть адрес 192.168.2.22.

Далее там куча машин, в том числе целая ферма ораклов, которая имеет доступ к одной и той же базе, но эти инстансы выполняются на разных машинах. На каждой машине свой IP. Наш гейт знает про нашу сеть, их гейт знает про их сеть. Все наши программки на их машинах конектятся к их Ораклам. Лисенер их перенаправляет. Поэтому просто к лисенеру не подсоединится, т.к. будут после этого открыты другие порты и адреса, а туннель, если сделал, то на определённый порт и адрес.

Поэтому, я захожу на машинку, где наши сервера и при помощи команды
netstat -a -n -p -t | grep 1521 | grep <имя server-a>
нахожу IP, к которому присоединён сервер. Пусть это будет 192.168.2.123


Потом из лога сервера беру SID или имя листенера и выдаю на нашем гейте такую команду:
ssh -g -f -N -C -l "имя юзера на их гейте" -L 192.168.1.21:41521:192.168.2.123:1521 192.168.2.21

SSH спрашивает пароль для "имя юзера на их гейте" и туннель готов.

Если имя такое xtss23sp48.company.com, то в SQLDeveloper набираешь:
Прикреплённые файлы:
oracle.png (скачать) [11 кбайт, 7 загрузок] [attach=322316]
 
 
 18.018.0

Mishka

модератор
★★☆
Как видишь, никаких имён, только IP адреса.
 18.018.0

Jerard

аксакал

Mishka> Как видишь, никаких имён, только IP адреса.
Ок. Надо будет опробовать на кошках.
"Остановите Землю — я сойду" (С) Лесли Брикасс, Энтони Ньюли  19.019.0

digger

опытный

Не было времени,пока забросил.Более скромная версия работает, сервер - Виндовс.Фиктивные страницы и файлы по расширению делаются в Апаче с помощью AliasMatch. Готовая ДНС, перенаправляющая все запросы на 1 IP - АpateDNS и FakeDNS.
 19.019.0

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru