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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Опять про интернет шлюз на Ubuntu 9.10  (Прочитано 3544 раз)

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

Оффлайн demon999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Опять про интернет шлюз на Ubuntu 9.10
« : 23 Апрель 2010, 15:12:27 »
Поднял интернет шлюз на Ubuntu 9.10. Прокси squid 2.7 прозрачный + программа анализатора логов squid sams.

Есть одна проблемка. Не работает почта, а именно почтовые клиеты (оутлук) . Знаю что надо открывать порты iptables но не заю как это сделать. Интернет пестрит примерами но рабочих конкретных не нашел, тем более не силен в iptables.

Из действительно действенных советов частично помогло это

iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD ACCEPT
sysctl net.ipv4.ip_forward=1

Почта - почтовые клиенты заработали частично (оутлук экспресс норм, а оутлук майкр нет) НО если снять в насройках браузера использовать прокси, инет у людей есть в обход прокси squid!!


Что необходимо! Чтобы трафик http шел через squid (дае если не стоит галочка использовать прокси в браузере), а почта, аська, банк клиент как угодно лишь бы проходили запросы (считать трафик почты и банк клиентов мне ненужно, тем более я в курсе что squid не проксирует 110 и 25 порты). Просьба подсказать кто как решил такую задачку, подсказать дельным советом!!!

iptables-save у меня такое
*filter
:INPUT ACCEPT [7955:2688805]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8187:2596876]
COMMIT

 
точно не помнишь, сам не  пробовал, но по твоему точно знаешь как?! Лучше не советуй. Google не заменит человека.

Оффлайн Polugut

  • Участник
  • *
  • Сообщений: 194
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #1 : 23 Апрель 2010, 16:03:57 »
Делал по инструкции из этой темы
https://forum.ubuntu.ru/index.php?topic=56061.0
Там есть в виде pdf. Работает. В двух организациях уже. Трафик http заворачивается на squid так (строка из скрипта)
LAN_IP_RANGE="192.168.1.0/24"
$IPTABLES -t nat -A PREROUTING -s $LAN_IP_RANGE -p tcp --destination-port 80 -j REDIRECT --to-port 3128
(на деле там больше строчек, но эта отвечает за поворот на сквид)

Трафик через другие порты идет мимо сквида

« Последнее редактирование: 23 Апрель 2010, 16:08:03 от Polugut »
Сам факт установки Линукс на компьютер по российским законам, к сожалению, не является преступлением. Однако

Оффлайн demon999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #2 : 23 Апрель 2010, 16:40:07 »
Попробовал скрипт вот что он мне выдал



root@demon-desktop:/home/demon# /root/rules.sh
'sbin/depmod: invalid option -- '
depmod 3.10 -- part of module-init-tools
depmod -[aA] [-n -e -v -q -V -r -u -w -m]
      [-b basedirectory] [forced_version]
depmod [-n -e -v -q -r -u -w] [-F kernelsyms] module1.ko module2.ko ...
If no arguments (except options) are given, "depmod -a" is assumed

depmod will output a dependancy list suitable for the modprobe utility.


Options:
   -a, --all            Probe all modules
   -A, --quick          Only does the work if there's a new module
   -e, --errsyms        Report not supplied symbols
   -m, --map            Create the legacy map files
   -n, --show           Write the dependency file on stdout only
   -V, --version        Print the release version
   -v, --verbose        Enable verbose mode
   -w, --warn      Warn on duplicates
   -h, --help           Print this usage message

The following options are useful for people managing distributions:
   -b basedirectory
       --basedir basedirectory    Use an image of a module tree.
   -F kernelsyms
       --filesyms kernelsyms      Use the file instead of the
                                  current kernel symbols.
   -E Module.symvers
       --symvers Module.symvers   Use Module.symvers file to check
                                  symbol versions.
 not found.le ip_tables
 not found.le ip_conntrack
 not found.le iptable_filter
 not found.le iptable_mangle
 not found.le iptable_nat
 not found.le ipt_LOG
 not found.le ipt_limit
 not found.le ipt_state
: No such file or directoryroc/sys/net/ipv4/ip_forward
: No such file or directorybin/iptables
: No such file or directorybin/iptables
: No such file or directorybin/iptables
: No such file or directorybin/iptables
: No such file or directorybin/iptables
: No such file or directorybin/iptables
: No such file or directorybin/iptables
: команда не найдена 27: ACCEPT
: No such file or directorybin/iptables
/root/rules.sh: line 29: 80: команда не найдена
: No such file or directorybin/iptables
/root/rules.sh: line 31: REDIRECT: команда не найдена
: No such file or directorybin/iptables
: No such file or directorybin/iptables
/root/rules.sh: line 34: NEW,ESTABLISHED: команда не найдена
: No such file or directorybin/iptables
: No such file or directorybin/iptables
 вместо иероглифов на самом деле написал КОМАНДА НЕ НАЙДЕНА!



точно не помнишь, сам не  пробовал, но по твоему точно знаешь как?! Лучше не советуй. Google не заменит человека.

Оффлайн Andrin

  • Участник
  • *
  • Сообщений: 117
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #3 : 23 Апрель 2010, 16:43:24 »
Не работает у тебя потому, что у тебя фактически нет правил для транзитного траффика на сервере, а http обрабатываются сквидом и идут как траффик самого сервера. Так не будет работать.
Со скриптом смысла заморачиваться не вижу, все намного проще. Сейчас напишу.

Пользователь решил продолжить мысль 23 Апрель 2010, 16:44:45:
Вывод cat /etc/network/interfaces свой дай
Чем смогу - помогу. Кто знает больше меня - не стесняйтесь, помогите мне :)

Оффлайн demon999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #4 : 23 Апрель 2010, 16:46:27 »
даю  cat /etc/network/interfaces

auto lo
iface lo inet loopback
точно не помнишь, сам не  пробовал, но по твоему точно знаешь как?! Лучше не советуй. Google не заменит человека.

Оффлайн Andrin

  • Участник
  • *
  • Сообщений: 117
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #5 : 23 Апрель 2010, 16:48:53 »
Эээ... ifconfig -a дай еще, пожалуйста.
Я не пойму, сколько сетевух в сервере, откуда береться интернет?
Чем смогу - помогу. Кто знает больше меня - не стесняйтесь, помогите мне :)

Оффлайн demon999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #6 : 23 Апрель 2010, 16:52:22 »
etho 10.250.23.187 смотрит на другой проксик который дает инет (на боевом сервере будет внешний ар адрес провайдером присвоенный)
eth1 10.250.23.105 смотрит в сеть
точно не помнишь, сам не  пробовал, но по твоему точно знаешь как?! Лучше не советуй. Google не заменит человека.

Оффлайн Andrin

  • Участник
  • *
  • Сообщений: 117
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #7 : 23 Апрель 2010, 16:56:48 »
Делай так: nano /etc/iptables.conf - создаешь файлик конфигурации таблиц файрвола. Туда копируй вот это:
# Generated by iptables-save v1.4.4 on Thu Apr 22 11:19:32 2010
*nat
:PREROUTING ACCEPT [801:49528]
:POSTROUTING ACCEPT [49:6683]
:OUTPUT ACCEPT [634:46745]
#-A PREROUTING -s 10.250.23.0/24 ! -d 10.250.23.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -o eth0 -j SNAT --to-source 10.250.23.187
COMMIT
# Completed on Thu Apr 22 11:19:32 2010
# Generated by iptables-save v1.4.4 on Thu Apr 22 11:19:32 2010
*filter
:INPUT DROP [173:13144]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i eth1 -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Thu Apr 22 11:19:32 2010

Далее
nano /etc/sysctl.conf и в конец файла пишешь net.ipv4.ip_forward=1 потом сохраняешь, естественно.

Поправил строку prerouting, от того, что шлюз в той же подсети находиться, у меня ум за разум заходит... Закомментил пока строку, потом решим, главное сначала транзитный трафик пробросить.

Пользователь решил продолжить мысль 23 Апрель 2010, 13:05:59:
После того, как поправишь sysctl и сделаешь файлик с конфигом iptables. Дай команды
sysctl -w net.ipv4.ip_forward="1"
iptables-restore < /etc/iptables.conf

И будет отлично, если все-таки сообщишь результаты манипуляций :)
« Последнее редактирование: 23 Апрель 2010, 17:37:47 от andrinlindo »
Чем смогу - помогу. Кто знает больше меня - не стесняйтесь, помогите мне :)

Оффлайн Polugut

  • Участник
  • *
  • Сообщений: 194
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #8 : 23 Апрель 2010, 21:01:25 »
etho 10.250.23.187 смотрит на другой проксик который дает инет (на боевом сервере будет внешний ар адрес провайдером присвоенный)
eth1 10.250.23.105 смотрит в сеть
Если есть возможность, переведите локальную сеть на один из стандартных адресов. Например 192.168.1.1-254.


А скрипт не сработал потому, что его надо немного доводить руками.  Убирать лишние переносы строк, которые влезли при экспорте в pdf. Хотя может предложенный andrinlindo вариант лучше, но я пользуюсь этим скриптом в том числе и для закрытия отдельных портов и компьютеров. Не очень разбираюсь в тонкостях iptables, а в скрите все наглядно, особо шевелить мозгами не нужно.
Сам факт установки Линукс на компьютер по российским законам, к сожалению, не является преступлением. Однако

Оффлайн demon999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #9 : 23 Апрель 2010, 22:47:23 »
В понедельник на работе попробую оба скрипта и обязательно отпишусь сюда. Спасибо всем кто откликнулся
точно не помнишь, сам не  пробовал, но по твоему точно знаешь как?! Лучше не советуй. Google не заменит человека.

Оффлайн Andrin

  • Участник
  • *
  • Сообщений: 117
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #10 : 23 Апрель 2010, 23:10:22 »
По теме:
Тот момент на котором я остановился не есть конец инструкции :)
Вообще для завершения манипуляций нужно настроить автоматическое применение правил iptables при загрузке системы. Вообще это делается путем добавления строки в конфиг интерфейса в /etc/network/interfaces, должно получиться что-то вроде этого:
auto eth1
iface eth1 inet static
address 217.21.220.197
netmask 255.255.255.240
pre-up /sbin/iptables-restore < /etc/iptables.conf
Собственно последняя строка прописывает правила при каждой загрузке системы.
Именно поэтому меня удивило, как это у тебя в конфиге интерфейсов ничего кроме lo нету. По идее должны быть конфиги для твоих eth0 и eth1
Если все же пойдешь моим, более сложным ;) путем, и у тебя получиться сделать инет - напиши, разберемся с прероутингом на сквид.

P.S. Пользуясь случаем кину и сюда ссылку на свой любимый мануал :)
http://ru.wikipedia.org/wiki/Iptables
Мозгами шевелить нужно учиться, хоть и Ubuntu, но все же Unix way должен же быть :) К тому же, начиная с азов iptables, можно научиться всевозможным их более хитростным применениям, нежели позволяют стандартные скрипты :)
К тому же, такая простая вещь, как банальный НАТ намного проще сделать руками за пять минут, прописав какой-то десяток строчек в iptables :)
« Последнее редактирование: 23 Апрель 2010, 23:35:09 от andrinlindo »
Чем смогу - помогу. Кто знает больше меня - не стесняйтесь, помогите мне :)

Оффлайн demon999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #11 : 26 Апрель 2010, 09:39:17 »
К сожалению ни один из предложенных скриптов не дал нужных результатов. Почты у юзеров нет

Пользователь решил продолжить мысль 26 Апрель 2010, 09:45:06:
Продолжение темы. На старом сервере (который я сейчас переделываю) были вот такие правила.


#!/bin/sh
#
# firewall-standalone   This script sets up firewall rules for a standalone
#                       machine
#
# Copyright (C) 2000 Roaring Penguin Software Inc.  This software may
# be distributed under the terms of the GNU General Public License, version
# 2 or any later version.
# LIC: GPL

# Interface to Internet
EXTIF=ppp+

ANY=0.0.0.0/0

ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -P forward DENY

ipchains -F forward
ipchains -F input
ipchains -F output

# Deny TCP and UDP packets to privileged ports
ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p udp -j DENY
ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p tcp -j DENY

# Deny TCP connection attempts
ipchains -A input -l -i $EXTIF -p tcp -y -j DENY

# Deny ICMP echo-requests
ipchains -A input -l -i $EXTIF -s $ANY echo-request -p icmp -j DENY



Как мне новые правила написать для iptables подобные этим?????
« Последнее редактирование: 26 Апрель 2010, 09:45:06 от demon999 »
точно не помнишь, сам не  пробовал, но по твоему точно знаешь как?! Лучше не советуй. Google не заменит человека.

Оффлайн Andrin

  • Участник
  • *
  • Сообщений: 117
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #12 : 26 Апрель 2010, 10:41:12 »
1. терминология :) Я скриптов не предлагал. Только правила для iptables.
2. что значит почты нет? Поскольку ограничения по портам никаких нет, то вопрос в другом: пинги на внешние узлы проходят? Сквид их не проксирует, а значит это позволит определить, работает ли форвадинг на сервере.
3. что конкретно, из того, что я сказал вы выполнили? Скиньте сюда вывод cat /etc/sysctl.conf && cat /etc/network/interfaсes && iptables-save

А насчет вашего старого скрипта - я не понимаю, как через него могла работать почта, т.к. там форвадинг запрещается по дефолту, а разрешений потом на него никаких нет. Также запрещается входит на сам сервер с портов 0-1023, по tcp протоколу, и пинги не пускать. В общем просто какая-то коробка без окон без дверей получается :)
« Последнее редактирование: 26 Апрель 2010, 11:00:56 от andrinlindo »
Чем смогу - помогу. Кто знает больше меня - не стесняйтесь, помогите мне :)

Оффлайн demon999

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #13 : 26 Апрель 2010, 11:16:13 »
sysctl.conf строчку net.ipv4.ip_forward=1 расскоментировал
cat /etc/network/interfaсes
auto lo
iface lo inet loopback

iptables-save

root@demon-desktop:/home/demon# iptables-save
# Generated by iptables-save v1.4.4 on Mon Apr 26 11:13:06 2010
*nat
:PREROUTING ACCEPT [6:288]
:POSTROUTING ACCEPT [1:60]
:OUTPUT ACCEPT [1:60]
COMMIT
# Completed on Mon Apr 26 11:13:06 2010
# Generated by iptables-save v1.4.4 on Mon Apr 26 11:13:06 2010
*mangle
:PREROUTING ACCEPT [22:4659]
:INPUT ACCEPT [21:4611]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [20:1390]
:POSTROUTING ACCEPT [20:1390]
COMMIT
# Completed on Mon Apr 26 11:13:06 2010
# Generated by iptables-save v1.4.4 on Mon Apr 26 11:13:06 2010
*filter
:INPUT ACCEPT [21:4611]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [20:1390]
COMMIT
# Completed on Mon Apr 26 11:13:06 2010
root@demon-desktop:/home/demon#
 
точно не помнишь, сам не  пробовал, но по твоему точно знаешь как?! Лучше не советуй. Google не заменит человека.

Оффлайн Andrin

  • Участник
  • *
  • Сообщений: 117
    • Просмотр профиля
Re: Опять про интернет шлюз на Ubuntu 9.10
« Ответ #14 : 26 Апрель 2010, 11:23:32 »
Учитывая, что iptables у вас пустые, а я вам дал все необходимые инструкции, чтобы их заполнить, я не удивлен, что у вас ничего не работает.
Если вы вдруг сделали себе файлик /etc/iptables.conf, как я говорил, то дайте команду iptables-restore < /etc/iptables.conf и дайте мне после этого вывод iptables-save. И проверьте инет из внутренней сети после этого.
Чем смогу - помогу. Кто знает больше меня - не стесняйтесь, помогите мне :)

 

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