Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Роутинг по хостам  (Прочитано 6433 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vady

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Роутинг по хостам
« : 12 Марта 2015, 11:52:28 »
Вот конфигурационный файл /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface

# интернет
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
up route add -host yandex.ru gw 192.168.1.1 eth0

# локалка
auto p7p1
iface p7p1 inet static
address 10.0.0.2
netmask 255.255.255.0
gateway 10.0.0.1

Смысл таков: сервер имеет 2 сетевые карты. Одна смотрит на внутреннюю корпоративную сеть, с выходом к шлюзу, подключенному к защищенной интрасети. Другая - в интернет.
Одновременно 2 шлюза настроить не получается - только один плюс роутинг. Хочется ограничить доступ в интернет, сделав вход по белому списку сайтов, например, yandex.ru. Приведенный мной код не решил проблему. Как правильно прописывать роутинг по хосту?
« Последнее редактирование: 26 Марта 2015, 11:52:05 от Vady »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #1 : 12 Марта 2015, 17:08:35 »
по ip-адресам онли

Оффлайн Vady

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #2 : 13 Марта 2015, 14:12:53 »
по ip-адресам онли
Примерами можно?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #3 : 13 Марта 2015, 18:44:45 »
~$ nslookup yandex.ru
Server:         213.80.236.18
Address:        213.80.236.18#53

Non-authoritative answer:
Name:   YANDEX.ru
Address: 213.180.193.11
Name:   YANDEX.ru
Address: 87.250.250.11
Name:   YANDEX.ru
Address: 93.158.134.11
Name:   YANDEX.ru
Address: 213.180.204.11
Отсюда берём IP-адреса и заменяем ими yandex.ru в interfaces

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

Оффлайн Vady

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #4 : 17 Марта 2015, 15:21:43 »
Я это знаю, поэтому и спрашивал про роутинг по хостам, а не по айпи-адресам, т.к. по айпишникам - полный геморрой.
Спасибо за ответ, уже изучаю этот вопрос в другую сторону - iptables и squid.
Требование: наименьшая нагрузка на сервер и редактирование списка "белых сайтов" без необходимости перезагрузки системы. Какой вариант больше подходит?

Оффлайн 2Casp

  • Новичок
  • *
  • Сообщений: 46
  • GNU/Linux
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #5 : 17 Марта 2015, 16:10:47 »
Спасибо за ответ, уже изучаю этот вопрос в другую сторону - iptables и squid.
Требование: наименьшая нагрузка на сервер и редактирование списка "белых сайтов" без необходимости перезагрузки системы. Какой вариант больше подходит?

Только хотел сказать, что ограничение гораздо легче сделать настроив squid. А с iptables весь http поток завернуть принудительно на
squid. Сколько клиентов? Даже с минимальными характеристиками компьютер или виртуальная машина будет бодро отрабатывать 50-100 пользователей.
« Последнее редактирование: 17 Марта 2015, 16:13:02 от 2Casp »
Цена тебе - твое слово.

Оффлайн Vady

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #6 : 17 Марта 2015, 16:20:24 »
Клиентов 60-90. Просто суть проблемы в том, что этот компьютер используется как терминальный сервер, поэтому и хочу минимизировать нагрузки. Сервер, конечно, приличной конфигурации.
Сделал так, как описал по ссылке: http://it-zdrav.velizh.ru/viewtopic.php?f=17&p=1783#p1783. Автор этого поста - я. И пока что не работает. В чем ошибки?

Оффлайн 2Casp

  • Новичок
  • *
  • Сообщений: 46
  • GNU/Linux
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #7 : 17 Марта 2015, 16:34:00 »
И пока что не работает. В чем ошибки?
Какие ошибки?

Пользователь решил продолжить мысль 17 Марта 2015, 17:27:16:
Клиентов 60-90. Просто суть проблемы в том, что этот компьютер используется как терминальный сервер, поэтому и хочу минимизировать нагрузки. Сервер, конечно, приличной конфигурации.
Сделал так, как описал по ссылке: http://it-zdrav.velizh.ru/viewtopic.php?f=17&p=1783#p1783. Автор этого поста - я. И пока что не работает. В чем ошибки?

У меня вот так все работает:

root@c240:/etc/squid# ls
squid.conf  squid.conf.orig
root@c240:/etc/squid# diff squid.conf squid.conf.orig
609,614c609,611
< #acl localnet src 10.0.0.0/8  # RFC1918 possible internal network
< #acl localnet src 172.16.0.0/12       # RFC1918 possible internal network
< #acl localnet src 192.168.0.0/16      # RFC1918 possible internal network
< acl localnet src 192.168.0.0/24       # RFC1918 possible internal network
< acl myhost src 192.168.0.1/32
< acl mynet src 192.168.0.0/24
---
> acl localnet src 10.0.0.0/8   # RFC1918 possible internal network
> acl localnet src 172.16.0.0/12        # RFC1918 possible internal network
> acl localnet src 192.168.0.0/16       # RFC1918 possible internal network
659,662c656,657
< http_access allow myhost
< http_access allow mynet
< #http_access allow manager localhost
< #http_access deny manager
---
> http_access allow manager localhost
> http_access deny manager
664,665c659,660
< #http_access allow purge localhost
< #http_access deny purge
---
> http_access allow purge localhost
> http_access deny purge
1119c1114
< http_port 3128 transparent
---
> http_port 3128
3413d3407
< visible_hostname squid
4591d4584
< dns_nameservers 8.8.8.8
root@c240:/etc/squid# squid -v
Squid Cache: Version 2.7.STABLE7
configure options:  '--prefix=/usr' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--sysconfdir=/etc/squid' '--localstatedir=/var/spool/squid' '--datadir=/usr/share/squid' '--enable-async-io' '--with-pthreads' '--enable-storeio=ufs,aufs,coss,diskd,null' '--enable-linux-netfilter' '--enable-arp-acl' '--enable-epoll' '--enable-removal-policies=lru,heap' '--enable-snmp' '--enable-delay-pools' '--enable-htcp' '--enable-cache-digests' '--enable-underscores' '--enable-referer-log' '--enable-useragent-log' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-carp' '--enable-follow-x-forwarded-for' '--with-large-files' '--with-maxfd=65536' 'i386-debian-linux' 'build_alias=i386-debian-linux' 'host_alias=i386-debian-linux' 'target_alias=i386-debian-linux' 'CFLAGS=-Wall -g -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='
root@c240:/etc/squid# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 516 packets, 51799 bytes)
 pkts bytes target     prot opt in     out     source               destination
   36  1728 REDIRECT   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 3128

Chain POSTROUTING (policy ACCEPT 99 packets, 7369 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 99 packets, 7369 bytes)
 pkts bytes target     prot opt in     out     source               destination
root@c240:/etc/squid#

« Последнее редактирование: 17 Марта 2015, 17:27:16 от 2Casp »
Цена тебе - твое слово.

Оффлайн Vady

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #8 : 17 Марта 2015, 19:12:29 »
Суть проблемы в том, что прописал в файле /etc/squid/good_url следующие тестовые строчки:
yandex.ru
vk.com
odnoklassniki.ru
Итог: вижу все сайты в интернете, а не только по вышеназванному списку.
Пробовал /etc/init.d/squid3 stop
Запустил еще раз сайты, работают. Очевидно, перенаправление портов из iptables не работает. Что нужно делать?

Оффлайн 2Casp

  • Новичок
  • *
  • Сообщений: 46
  • GNU/Linux
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #9 : 17 Марта 2015, 19:41:38 »
Очевидно, перенаправление портов из iptables не работает. Что нужно делать?
Покажите iptables -nvL и iptables -nvL -t nat
Цена тебе - твое слово.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #10 : 17 Марта 2015, 22:38:15 »
Запустил еще раз сайты, работают.
А сайты не https случайно?

И что-то Вы темните - я не вижу маскарада на p7p1

А кстати, где сидят клиенты? Какие  у них адреса?

Оффлайн Vady

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #11 : 18 Марта 2015, 09:25:34 »
Очевидно, перенаправление портов из iptables не работает. Что нужно делать?
Покажите iptables -nvL и iptables -nvL -t nat
root@TERMINALSERVER:/home/vady# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

root@TERMINALSERVER:/home/vady# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         


Пользователь решил продолжить мысль [time]18 Март 2015, 10:34:44[/time]:
А сайты не https случайно?
Нет, хотя https тоже входят в планы.
И что-то Вы темните - я не вижу маскарада на p7p1
Не знаю что такое маскарад, p7p1 смотрит в локалку, а не интернет. У интернета ext0.
А кстати, где сидят клиенты? Какие  у них адреса?
Тонкие клиенты у нас довольно слабы, работают на Windows XP Embedded. Поэтому использую систему терминалов, и клиенты заходят с рабочего стола сервера. Но есть виндовые приложения, которые запускаем напрямую с тонких клиентов. Короче, сидят как со своего рабочего места, так и с рабочего места сервера через терминал. Адреса у них в одной подсети с сервером на p7p1. Возможно, надо будет делать проброс с p7p1 на eth0, чтобы виндовые клиенты получили доступ к интернету.
Но пока что даже тестовый запуск напрямую с сервера через eth0 не срабатывает - открываю все сайты.

Пользователь решил продолжить мысль [time]18 Март 2015, 10:40:58[/time]:
И к своему посту на вышеприведенной ссылке хочу сделать замечание:
nano /etc/network/if-up.d/iptables-rulesТакого файла изначально в ubuntu-server 14.04 не было. Допускаю, что Ubuntu просто не знает об этом, поэтому и не загружается. Это взял с других сайтов в процессе гугления. Где надо править, чтобы система приняла этот файл?
После того, как в терминале набрал:
iptables -t nat -A PREROUTING -i eth0 -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128Получаю следующее:
root@TERMINALSERVER:/home/vady# iptables -nvL
Chain INPUT (policy ACCEPT 2077 packets, 755K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 830 packets, 102K bytes)
 pkts bytes target     prot opt in     out     source               destination         
root@TERMINALSERVER:/home/vady# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 32 packets, 2988 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            192.168.1.0/24        multiport dports 80,8080 to:192.168.1.1:3128

Chain INPUT (policy ACCEPT 17 packets, 1628 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 10 packets, 760 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 10 packets, 760 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Пользователь решил продолжить мысль 18 Марта 2015, 11:14:10:
Еще вопрос: почему после набора команд
iptables -t nat -A PREROUTING -i eth0 -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128
iptables-save
после набора iptables -nvL -t nat получаю:
root@TERMINALSERVER:/home/vady# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 32 packets, 2988 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            192.168.1.0/24        multiport dports 80,8080 to:192.168.1.1:3128

Chain INPUT (policy ACCEPT 17 packets, 1628 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 10 packets, 760 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 10 packets, 760 bytes)
 pkts bytes target     prot opt in     out     source               destination 
а после перезагрузки всё пусто?
« Последнее редактирование: 18 Марта 2015, 11:14:10 от Vady »

Оффлайн 2Casp

  • Новичок
  • *
  • Сообщений: 46
  • GNU/Linux
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #12 : 18 Марта 2015, 12:05:28 »
Еще вопрос: почему после набора команд
iptables -t nat -A PREROUTING -i eth0 -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128
iptables-save
после набора iptables -nvL -t nat получаю:
root@TERMINALSERVER:/home/vady# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 32 packets, 2988 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            192.168.1.0/24        multiport dports 80,8080 to:192.168.1.1:3128

Chain INPUT (policy ACCEPT 17 packets, 1628 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 10 packets, 760 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 10 packets, 760 bytes)
 pkts bytes target     prot opt in     out     source               destination 
а после перезагрузки всё пусто?

Потому что правила после перезагрузки удаляются. Сделайте так:

root@c240:~# cd
root@c240:~# nano iptables
Содержимое файла iptables:
#!/bin/sh
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

root@c240:~# chmod +x iptables
root@c240:~# cp iptables /etc/init.d
root@c240:~# update-rc.d iptables defaults

Перезагрузи компьютер (init 6). Должно все получиться и работать после перезагрузки.

ЗЫ: Для того чтобы удалить скрипт из автозагрузки введите конструкцию: update-rc.d -f iptables remove
« Последнее редактирование: 18 Марта 2015, 13:11:48 от 2Casp »
Цена тебе - твое слово.

Оффлайн Vady

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #13 : 18 Марта 2015, 12:45:51 »
Сделал так, как и рекомендовали, только строчку
iptables -t nat -A PREROUTING -i p7p1 -p tcp --dport 80 -j REDIRECT --to-port 3128заменил на
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128Перезагрузил.
Получил:
root@TERMINALSERVER:/home/vady# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 30 packets, 2136 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REDIRECT   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 3128

Chain INPUT (policy ACCEPT 12 packets, 923 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 85 packets, 5696 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 85 packets, 5696 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Все сайты работают.
После команды
service squid stopОпять же все сайты работают. Работает ли в самом деле перенаправление портов с 80 на 3128? С отключенным squid по моей идее не должны сайты работать, т.к. некому обрабатывать 3128 порт.

Оффлайн 2Casp

  • Новичок
  • *
  • Сообщений: 46
  • GNU/Linux
    • Просмотр профиля
Re: Роутинг по хостам
« Ответ #14 : 18 Марта 2015, 13:10:29 »
После команды
service squid stopОпять же все сайты работают. Работает ли в самом деле перенаправление портов с 80 на 3128? С отключенным squid по моей идее не должны сайты работать, т.к. некому обрабатывать 3128 порт.

Да, работают, можешь проверить в логе /var/log/squid/access.logЧтобы выключить squid: killall squid
Цена тебе - твое слово.

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.