Автор Тема: Помогите организовать доступ к интернету (SQUID 3)  (Прочитано 6513 раз)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 376
  • Учиться .... Телепатами не рождаются, ими ....
зачем мне чтобы прозрачно то а
мне надо чтобы прокси ограничивал им трафик и скорость
А что прозрачность прокси как-то влияет на трафик и скорость?

Оффлайн max346

  • Участник
  • *
  • Сообщений: 93
прописываю правило:
#дает доступ в инет без прописывания ip и port
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128 # пере направление с 80 на 3128 но неработают game torrent
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE # странное правило. Когда останавливаем прокси то перестает работать инет но пинги проходят и всякие icq torrent в инете висят
« Последнее редактирование: 12.12.2009 19:07:04 от max346 »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 376
  • Учиться .... Телепатами не рождаются, ими ....
А что тут странного? Squid не работает с  icq, torrent и т.п у вас на сквид не перенаправляются, а идут через второе правило. IMHO Squid не предназначен для icq,  torrent и т.п.. 

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 376
  • Учиться .... Телепатами не рождаются, ими ....

Оффлайн max346

  • Участник
  • *
  • Сообщений: 93
если не для этого. И как быть поднимать на windows прокси

« Последнее редактирование: 13.12.2009 10:19:59 от max346 »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 376
  • Учиться .... Телепатами не рождаются, ими ....

Оффлайн Const

  • Глобальный модератор
  • *****
  • Сообщений: 2 653
  • Даже у плохого модератора есть свои плюсы…
Руслан, ссылки на глаз подбираешь, или действительно понимаешь эти… ээээ… вопросы?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 376
  • Учиться .... Телепатами не рождаются, ими ....
Руслан, ссылки на глаз подбираешь, или действительно понимаешь эти… ээээ… вопросы?
В смысле? Я не тестировал, но читал :)

Оффлайн black_13

  • Участник
  • *
  • Сообщений: 657
  • Gentoo + Debian + ALT
    • diff.org.ua
во фрюхе все просто
rej   tcp  10.0.0.0/8           10.0.0.1             * -> 80
acc/r tcp  10.0.0.0/8           0.0.0.0/0            * -> 80    :) :) :) :) :) :) :)
iptables это вам не IPFW и уж темболее не PF  :D
Тут надо сначала понять как работает iptables вообще, потом особенности при работе с nat.
Из личного опыта говорю ... забудьте все что вы знаете про настройки подобного в *BSD системах на то время что будете заниматься настройкой iptables  :D
Иначе дело непойдет :(

Оффлайн max346

  • Участник
  • *
  • Сообщений: 93
Сделал проще поставил 2 сервак на винде и в пихал прокси  Трафик иснпектор 
Потому что Iptables не поддерживат как я понял проброс всех портов на определенный порт.
Прочитав статью на www.iptables.ru

Оффлайн black_13

  • Участник
  • *
  • Сообщений: 657
  • Gentoo + Debian + ALT
    • diff.org.ua
Мда уж .... виндовый роутинг - это тот еще подарок. Прочувствован на личной шкуре  :D

Оффлайн max346

  • Участник
  • *
  • Сообщений: 93
Не могу добавить firewall в автозагрузку.
chmod -x /etc/init.d/firewall
chkconfig --add firewall не добавляет
пишет: сервис firewall не подерживат chkconfig
« Последнее редактирование: 25.12.2009 15:54:15 от max346 »

Оффлайн max346

  • Участник
  • *
  • Сообщений: 93
#!/bin/sh
OUT="breth1" # Имя исходящего интерфейса, смотрящего в интернет.
OUTADDR="192.168.1.2" #192.168.1.2" # Адрес исходящего интерфейса
IN="breth0" # Имя входящего интерфейса, смотрящего в локальную сеть
INADDR="192.168.0.2" # Адрес входящего интерфейса
NETWORK="192.168.0.0/24" # Адресация первой локальной сети
#ANYWHERE="0.0.0.0/0" # Назначение, любое.
PORTSI="80:443" для Squid.
PORTS="1024:65535" # Порты, которые считаются локальными
MULTICAST="224.0.0.0/4" # Мультикаст пакеты, если у вас не используется оставьте как есть,
# если используется IP TV тогда надо удалить этот пункт

#ADMINS="2.2.2.3 2.2.2.4" # IP адреса администраторов, имеют полный доступ на сервер, без каких либо ограничений.
ADMINS=""

##############################################################################################
# Здесь прописаны параметры запуска\остановки\статуса скрипта. лучше не трогайте =)
# Остановка скрипта
case "$1" in
stop)
echo "Shutting down firewall..."

iptables --flush
iptables --delete-chain
iptables --table nat --flush
iptables --table filter --flush
iptables --table nat --delete-chain
iptables --table filter --delete-chain

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT

echo "...done"
;;
status)
echo $"Table: filter"
iptables --list
echo $"Table: nat"
iptables -t nat --list
;;
restart|reload)
$0 stop
$0 start
;;

##############################################################################################
# Запуск скрипта
start)
echo "Starting Firewall..."
echo ""

# Очистка таблиц и цепочек
iptables --flush
iptables --delete-chain
iptables --table nat --flush
iptables --table filter --flush
iptables --table nat --delete-chain
iptables --table filter --delete-chain

# Назначение глобальных политик фаервола
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#iptables -F INPUT
#iptables -F OUTPUT
#iptables -F FORWARD

# Загружаем модули, для корректной работы VPN, Active ftp, DCC in IRC которые будут идти через нат.
modprobe ip_nat_ftp
#modprobe ip_nat_pptp
modprobe ip_conntrack_ftp
#modprobe ip_conntrack_irc

# Изменение параметров SYSCTL
# Включение форвардинга
echo 1 > /proc/sys/net/ipv4/ip_forward
# Включение форвардинга для VPN
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
# Увеличение размера очередей
echo 32000000 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
# Время ожидания до закрытия соединения
echo 14400 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
# Время ожидания до посылки FIN пакета
echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait
# Время ожидания до посылки FIN пакета
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_sent
# Для защиты от syn флуда
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Увеличиваем размер backlog очереди
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# Число начальных 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 1048576 > /proc/sys/net/core/rmem_max
echo 1048576 > /proc/sys/net/core/rmem_default
echo 1048576 > /proc/sys/net/core/wmem_max
echo 1048576 > /proc/sys/net/core/wmem_default
# Через какое время убивать соединеие закрытое на нашей стороне
echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries

# Temporary eth0 completely disabled
#iptables -A INPUT -i $OUT -j DROP

# Admins - full control (even dagerous)
for admin_ips in $ADMINS; do

iptables -A INPUT -s $admin_ips -m state --state NEW -j ACCEPT
done


# все в логи
iptables -A INPUT -j LOG --log-level 7 --log-tcp-options
iptables -A OUTPUT -j LOG --log-level 7 --log-tcp-options
iptables -A FORWARD -j LOG --log-level 7 --log-tcp-options

#локальные адреса разрешаем.
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#разрешаем все входящие и исходящие с eth0
iptables -A INPUT -i $IN -j ACCEPT
iptables -A OUTPUT -o $IN -j ACCEPT

iptables -A OUTPUT -o $OUT -p icmp -m icmp -j ACCEPT
iptables -A INPUT -i $OUT -p icmp -m icmp -j ACCEPT

# Multicast - ignore
#iptables -A INPUT -s $MULTICAST -j DROP
#iptables -A INPUT -d $MULTICAST -j DROP

# any established or related conns are welcome
#iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Statistics and auths for customers, ping tests
for net_ips in $NETWORK; do

iptables -A INPUT -p icmp -i $IN --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp -i $OUT --icmp-type echo-request -j ACCEPT

done

############ Открываем нужные нам порты.
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --dport 8080 -j ACCEPT
iptables -A INPUT -i $OUT -p udp -m udp --dport 1194 -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --dport 1194 -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $OUT -p udp -m udp --dport 22 -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $OUT -p udp -m udp --dport 80 -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -i $OUT -p udp -m udp --dport 443 -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i $OUT -p udp -m udp --dport 3128 -j ACCEPT
# PASSIVE FTP
#iptables -t filter -A INPUT -p tcp -m tcp --dport 50000:50500 -m state --state NEW -j ACCEPT
#iptables -t filter -A INPUT -p udp -m udp --dport 50000:50500 -m state --state NEW -j ACCEPT
# APACHE
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

# SSH
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 60 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --sport 22 -m recent --update --seconds 60 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --sport 22 -m recent --set -j ACCEPT

#torrent
iptables -A INPUT -i $OUT -p tcp -m tcp --dport 6881 -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --sport 6881 -j ACCEPT

iptables -A INPUT -i $OUT -p tcp -m tcp --dport 3389 -j ACCEPT
iptables -A INPUT -i $OUT -p tcp -m tcp --sport 3389 -j ACCEPT

#Wesnoth
#iptables -A INPUT -i $OUT -p tcp -m tcp --dport 15000 -j ACCEPT
#iptables -A INPUT -i $OUT -p tcp -m tcp --sport 15000 -j ACCEPT

#iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 15000 -j ACCEPT
#iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 15000 -j ACCEPT


########### OUTPUT

# SSH
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 23 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 23 -j ACCEPT

# FTP
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 21 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 20 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 443 -j ACCEPT

iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 445 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 445 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 52378 -j ACCEPT

iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 80 -j ACCEPT

iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 81 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 81 -j ACCEPT

# linux update
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 873 -j ACCEPT

# torrent
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 6881 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 6881 -j ACCEPT

iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 3389 -j ACCEPT
iptables -A OUTPUT -o $OUT -p tcp -m tcp --sport 3389 -j ACCEPT

#no-ip.com
#iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 8245 -j ACCEPT

#открываем порт аськи
iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 5190 -j ACCEPT

#открываем порт atlantic
#iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 1234 -j ACCEPT
#iptables -A OUTPUT -o $OUT -p tcp -m tcp --dport 11234 -j ACCEPT

#почта (начало)
#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 217.197.114.149 --dport 110 -j ACCEPT
#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 217.197.114.149 --dport 25 -j ACCEPT

#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 217.197.114.134 --dport 110 -j ACCEPT
#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 217.197.114.134 --dport 25 -j ACCEPT

#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 194.67.23.102 --dport 110 -j ACCEPT
#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 194.67.23.111 --dport 25 -j ACCEPT

#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 82.204.219.180 --dport 110 -j ACCEPT
#iptables -A OUTPUT -o $OUT -p tcp -m tcp -d 82.204.219.180 --dport 25 -j ACCEPT
#почта (конец)

#UDP
iptables -A OUTPUT -o $OUT -p udp -m udp -j ACCEPT
iptables -A OUTPUT -o $OUT -p udp -m udp -j ACCEPT

iptables -A FORWARD -o $OUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A FORWARD -o $OUT -p tcp -m tcp --dport 8080 -j ACCEPT
iptables -A FORWARD -o $OUT -p tcp -m tcp --dport 1755 -j ACCEPT
iptables -A FORWARD -o $OUT -p tcp -m tcp --dport 554 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7000 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7001 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7002 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7003 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7004 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7005 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7006 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 7007 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 123 -j ACCEPT
iptables -A FORWARD -o $OUT -p udp -m udp --dport 137 -j ACCEPT

#все входящие с $OUT, кроме инициированных с моей стороны обламываем.
iptables -A INPUT -i $OUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $OUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT


#iptables -A INPUT -i $OUT -j REJECT --reject-with icmp-port-unreachable


iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP

########### NAT Вписываем сюда IP своих компьютеров в локальной сети.
#iptables -t nat -A POSTROUTING -s 192.168.0.10 -o $OUT -j MASQUERADE
iptables -t nat -A PREROUTING -s $NETWORK -p tcp --dport $PORTSI -j REDIRECT --to-port 3128
############ PORT FORWARD Сюда вписываем проброс портов локальную сеть.
#iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 8230 -j DNAT --to-destination 2.2.2.10:8230
#iptables -t filter -A FORWARD -i $OUT -d 2.2.2.10 -p tcp --dport 8230 -j ACCEPT


iptables-save> /etc/sysconfig/iptables
echo "...done"

echo "--> IPTABLES firewall loaded/activated <--"

##--------------------------------End Firewall---------------------------------##

;;
*)
echo "Usage: firewall (start|stop|restart|status) EXTIF INTIF"
exit 1
esac

exit

Оффлайн max346

  • Участник
  • *
  • Сообщений: 93
Решил задачку
#!/bin/sh
# chkconfig: 2345 4 89
# description: FIREWALL