PDA

Просмотр полной версии : Ubuntu 10.04 настройка squid


Тайминг
17-08-2010, 15:28
Никак не могу настроить squid...раздает инет в сеть только если в брайзере ip шлюза и порт указешь 3128...как сделать чтоб автоматом раздавался..все статьи перепробывал не получается!!!

Тайминг
17-08-2010, 15:31
Добавим правило перенаправления портов в наш файервол.

sudo iptables -t nat -A PREROUTING -i eth1 -d ! 192.168.1.0/255.255.255.0 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128

Что-бы правильно всё работало и заворачивалось автоматом туда куда нужно делаем следующее:
Создается текстовый файл pico /etc/init.d/gateway и в файл помещается (дабы NAT заводился после загрузки):
#!/bin/sh
iptables —t nat —A POSTROUTING —o eth1 —j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -d ! 192.168.1.0/255.255.255.0 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128

Файлу придается статус исполнимого: chmod +x /etc/init.d/gateway.


это все тоже делал...но автоматом с клиентских машин в инет так и не заходит

Тайминг
17-08-2010, 15:48
апппп

Тайминг
17-08-2010, 17:28
аппппппппппппп

Тайминг
17-08-2010, 17:36
че никто не знает чтоли?!!?!?

reffrush
17-08-2010, 17:42
а нах тебе одновременно NAT и squid? может что то только одно?

Тайминг
17-08-2010, 19:43
я хочу прозрачный прокси..какие основные параметры поменять надо скажите!!!

Тайминг
17-08-2010, 21:00
апапапа

ntimmy
17-08-2010, 22:55
Писать инструкцию долго. Надо весть трафик на порт 80,8080 отредиректить на порт 3128
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 3128

Пример моего скрипта
#!/bin/bash
#
##########################################################
echo 1 > /proc/sys/net/ipv4/ip_forward
# Для защиты от syn флуда
echo 1 > /proc/sys/net/ipv4/tcp_syncookiess
# Число начальных SYN и SYNACK пересылок для TCP соединения
echo 4 > /proc/sys/net/ipv4/tcp_synack_retries
echo 4 > /proc/sys/net/ipv4/tcp_syn_retries
#Какие порты использовать в качестве локальных TCP и UDP портов
#echo "16384 61000" > /proc/sys/net/ipv4/ip_local_port_range
#Сколько секунд ожидать приема FIN до полного закрытия сокета
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Как часто посылать сообщение о поддержании keep alive соединения
#echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
# Сколько пакетов проверки keepalive посылать, прежде чем соединение будет закрыто.
#echo 2 > /proc/sys/net/ipv4/tcp_keepalive_probes
# Зaпрещаем TCP window scaling
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
# Запрещаем selective acknowledgements, RFC2018
echo 0 > /proc/sys/net/ipv4/tcp_sack
# Запрещаем TCP timestamps, RFC1323
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
# Через какое время убивать соединеие закрытое на нашей стороне
#echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries
##################
EXT_IF="eth1"
LAN_IF="eth0"
LOCAL_NET="10.0.0.0/24"
IPT=`which iptables`
EXT_IP=`ifconfig $EXT_IF |grep "inet\ addr:"|awk '{print $2}'|sed -e s/addr://`
LAN_IP=`ifconfig $LAN_IF |grep "inet\ addr:"|awk '{print $2}'|sed -e s/addr://`
#
$IPT -t nat -F
$IPT -X
$IPT -F
#modprobe iptable_nat
#modprobe ip_conntrack_ftp
#modprobe ip_nat_ftp
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
#localhost rules
$IPT -A INPUT -p ALL -i lo -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s $EXT_IP -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s $LAN_IP -j ACCEPT
#external net rules
# ICMP rules
$IPT -A INPUT -p ICMP -i $EXT_IF --icmp-type echo-request -j ACCEPT
$IPT -A INPUT -p ICMP -i $EXT_IF --icmp-type echo-reply -j ACCEPT
#$IPT -A INPUT -p ICMP -i $EXT_IF -j ACCEPT
#$IPT -A INPUT -p ICMP -j ACCEPT
#
#$IPT -A INPUT -p ALL -i $EXT_IF -s $LOCAL_NET -j DROP
$IPT -A INPUT -p TCP -d $EXT_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --dport 20:21 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --dport 22 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --sport 53 -j ACCEPT
$IPT -A INPUT -p UDP -i $EXT_IF --sport 53 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --dport 10000:65535 -j ACCEPT
#end external if
#
#internal net rules
#ICMP
$IPT -A INPUT -p ICMP -i $LAN_IF -j ACCEPT
#
$IPT -A INPUT -p ALL -i $LAN_IF -j ACCEPT
#Когда то здесь была самба
#$IPT -A OUTPUT -p TCP -i $EXT_IF --dport 135:139 -j DROP
#$IPT -A OUTPUT -p UDP -i $EXT_IF --dport 135:139 -j DROP
#$IPT -A OUTPUT -p TCP -i $EXT_IF --dport 445 -j DROP
# Forward Rules
$IPT -A FORWARD -p TCP -s 0/0 --dport 135:139 -j DROP
$IPT -A FORWARD -p UDP -s 0/0 --dport 135:139 -j DROP
$IPT -A FORWARD -p TCP -s 0/0 --dport 445 -j DROP
$IPT -A FORWARD -p UDP -s 0/0 --dport 445 -j DROP
###########################################################
$IPT -A FORWARD -j ACCEPT
###########################################################
#NAT
$IPT -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP
# Redirect 80 8080 ports to squid
$IPTABLES -t nat -A PREROUTING -s $LOCAL_NET -i eth1 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 3128

Здесь почти все правильно написано.
http://www.sys-adm.org.ua/www/squid-transparent.php

Linuxoid
17-08-2010, 23:47
FireStarter тебе поможет легко и быстро раздать доступ в интернет. И никаких iptables

Если хочется, чтобы при подключении соединение с интернетом автоматически настраивалось - тебе уже надо установить dhcp3-server

Мой рабочий конфиг для него (DNS йотовский прописан):


Тайминг
18-08-2010, 00:08
спасибо завтра попробую на работе

ntimmy
18-08-2010, 01:39
$IPTABLES -t nat -A PREROUTING -s $LOCAL_NET -i eth0 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 3128
Очепятка eth1 заменить на eth0

Legioner
18-08-2010, 11:06
братва, может ему нужно
grep transparent squid.conf?

Linuxoid
18-08-2010, 11:23
А тебе с учётом трафика надо? Если с учётом - таки лучше поставить сквид (в основном потому, что он позволяет экономить трафик за счёт кэширования).
Но если просто - NAT должен давать бОльшую производительность, как я понимаю (не требуется отдельный сервер). Хотя учёт трафика и через раздавалку по NAT можно сделать.

rowr
18-08-2010, 11:43
Экономия единицы процентов. Если нада считать да с удобствами ставь sams. Позволяет квотировать трафик помесячно по дням по скоростям. Просматривать историю посещаемых ресурсов.

Тайминг
18-08-2010, 11:47
ситуация такая...хочу сделать убунту шлюзом...бухгалтерия сидит само собой на 1Ске.. башфине.. контурэкстерне...какой лучше прокс делать и какие тут порты для этих прог открыть то надо?!

Linuxoid
18-08-2010, 11:51
Ну, собственно, это должно быть тем, что нужно. Единственное - этап настройки файрвола через iptables заменить на firestarter (он определённо не хочет в консоли настраивать файрвол).

Ещё тут есть документация, частично протухшая: http://squid.opennet.ru/

Тайминг
18-08-2010, 11:55
настройка сквид 2.7 и сквид 3 версии отличается!?!?или аналогична?!

Legioner
18-08-2010, 11:57
из этого следует, что скввид у вас не в прозрачном режиме
для включения транспарентного режима надо включить http_port адрес:порт transparent в squid.conf
https в данном режиме проксировать не получится-натить
если просто натить-то сквид даром не нужен и на нем заморачиваться не надо, а надо на шейпинге, на всякий случай

Тайминг
18-08-2010, 12:08
первый этап это настройка сетевых соеденений...

sudo nano /etc/network/interfaces

auto lo
iface lo inet lооpback

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1

eth1 смотрит в инет....eth0 в локальную сеть 192.168.1.0

первый этап верный же?!

Linuxoid
18-08-2010, 12:16
Может отличаться в ряде особенностей. Но все опции конфигурации в конфигурационном файле приведены в виде комментариев. Там сам конфиг документирован полностью.

Тайминг
18-08-2010, 15:04
после 2 ой этап

sudo touch /etc/nat

#содержание файла#

#!/bin/sh

# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на ********-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

# Включаем NAT
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth1 -o eth1 -j REJECT

открываем /etc/network/interfaces и в самый конец файла дописываем:

post-up /etc/nat

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

sudo chmod +x /etc/nat

Перезапускаем сеть:

sudo /etc/init.d/networking restart


sudo apt-get install dnsmasq

После установки открываем /etc/dnsmasq.conf, находим, раскомментируем и изменяем следующим образом строку, чтобы разрешить серверу принимать DNS запросы из внутренней сети.:

listen-address=127.0.0.1, 192.168.1.0

Перезапускаем DNS сервер:

sudo /etc/init.d/dnsmasq restart

и вуаля

Тайминг
18-08-2010, 19:54
теперь надо настроить squid...решил раз прокси то прокси...как открывать закрывать порты в нем?!