Перейти до

Squid + Stargazer


Рекомендованные сообщения

Есть сетка на 30 машин, всем надо открыть доступ на внутренний вэб сайт независимо от наличия денег на счету и определенному количеству народа выход в инет при наличии денег. Решил осуществить это следующим способом:

для безденежного народа доступ через 80 порт, а для выхода в инет использовать прозрачний прокси на порт 3128. Только вот доступа через прксю добиться немогу.

В файрволе установил следующее правила:

 

iptables -t filter -F

iptables -t filter -X

iptables -t nat -F

iptables -t nat -X

iptables -t filter -P INPUT DROP

iptables -t filter -P FORWARD DROP

iptables -t filter -P OUTPUT DROP

 

# DNS

iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

 

# WWW на локалку

#iptables -t filter -A INPUT -d $server -s $local/24 -p tcp --dport 80 -j ACCEPT

#iptables -t filter -A OUTPUT -s $server -d $local/24 -p tcp --sport 80 -j ACCEPT

 

# SSH

iptables -t filter -A INPUT -p tcp -s $admin -d $server --dport 22 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d $admin -s $server --sport 22 -j ACCEPT

iptables -t filter -A INPUT -p udp -s $admin -d $server --dport 22 -j ACCEPT

iptables -t filter -A OUTPUT -p udp -d $admin -s $server --sport 22 -j ACCEPT

 

# Stargazer configurator

iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -d $server --dport 5555 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp -d 192.168.0.0/24 -s $server --sport 5555 -j ACCEPT

# Stargazer InetAccess

iptables -t filter -A INPUT -p udp -s 192.168.0.0/24 --sport 5555 -d $server --dport 5555 -j ACCEPT

iptables -t filter -A OUTPUT -p udp -d 192.168.0.0/24 --dport 5555 -s $server -j ACCEPT

 

# Маскарадинг

iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE

# Разрешаем все на локальном интерфейсе

iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT

 

# samba на локалку

iptables -A INPUT -i eth1 -p tcp -m multiport --port 137,138,139 -j ACCEPT

iptables -A INPUT -i eth1 -p udp -m multiport --port 137,138,139 -j ACCEPT

iptables -A OUTPUT -o eth1 -p tcp -m multiport --port 137,138,139 -j ACCEPT

iptables -A OUTPUT -o eth1 -p udp -m multiport --port 137,138,139 -j ACCEPT

-----------------------------------------

Скрипты Stargazera:

<OnConnect>

#!/bin/bash

# Login

LOGIN=$1

#user IP

IP=$2

#cash

CASH=$3

#user ID

ID=$4

 

iptables -t nat -A PREROUTING -s $IP -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128

 

iptables -t filter -A INPUT -s $IP -j ACCEPT

iptables -t filter -A FORWARD -s $IP -j ACCEPT

iptables -t filter -A FORWARD -d $IP -j ACCEPT

iptables -t filter -A OUTPUT -d $IP -j ACCEPT

echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

---------------------------------------

<OnDisconnect>

#!/bin/bash

# Login

LOGIN=$1

#user IP

IP=$2

#cash

CASH=$3

#user ID

ID=$4

 

iptables -t nat -D PREROUTING -s $IP -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128

iptables -t filter -D INPUT -s $IP -j ACCEPT

iptables -t filter -D FORWARD -s $IP -j ACCEPT

iptables -t filter -D FORWARD -d $IP -j ACCEPT

iptables -t filter -D OUTPUT -d $IP -j ACCEPT

 

echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

-----------------------------------

 

При этих настройках не могу ходить по WEB, при этом доступ в инет открыт. Squid в логах фиксирует запросы к страницам, но не качает их.

 

Если убрать iptables -t nat..., то все работает нормально, но соответственно без прокси.

 

Калупаюсь уже неделю и все безтолку. Может кто подскажет в чем грабли.

Ссылка на сообщение
Поделиться на других сайтах
При этих настройках не могу ходить по WEB, при этом доступ в инет открыт. Squid в логах фиксирует запросы к страницам, но не качает их.

 

Если убрать iptables -t nat..., то все работает нормально, но соответственно без прокси.

 

Калупаюсь уже неделю и все безтолку. Может кто подскажет в чем грабли.

а ты уверен что в самой сквиде вмсе нормально настроено, что фаервол лочит инет а не сквида? попробуй трейс, пинг, может проблема в конфигах сквиды?

Ссылка на сообщение
Поделиться на других сайтах
Squid один нормально работает, если через файрвол ничего не ограничевать.

А в каком месте пакеты застревабт немогу понять.

выложи настройки сквида

Ссылка на сообщение
Поделиться на других сайтах

# WELCOME TO SQUID 2

# ------------------

#

 

http_port 3128

 

ssl_unclean_shutdown on

icp_port 0

acl QUERY urlpath_regex cgi-bin \?

no_cache deny QUERY

cache_mem 70 MB

cache_replacement_policy heap GDSF

memory_replacement_policy heap GDSF

cache_dir diskd /var/spool/squid/ 1250 16 256

cache_store_log none

log_fqdn on

emulate_httpd_log on

auth_param basic program /usr/lib/squid/pam_auth

auth_param basic children 5

auth_param basic realm Squid Proxy-Caching Web Serwer

auth_param basic credentialsttl 2 hours

acl usera proxy_auth REQUIRED

 

acl localnet src 192.168.0.0/255.255.255.0

acl localhost src 127.0.0.1/255.255.255.255

acl SSL_ports port 443 563

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 563 # https, snews

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

acl PURGE method PURGE

acl all src 0.0.0.0/0.0.0.0

http_access allow localnet

http_access allow localhost

http_access allow PURGE localhost

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access deny CONNECT

http_access deny PURGE

http_access deny all

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy on

httpd_accel_uses_host_header on

cache_mgr veches@pash.net

cache_effective_user squid

cache_effective_group squid

logfile_rotate 0

log_icp_queries off

buffered_logs on

 

Если в файрволе никакие правила не ставить, то все работает нормально.

Но стоит установить правила которые указаны в самом первом сообщении, то через сквид доступ исчезает.

 

Може надо что-то для сквида отдельно прописывать?????

Ссылка на сообщение
Поделиться на других сайтах
Нашел в чем глюк.

надо добавить в OnConnedt:

 

iptables -A INPUT -p tcp -j ACCEPT

iptables -A OUTPUT -p tcp -j ACCEPT

Дык у вас уже были эти строки:

 

iptables -t filter -A INPUT -s $IP -j ACCEPT

<...skip...>

iptables -t filter -A OUTPUT -d $IP -j ACCEPT

 

Без указания целевой таблички по умолчанию - filter.

Так что одинаково.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...