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


Автор Тема: Установил squid, не работает https, почта (outlook express), и ICQ  (Прочитано 13775 раз)

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

Оффлайн svedos

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • ubuntuopen.com
Добрый день всем кто мож сталкивался, проблема следующая:
Установил на компьютер с ubuntu (который раздает в локальную сеть интернет) прокси сервер squid 2.7 STABLE6 (который по умолчанию в ubuntu),
настроил конфиг, написал правило для заворота всего трафика из локальной сети на squid.
Squid кстати прозрачный. Настроил блокировку "плохих" сайтов.

НО! Теперь на всех компьютерах локальной сети интернет есть, сайты все нормально открываются, работает даже skype, но не открываются те
которые защищенные (HTTPS), так же не работает аська и почтовые проги (outlook express).

Как настроить что бы все работало? Что делаю неправильно?

Конфиг squid:
(Нажмите, чтобы показать/скрыть)
Конфиг стартового скрипта:
(Нажмите, чтобы показать/скрыть)
Linux Ubuntu-Desktop 10.10

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

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Если быть точнее, то работает только 80 порт. Еще осталось 443 (https) зарулить. Можно конечно и 21 добавить, но порой, говорят, что без гемора не обходится.

А остальной трафик нужно помимо сквида пускать, кешировать там нечего, нужно только NAT'ить.

Оффлайн bober_man

  • Любитель
  • *
  • Сообщений: 97
    • Просмотр профиля
Можно всё. Но лучше сразу средствами iptables. (HTB)
смотрите в сторону stargazer.
Хотя если не нужно точно считать, а достаточно только того, что прошло через 80й порт,  то оставляйте как есть, а некоторые порты (25, 5190, 443, 100 и тд) просто заверните через iptables для нужных пользователей, ну или вообще для всей сети.

Оффлайн svedos

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • ubuntuopen.com
а как собственно завернуть? Нужно что бы все что не http (80 порт) проходило мимо squid.
какое правило можно прописать в данном случае в стартовый скрипт что бы весь остальной трафик шел напрямую?
Linux Ubuntu-Desktop 10.10

Оффлайн bober_man

  • Любитель
  • *
  • Сообщений: 97
    • Просмотр профиля
считать трафик ненужно?!
Если нет, тогда в iptables
IP внешний статический??? ответьте на вопрос и я постараюсь обьяснить как


Пользователь решил продолжить мысль 24 Февраль 2010, 14:25:31:
При статическом IP
Запихиваем куда нить в init.d
#!/bin/sh

echo "    Enabling IP forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

в iptables
#Почтовые порты
-A POSTROUTING -p tcp -s ВНУТРЕННИЙ АЙПИ КОМПА --dport 110 -j SNAT --to-source ВНЕШНИЙ АЙПИ  --dst ! ВАША ВНУТР ПОДСЕТЬ/255.255.255.0
-A POSTROUTING -p tcp -s ВНУТРЕННИЙ АЙПИ КОМПА --dport 25 -j SNAT --to-source ВНЕШНИЙ АЙПИ  --dst ! ВАША ВНУТР ПОДСЕТЬ/255.255.255.0
## Либо для всей сети
-A POSTROUTING -p tcp -s ВАША ВНУТР ПОДСЕТЬ/24 --dport 443 -j SNAT --to-source ВНЕШНИЙ АЙПИ  --dst ! ВАША ВНУТР ПОДСЕТЬ/255.255.255.0


С другими портами по аналогии. Ественно порты должны работать на выход (открыты на сервере)
« Последнее редактирование: 24 Февраль 2010, 14:25:31 от bober_man »

Оффлайн svedos

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • ubuntuopen.com
а если сервер получает ip от провайдера динамический??
можно ли вместо адресов внутренних или внешних указать
интерфейс например eth1 или eth0?
(считать трафик не нужно)
Linux Ubuntu-Desktop 10.10

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

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Как я понял, eth1 - логалка, eth0- инет.
iptables -t nat -A PREROUTING -i eth1 -p tcp -d! 192.168.0.1 --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW ! -i eth0 -j ACCEPT
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Пользователь решил продолжить мысль 24 Февраль 2010, 15:01:13:
И соответственно раскомментировать в /etc/sysctl.conf net.ipv4.ip_forward=1 и рестартнуть sudo invoke-rc.d procps restart
« Последнее редактирование: 24 Февраль 2010, 22:20:23 от Mam(O)n »

Оффлайн svedos

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • ubuntuopen.com
Большущее спасибо-все заработало!!!
.
Как я понял, eth1 - логалка, eth0- инет.
iptables -t nat -A PREROUTING -i eth1 -p tcp -d! 192.168.0.1 --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -o eth0 -j ACCEPT
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Пользователь решил продолжить мысль 24 Февраль 2010, 15:01:13:
И соответственно раскомментировать в /etc/sysctl.conf net.ipv4.ip_forward=1 и рестартнуть sudo invoke-rc.d procps restart
Если можно Вы не могли написать хотя бы краткий комментарий для каждой строки, для более глубокого понимания ситуации?
Linux Ubuntu-Desktop 10.10

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

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Цитировать
# Маскируем адреса локалки, когда пакет уходит от eth0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Правило по-умолчанию для транзита - drop
iptables -P FORWARD DROP
# Разрешаем прохождение пакетов от уже установленных соединений
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем новые подключения из любого места, но кроме с внешнего интерфейса.
iptables -A FORWARD -m conntrack --ctstate NEW ! -i eth0 -j ACCEPT
# Если есть разница в mtu входящего и исходящего интерфейса, то подкручиваем mss у tcp
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

sysctl.conf:
# Включаем транзит
net.ipv4.ip_forward=1

Я в предыдущем посте небольшую ошибку допустил, уже поправил. Красным выделил, где.

Оффлайн svedos

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • ubuntuopen.com
Интересно, но даже с ошибкой все работает.))
Linux Ubuntu-Desktop 10.10

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

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Эта ошибка на безопасность влияет. Я немного попутал потоки трафика.

Оффлайн svedos

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • ubuntuopen.com
а вообще Вам как специалисту при данных настройках сквида и стартового скрипта как вообще безопасность моего сервера?
я имею ввиду никто не сможет подключиться к проксю из вне и типа рассылать за наш трафик спам? или еще чего плохого?
Linux Ubuntu-Desktop 10.10

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

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Я бы еще просто прикрыл файрволлом все порты внешнего интерфейса, кроме как для удалённого администрирования. Сохраняет нервы, когда в конфиге какого-либо сервиса для локалки косяк обнаруживаешь.

Оффлайн svedos

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • ubuntuopen.com
а как это сделать?
мне нужны только 80, 22, 447, 110, 25 и вроде как все


Пользователь решил продолжить мысль 25 Февраль 2010, 00:13:23:
это нужно в firestarter настраивать? или можно командами в стартовом скрипте указать? В принципе по большому счету мне из всех соединений из вне нужен только 22 порт.
« Последнее редактирование: 25 Февраль 2010, 00:13:23 от svedos »
Linux Ubuntu-Desktop 10.10

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

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Добавь к тому
# По умолчанию закрываем всё.
iptables -P INPUT DROP
# Разрешаем прохождение пакетов от уже установленных соединений
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем все подключения, которые не с внешнего интерфейса.
iptables -A INPUT ! -i eth0 -j ACCEPT
# Разрешаем из внешки коннектить на следующие tcp порты сервера
iptables -A INPUT -p tcp -m multiport --dports 22,80,447,110,25 -j ACCEPT

 

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