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


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Как пропускать почту и ещё кое-что мимо Squid`а?  (Прочитано 7507 раз)

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

Оффлайн tdm

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
  • Ubuntu Server
    • Просмотр профиля
Что хочется:
настроить сервер для раздачи инета в локальную сеть, но браузер, аська и скайп должны ходить через Squid, а почта у пользователей (Bat, Thunderbird), Лотус и ftp(Total Commander) мимо Squid`а.

Со сквидом разобрался, поэтому браузер, аська и скайп работают, а вот почта, Лотус и ftp - я так понимаю надо настраивать iptables, так вот тут что-то не получается. Настраивал NAT по найденной инструкции, но настроил так что всё стало ходить мимо сквида. А надо чтобы только порты 20, 21, 25, 110 и 3128(Лотус) ходили мимо сквида(надо именно так), а всё остальное только через сквид.

Дано:
Ubuntu Server 9.10
Прокси-сервер Squid с внутренним адресом 192.168.105.1 и внешний статический 91.91.91.91(типа)
Squid настроен на порт 8080
Локальная сеть (192.168.105.0/255.255.255.0)

Подскажите, пожалуйста, как настроить iptables для данной задачи? Спасибо.

ЗЫ. искал и перепробовал разные правила и цепочки, но не получается. Я согласен, что не очень понимаю iptables. Прошу помочь советом или ссылкой. Руководство по iptables 1.1.19 уже прочитал, но только запутался.

Пользователь решил продолжить мысль 08 Март 2010, 10:32:30:
Извините, народ! Я задал глупый вопрос или ни кто не может помочь?
« Последнее редактирование: 08 Март 2010, 10:32:30 от tdm »
При достаточном количестве глаз, все ошибки лежат на поверхности.

Оффлайн mitnikk

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Ну то что аська и скайп ходят через сквид, это очень интересно ;D,
не переживайте почта вряд ли захочет через него ходить.

Оффлайн sht0rm

  • Старожил
  • *
  • Сообщений: 3397
    • Просмотр профиля
tdm, листингов с настройками я один не увидел?

Оффлайн ivanov_d_o

  • Любитель
  • *
  • Сообщений: 67
    • Просмотр профиля
не очень понятно. прокси прозрачный? если нет, то на него пойдет только то, что явно указанно в клиенте у пользователя. Если да, то только то, что заворачивает на него шлюз. В зависимости от этого iptables по разному надо строить.

Оффлайн tdm

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
  • Ubuntu Server
    • Просмотр профиля
прокси не прозрачный. в браузере, аське и скайпе настраиваю адрес: 192.168.105.1 и порт: 8080 и нормально работает. НО, почта не работает и я не переживаю, я понимаю, что надо настроить iptables. вопрос: как настроить iptables, чтобы он открыл инет только для определенных портов, указанных ранее, а всё остальное у меня пойдет через сквид.

помогите или подскажите, где посмотреть? всем, спасибо, за ответы.

tdm, листингов с настройками я один не увидел?
Вам нужен листинг сквида? дак у сеня с ним вроде лады, или что-то я упустил. поясните, плиз, для чего он Вам нужен?
При достаточном количестве глаз, все ошибки лежат на поверхности.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Вам нужен листинг сквида?
Листинг текущих настроек iptables.

Оффлайн tdm

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
  • Ubuntu Server
    • Просмотр профиля
вот так я настраиваю NAT

Для работы шлюза на сервере необходимо включить режим разрешения IP-перенаправления пакетов данных из одного интерфейса в другой. Для этого необходимо в файлt /etc/sysctl.conf  раскоментировать строчки:

net.ipv4.ip_forward=1   -    Включаем IP форвардинг
 
net.ipv4.tcp_syncookies=1     -    Защита от Syn flood атаки

Для вступления изменений в силу необходимо перезагрузить компьютер. Проверить включение режима перенаправления можно командой:

cat /proc/sys/net/ipv4/ip_forward

Результат выполнения команды должен быть равен 1.

#eth0 - в провайдера
#eth1 - в локалку

sudo su

вводим правила от рута

#Сначала обнуляем наши текущие правила
iptables -F
iptables -t nat -F

#Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#Теперь закроем наши сервисы так, чтобы они могли работать только для LAN
iptables -I INPUT 1 -i eth1 -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i eth1 -j REJECT
iptables -A INPUT -p UDP --dport domain -i eth1 -j REJECT

#Отбросим все TCP/UDP-пакеты, обращающиеся к привилегированным портам
iptables -A INPUT -p TCP -i eth1 -d 0/0 --dport 0:1023 -j DROP
iptables -A INPUT -p UDP -i eth1 -d 0/0 --dport 0:1023 -j DROP

#В конце добавляем правила для NAT
iptables -I FORWARD -i eth1 -d 192.168.105.0/255.255.255.0 -j DROP
iptables -A FORWARD -i eth1 -s 192.168.105.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.105.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables-save > /etc/iptables.rules  -  сохраняю  правила

Добавляю в /etc/network/interfaces

pre-up iptables-restore < /etc/iptables.rules - восстановление правил при запуске сети
При достаточном количестве глаз, все ошибки лежат на поверхности.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Не вижу правил, заворачивающих трафик на сквид. Показывай вывод команд cat /etc/iptables.rules и sudo iptables-save. По идее эти выводы должны быть идентичны. Если это не так, то правила еще где-то прописываются.

Оффлайн tdm

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
  • Ubuntu Server
    • Просмотр профиля
я сначала настроил сквид, iptables вообще не трогал(так что сначала всё по умолчанию), а потом, когда решил запустить почту(Bat), она конечно не смогла достучатся до своего сервера и тогда я поднял NAT по указанной инструкции, но после этого у меня все проги стали ходить мимо сквида, а мне это не надо. ни каких заворачиваний я не делал, т.е. установил Ubuntu сервер, установил сквид, настроил сквид и всё.
При достаточном количестве глаз, все ошибки лежат на поверхности.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Так у тебя не прозрачный прокси и ты вводишь адрес прокси в каждое приложение получается?

Тогда
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o интерфейс_интернета -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i интерфейс_локалки -m multiport --dports 20,21,25,110,3128  -j ACCEPT
и далее по тексту:

iptables-save > /etc/iptables.rules  -  сохраняю  правила

Добавляю в /etc/network/interfaces

pre-up iptables-restore < /etc/iptables.rules - восстановление правил при запуске сети


Оффлайн tdm

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
  • Ubuntu Server
    • Просмотр профиля
Так у тебя не прозрачный прокси и ты вводишь адрес прокси в каждое приложение получается?

да, в каждое ввожу
При достаточном количестве глаз, все ошибки лежат на поверхности.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Да, и еще из инета порты прикрыть не помешает:
iptables -P INPUT DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i интерфейс_локалки -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

Оффлайн tdm

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
  • Ubuntu Server
    • Просмотр профиля
я ему:
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -m multiport --dports 20,21,25,110,3128  -j ACCEPT
а он мне:
iptables v1.4.4: multiport needs `-p tcp', `-p udp', `-p udplite', `-p sctp' or `-p dccp'
Try `iptables -h' or 'iptables --help' for more information.

почта не работает и последнее не делал пока, на счет прикрытия
При достаточном количестве глаз, все ошибки лежат на поверхности.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Нуда, ессно, я -p tcp забыл.
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -p tcp -m multiport --dports 20,21,25,110,3128  -j ACCEPT

Оффлайн tdm

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
  • Ubuntu Server
    • Просмотр профиля
не работает

iptables -nL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           ctstate NEW multiport dports 20,21,25,110,3128

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
При достаточном количестве глаз, все ошибки лежат на поверхности.

 

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