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


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

Автор Тема: Шлюз Интернета на базе Ubuntu-Server / Internet Connection Sharing + Squid  (Прочитано 521359 раз)

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

Оффлайн Hile

  • Новичок
  • *
  • Сообщений: 34
  • Что то ломаю что то строю...
    • Просмотр профиля
Да... немного не подумал... А, может быть, кому-нибудь надо выложить руководство, как на Ubuntu к Squid приделывать Sams? Просто, получается вполне адекватная система для учета трафика, если честно... Особенно, если вам NAT в сети не нужен...
На Мой Взгляд Sams Не очень, посекольку он генерит полностью html страницы.
Дру дело LightSquid Приятный парсер работает быстрее, графики рисует, прост в настройке и интерфейс удобнее
Возможностей навалом..

Оффлайн Hile

  • Новичок
  • *
  • Сообщений: 34
  • Что то ломаю что то строю...
    • Просмотр профиля
И еще вопрос моть и тупой я начинающий всетаки
1. Как Сделать Авто реконнект при падении pppoe
2. Как заставить dnsmasq не с одним днс сервером а чтоб он перебирал при недоступности текущего
3. Можно ли считать весь траффик проходящий через NAT или определенный шлюз(Машина роутер)
Стоит DC++ hub, инет машина раздает, трафу трасперентом считает, днс серв с кешем хоцца человеческий а этот dnsmasq как то не айз(думаю будем bind прикручивать с локалкой прововской стыковать да и с инетовским думаю накумекаем..)

Оффлайн tp123

  • Любитель
  • *
  • Сообщений: 60
  • я еще тока учусь.
    • Просмотр профиля
кто нить может описать настройку статистики !?

Оффлайн Hile

  • Новичок
  • *
  • Сообщений: 34
  • Что то ломаю что то строю...
    • Просмотр профиля
кто нить может описать настройку статистики !?

Да на неделе напишу хотя странный вопрос в рунете полно описаний
И тебе какая нужна статистика? под какой парсер написать? под Сарг не хочу вот про лайт скуид могу) :)

Оффлайн tp123

  • Любитель
  • *
  • Сообщений: 60
  • я еще тока учусь.
    • Просмотр профиля
Я вот как сделал подсчет трафика:
1) Устанавливаем Web- cервер (Apache2;php5;Mysql)
2) Webmin
3) заходим в webmin и устанавливаем webalize и настраиваем его, показывсает скоклько файлов скачено, какие сайте просматривалися, ip так же показаны!

Hile напиши интересно просто !
« Последнее редактирование: 06 Января 2008, 15:54:24 от tp123 »

Оффлайн op1um

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
люди помогите первоклашке решить следующую проблему:

ставлю ubuntu server 7.10 на intel815ep+cel600 

+ eth0 в локал [ static ip 192.168.1.10 ]
+ eth1 смотрит в INET  [c выделенным static IP X.X.X.X]

задача: настроить раздачу инета по логину и паролю в web форме (как в winroute), оформить статистику, настроить почту на заданный мх

при  установке был выбран за основной eth1, тогда же прописываю
 ip , маску, гейт  - инет моментально появляется на сервере.

после установки:

1) sudo apt-get update  -  обновление прошло ok.
2) на всякий приятный sudo apt-get install mc  - ok
3) по волшебному мануалу, как я понял,  нам нужно это настроить dhcp в локалку посредством dnsmasq и NAT через IPmasq

тут и появляются вопросы по dnsmasq - пакет сразу же после установки запускает скрипт и поднимает dhcp.
у меня после установки он ругнулся что socket already in use, start failed.

c чем это связано ? либо с тем что по время установки я выбрал в tasksel установку dns сервера ... или может он пытается поднять dhcp сервер на eth1, смотрящем в inet.
если дело в первом то понятно, а если во втором, то как мне следует настроить dhcp именно на внутренний eth0 ???

так и не запустив dhcp сервер пытаюсь настроить работу инета в локале через proxy  - apt-get install squid

ставлю, редактирую конфиг как написано здесь в начале темы - прокся стартанула.

сажусь за клиентскую машину в локале, настраиваю ip, выставляю proxy eth0 в локал [ ip 192.168.1.10 ] и порт xxx как в конфиге. выхожу из ie, захожу снова, набираю www.ya.ru и попадаю на страничку squid - Access Denied.

проверяю конфиг, проверяю пинг www.ya.ru c сервера   - всё работает, но на клиенте инета так и не появляется (((

на все эти примудрости я потратил сегодня всё время ..., сейчас сижу уже не в офисе, пробую эмулировать всё на vmware, не знаю что получится, но если кто то знает в чём дело  - подскажите пожалуйста.

заранее огромное спасибо и извините за ламерство  :)






Оффлайн 6uest

  • Активист
  • *
  • Сообщений: 302
    • Просмотр профиля
dnsmasq правильно ругается, так как нужные ему порты уже слушает bind, который тебе надобно удалить.
а по поводу squid, попробуй сходить по ip-адресу вместо имени сайта - dns-то у тебя ведь не настроен. :)

Оффлайн tp123

  • Любитель
  • *
  • Сообщений: 60
  • я еще тока учусь.
    • Просмотр профиля
здесь настройка lightsquid
Сеголня ночью опробуем!




Все такие пиши статью! не получается установить!  :2funny:
« Последнее редактирование: 08 Января 2008, 01:23:33 от tp123 »

Оффлайн sergicus

  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
Посмотрите пожалуйста - на этих празниках настроил прксисервер ubuntu - вроде все что надо(маскарадинг, transparenproxy,squid, webmin) работает - разве ч то exim что то чудит (кто сможет помогите https://forum.ubuntu.ru/index.php?topic=19014.0 )

Меня беспокоя настройки iptables - делал скриптом такого содержания

Цитировать
#!/bin/bash

IPT=/sbin/iptables

$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -P INPUT DROP  #по умолчанию все входящие запрещены
$IPT -P FORWARD DROP #по умолчанию все транзитные пакеты запрещены
$IPT -P OUTPUT ACCEPT #по умолчанию все исходящие разрешены

#LOGI
#финальная версия логи временно отключил
#$IPT -A FORWARD -p tcp -j LOG #логирование
#$IPT -A FORWARD -p udp -j LOG #логирование
#$IPT -A FORWARD -p icmp -j LOG #логирование

#NAT
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE # маскарадинг


#включение транспарент прокси
$IPT -t nat -A PREROUTING -i eth1 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128


#INPUT

$IPT -A INPUT -m state --state INVALID -j DROP # отключаем все неправильные пакеты
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # разрешает прием пакетов уже установленных соединений
$IPT -A INPUT -i ! lo -s 127.0.0.1 -j DROP  # запрещает прием любых пакетов с адресом источника локальный компютер со всех интерфейсов кроме lo
$IPT -A INPUT -d 127.0.0.1 -j ACCEPT # разрешает прием всех пакетов для 127.0.0.1
$IPT -A INPUT -s 127.0.0.1 -j ACCEPT # разрешает отправку всех пакетов от 127.0.0.1
$IPT -A INPUT -i ! lo -d 127.0.0.1 -j DROP # запрещает прием со всех интерфейсов кроме lo пакет с адресом назначения 127.0.0.1
$IPT -A INPUT -p icmp -j ACCEPT # разрешает все icmp пакеты
$IPT -A INPUT -p tcp -i eth0 -m state --state NEW --dport 22 -m recent --update --seconds 20 -j DROP #
$IPT -A INPUT -p tcp -i eth0 -m state --state NEW --dport 22 -m recent --set -j ACCEPT #
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT #
$IPT -A INPUT -p tcp --dport 53 -j ACCEPT  # Разрешение DNS
$IPT -A INPUT -p udp --dport 53 -j ACCEPT # Разрешение DNS
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT #

$IPT -A INPUT -p tcp --dport 3128 -j ACCEPT #пробую разрешить сквид
$IPT -A INPUT -p tcp --dport 10000 -s 192.168.0.9 -j ACCEPT #разрешение webmin
$IPT -A INPUT -p tcp --dport 666 -s 192.168.0.9 -j ACCEPT #разрешение darkstat - подсчет трафика

$IPT -A INPUT -p tcp --dport 25 -j ACCEPT # разрешение SMTP
$IPT -A INPUT -p tcp -i eth0 -m state --state NEW --dport 995 -m recent --update --seconds 20 -j DROP # Для протокола POP
$IPT -A INPUT -p tcp -i eth0 -m state --state NEW --dport 995 -m recent --set -j ACCEPT # для избежания подбора паролей


#FORWARD

$IPT -A FORWARD -m state --state INVALID -j DROP 
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i eth1 -o eth0 -j ACCEPT
$IPT -A FORWARD -i ! lo -s 127.0.0.1 -j DROP
$IPT -A FORWARD -i ! lo -d 127.0.0.1 -j DROP

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

Оффлайн IS

  • Участник
  • *
  • Сообщений: 231
    • Просмотр профиля
кто нить может описать настройку статистики !?

какой конкретно?
 ;)

Оффлайн sergicus

  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
вообще статистику настроить действительно несложно - даже я разобрался
ставите программу sarg
и смотрите файл l
sudo nano /etc/squid/sarg.conf

выбираете русский язык (он хорошо комментирован)

ищите параметр report_type и комбинируйте  - ну что еще сказать

Оффлайн JonnyB

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Цитировать
Затем для заворачивание нужных портов на сквид прописывается правило
Код:

iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Сквид настроил, если прописать проксю в браузере - все работает на ура.
А вот правило не сработало. eth0 смотрит в локалку, eth1 - в инет, локалка 192.168.1.0-192.168.1.255. Добавлял такое правило:
Цитировать
iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.1.0/24 -p tcp -m multiport --dport 80 -j DNAT --to 192.168.1.1:3128
При отключении прокси странички не просматриваются.
Помогите пожалуйста правильно написать правило

Оффлайн IS

  • Участник
  • *
  • Сообщений: 231
    • Просмотр профиля
Добавлял такое правило:
Цитировать
iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.1.0/24 -p tcp -m multiport --dport 80 -j DNAT --to 192.168.1.1:3128
При отключении прокси странички не просматриваются.
Помогите пожалуйста правильно написать правило

В /etc/squid/squid.conf для http_port установите опцию transparent (это в самом начале  :) конфига)
 :coolsmiley:

Оффлайн JonnyB

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
IS, это сделано :). Кстати в "iptables -L" нет этого правила. Может быть все-таки правило неправильное?
Добавлено::
Командой "sudo iptables-restore < /home/server/iptables.list" загружаю вот такой файл,
# Generated by iptables-save v1.3.6 on Sun Jan 13 14:28:57 2008
*nat
:PREROUTING ACCEPT [58:3806]
:POSTROUTING ACCEPT [1:60]
:OUTPUT ACCEPT [1:60]
-A PREROUTING -d ! 192.168.1.0/255.255.255.0 -i eth0 -p tcp -m multiport --dports 80,8080,5190,20,21,2802,22,443,110,25,119,23 -j DNAT --to-destination 192.168.1.1:3128 -d ! 192.168.1.0/24
COMMIT
# Completed on Sun Jan 13 14:28:57 2008
# Generated by iptables-save v1.3.6 on Sun Jan 13 14:28:57 2008
*filter
:INPUT ACCEPT [315:33736]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [255:17232]
COMMIT
# Completed on Sun Jan 13 14:28:57 2008
Способом begemot'а настроил проксировани dns:
apt-get install dnsmasqНа клиенте пишу :
telnet ya.ru 80 или telnet pop.mail.ru 110, в ответ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or
g/TR/html4/loose.dtd">
                      <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/
html; charset=iso-8859-1">
                          <TITLE>ERROR: The requested URL could not be retrieved
</TITLE>
        <STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:ver
dana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
                                                      </HEAD><BODY>
                                                                   <H1>ERROR</H1
>
 <H2>The requested URL could not be retrieved</H2>
                                                  <HR noshade size="1px">
                                                                         <P>
                                                                            Whil
e trying to process the request:
                                <PRE>
                                     ashdg

</PRE>
      <P>
         The following error was encountered:
                                             <UL>
                                                 <LI>
                                                     <STRONG>
                                                             Invalid Request
                                                                            </ST
RONG>
     </UL>

          <P>
             Some aspect of the HTTP Request is invalid.  Possible problems:
                                                                            <UL>

<LI>Missing or unknown request method
                                     <LI>Missing URL
                                                    <LI>Missing HTTP Identifier
(HTTP/1.0)
          <LI>Request is too large
                                  <LI>Content-Length missing for POST or PUT req
uests
     <LI>Illegal character in hostname; underscores are not allowed
                                                                   </UL>
                                                                        <P>Your
cache administrator is <A HREF="mailto:webmaster">webmaster</A>.

                                                                 <BR clear="all"
>
 <HR noshade size="1px">
                        <ADDRESS>
                                 Generated Sun, 13 Jan 2008 11:03:42 GMT by prox
y.localdomain (squid/2.6.STABLE5)
                                 </ADDRESS>
                                           </BODY></HTML>


Подключение к узлу утеряно.

И так со всеми портами из правила. В чем может быть причина?
P.S. если в браузере прописать проксю - все заработает
« Последнее редактирование: 13 Января 2008, 14:12:13 от JonnyB »

Оффлайн IS

  • Участник
  • *
  • Сообщений: 231
    • Просмотр профиля
-A PREROUTING -d ! 192.168.1.0/255.255.255.0 -i eth0 -p tcp -m multiport --dports 80,8080,5190,20,21,2802,22,443,110,25,119,23 -j DNAT --to-destination 192.168.1.1:3128 -d ! 192.168.1.0/24

Вот сами подумайте, например посылаем запрос (читай пакет) на адрес  www.mail.ru:80/mail/index.html, в результате подмены destination имеем запрос (пакет)
на 192.168.1.1:3128/mail/index.html, которого у вас фактически нет, т.е. вашему прокси фактически прийдет запрос вида GET /mail/index.html,
вместо GET www.mail.ru:80/mail/index.html
Соответственно ваш прокси сильно этому удивится и пошлет куда подальше.  ;)
И это можно легко понаблюдать: sudo tail -f /var/log/squid/access.log

А классически это делается так:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -d ! 192.168.1.0/24 -j REDIRECT --to-port 3128

т.е. если пакет идет на порт 80 не вашей сети, то не меняя destination меняем порт на локальный(!) 3128.


Мысль понятна? :coolsmiley:

Для тренировки мысли  ;), рекомендую:
http://www.faqs.org/docs/Linux-mini/TransparentProxy.html

ну или если с английским не лады, то погуглить на тему "iptables прозрачное проксирование"
« Последнее редактирование: 14 Января 2008, 21:30:03 от IS »

 

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