181

portos, весь скрипт целиком сюда выкладывай, так гадать долго будем.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

182 (14.11.2011 19:34:49 отредактировано portos)

 Консоль:
iptables -L -v
Chain INPUT (policy ACCEPT 17724 packets, 3135K bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 25969 packets, 15M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 14088 packets, 1951K bytes)
pkts bytes target     prot opt in     out     source               destination

 Консоль:
iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 3151 packets, 242K bytes)
pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 1 packets, 238 bytes)
pkts bytes target     prot opt in     out     source               destination
3041  227K MASQUERADE  all  --  any    eth0    anywhere             anywhere

Chain OUTPUT (policy ACCEPT 16 packets, 1130 bytes)
pkts bytes target     prot opt in     out     source               destination


 Консоль:
iptables-save
# Generated by iptables-save v1.4.8 on Mon Nov 14 17:38:50 2011
*filter
:INPUT ACCEPT [31713:5591302]
:FORWARD ACCEPT [41542:22193453]
:OUTPUT ACCEPT [25100:3476238]
COMMIT
# Completed on Mon Nov 14 17:38:50 2011
# Generated by iptables-save v1.4.8 on Mon Nov 14 17:38:50 2011
*nat
:PREROUTING ACCEPT [5531:463968]
:POSTROUTING ACCEPT [1:238]
:OUTPUT ACCEPT [19:1492]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Nov 14 17:38:50 2011

183

 Консоль:
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -t nat -A PREROUTING -i eth0 -p tcp --source 192.168.0.0/24 -m multiport --dport 80,8080,8000 -j DNAT  --to-destination 192.168.1.21:3128
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -d 192.168.0.0/24 -i eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

184

Вывод

# cat /proc/sys/net/ipv4/ip_forward

покажи
ы. Скриптом все оформить не пробовал?
Или принципиально iptables-save\restore?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

185

--=XliN=-- пишет:

 Консоль:
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -t nat -A PREROUTING -i eth0 -p tcp --source 192.168.0.0/24 -m multiport --dport 80,8080,8000 -j DNAT  --to-destination 192.168.1.21:3128
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -d 192.168.0.0/24 -i eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT


Спасибо, пробую.

186

newzenon пишет:

Вывод

# cat /proc/sys/net/ipv4/ip_forward

покажи
ы. Скриптом все оформить не пробовал?
Или принципиально iptables-save\restore?

 Консоль:

cat /proc/sys/net/ipv4/ip_forward
1

187 (14.11.2011 19:42:43 отредактировано XliN)

Вообще для этого есть tcpdump
На сервере

 Консоль:
tcpdump -i eth0 -nn -ttt host 192.168.1.100 and port 3128

192.168.1.100 - слушаешь комп с которого пробуешь зайти в инет через сквид.
И да. newzenon прав. Если принципиално без скрипта, то проверить флаг ip_forward сто пудово надо  smile

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

188

--=XliN=-- пишет:

Вообще для этого есть tcpdump
На сервере

 Консоль:
tcpdump -i eth0 -nn -ttt host 192.168.1.100 and port 3128

192.168.1.100 - слушаешь комп с которого пробуешь зайти в инет через сквид.
И да. newzenon прав. Если принципиално без скрипта, то проверить флаг ip_forward сто пудово надо  smile

Все сделал как ты написал. Снова ничего.

 Консоль:
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             192.168.0.0/24
ACCEPT     all  --  192.168.0.0/24       anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Это после того как все команды выполнил. Может в самом сквиде проблема? Скайп и аська работала, сайты не открываются.

189

portos пишет:

Спасибо, пробую.

Вообще все уже расписал, либо читай тему сначала, http://linuxforum.ru/viewtopic.php?pid=176106#p176106
Я не пойму принципиального назначения

iptables -t nat -A PREROUTING -i eth0 -p tcp --source 192.168.0.0/24 -m multiport --dport 80,8080,8000 -j DNAT  --to-destination 192.168.1.21:3128

И почему PREROUTING?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

190

newzenon пишет:
portos пишет:

Спасибо, пробую.

Вообще все уже расписал, либо читай тему сначала, http://linuxforum.ru/viewtopic.php?pid=176106#p176106
Я не пойму принципиального назначения

iptables -t nat -A PREROUTING -i eth0 -p tcp --source 192.168.0.0/24 -m multiport --dport 80,8080,8000 -j DNAT  --to-destination 192.168.1.21:3128

И почему PREROUTING?

Буду пробовать.

191

а так http://blog.sozinov.eu/2007/04/debian-proxy.html

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

192

portos, да е! ответ дать можешь на вопрос? Я ж не о сверхъестественном спрашиваю, разговор в одни ворота какой-то.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

193

Открывал вот таким способом порты

# Разрешаем пини
$IPT -A INPUT -i $WAN -p icmp -j ACCEPT
$IPT -A OUTPUT -o $WAN -p icmp -j ACCEPT

# Разрешаем http
$IPT -A INPUT -i $WAN -p tcp --sport 80 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --dport 80 -j ACCEPT

# Разрешаем https
$IPT -A INPUT -i $LAN -p tcp --dport 443 -j ACCEPT
$IPT -A OUTPUT -o $LAN -p tcp --sport 443 -j ACCEPT

# Разрешаем ftp
$IPT -A INPUT -i $WAN -p tcp --sport 21 --dport 21 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --sport 21 --dport 21 -j ACCEPT

что то интернет не хочет работать.(
может я как то н так открыл? или каких то не хватает? и сайты не пингуются.

194

wild_osp, весь скрипт показывай. И да http (80) открываешь для интерфейса WAN, а https (443) для LAN - определись уже какой интерфейс и куда смотрит.

Вообще стандартно для интерфейса ppp0 смотрящего в интернет примерно так:

# Разрешаем dns серверу
iptables -A INPUT  -i ppp0 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p udp --dport 53 -j ACCEPT

# Разрешаем пинг
iptables -A INPUT  -i ppp0 -p ICMP -j ACCEPT
iptables -A OUTPUT -o ppp0 -p ICMP -j ACCEPT

# Разрешаем ssh серверу
iptables -A INPUT  -i ppp0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 22 -j ACCEPT

# Разрешаем http серверу
iptables -A INPUT  -i ppp0 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 80 -j ACCEPT
iptables -A INPUT  -i ppp0 -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 80 -j ACCEPT

# Разрешаем https серверу
iptables -A INPUT  -i ppp0 -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 443 -j ACCEPT

# Разрешаем ssmtp серверу
iptables -A INPUT  -i ppp0 -p tcp --dport 465 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 465 -j ACCEPT
iptables -A INPUT  -i ppp0 -p tcp --sport 465 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --dport 465 -j ACCEPT
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

195

Проблема решилась! Решение тут: http://wiki.squid-cache.org/ConfigExamp … /LinuxDnat
Вот только осталось решить еще две задачки  smile
1. Сохранение правил, а то после перезагрузки правила слетают. Хотя сделал так:

 Консоль:
iptables-save > /etc/iptables.up.rules

2. Каким образом из сквида вылавливать инфу сколько/куда/кто и т.д. или через команду grep все делать?

196

portos, ну я ж писал примеры:

auto eth0
  iface eth0 inet static
    address 192.168.0.1
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    up iptables-restore < /etc/iptables.up.rules
    down iptables-save > /etc/iptables.up.rules
    # Также можно:
    pre-up <command>
    post-up <command>

Либо скрипт в каталог if-up

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

197

newzenon пишет:

portos, ну я ж писал примеры:

auto eth0
  iface eth0 inet static
    address 192.168.0.1
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    up iptables-restore < /etc/iptables.up.rules
    down iptables-save > /etc/iptables.up.rules
    # Также можно:
    pre-up <command>
    post-up <command>

Либо скрипт в каталог if-up

Еще раз спасибо тебе за помощь!
Всетаки выражение "читай маны" работает  ag 
По первому вопросу также решение нашел: http://wiki.debian.org/iptables
Думаю и с вторым разберусь, а нет буду спрашивать у уважаемого сообщества!

198

Проблема с торрентом по прежнему у меня вот мой скрипт целиком

#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export WAN=eth0

# Локальная сеть
export LAN=eth1
export LAN_IP_RANGE=192.168.1.80

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT

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

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE

#**************************ОТКРЫВАЮ ПОРТЫ********************************
# Разрешаем dns серверу
$IPT -A INPUT  -i $WAN -p udp --sport 53 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p udp --dport 53 -j ACCEPT

# Разрешаем пинг
$IPT -A INPUT  -i $WAN -p ICMP -j ACCEPT
$IPT -A OUTPUT -o $WAN -p ICMP -j ACCEPT

# Разрешаем ssh серверу
$IPT -A INPUT  -i $WAN -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --sport 22 -j ACCEPT

# Разрешаем http серверу
$IPT -A INPUT  -i $WAN -p tcp --dport 80 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --sport 80 -j ACCEPT
$IPT -A INPUT  -i $WAN -p tcp --sport 80 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --dport 80 -j ACCEPT

# Разрешаем https серверу
$IPT -A INPUT  -i $WAN -p tcp --dport 443 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --sport 443 -j ACCEPT

# Разрешаем ssmtp серверу
$IPT -A INPUT  -i $WAN -p tcp --dport 465 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --sport 465 -j ACCEPT
$IPT -A INPUT  -i $WAN -p tcp --sport 465 -j ACCEPT
$IPT -A OUTPUT -o $WAN -p tcp --dport 465 -j ACCEPT


#************************************************************************
# Вывод информации о состоянии
$IPT -L

вот скрин что торрент качает без проблем ((
http://www.imageup.ru/img49/thumb/1111819460.jpg

вот настройка сетевых интерфейсов:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
        iface lo inet loopback
        pre-up echo "1" > /proc/sys/net/ipv4/ip_forward  # Включаем форвардинг пакетов
        pre-up iptables-restore < /etc/ip_rulles.lst     # Загружаем правила
        post-down iptables-save > /etc/ip_rulles.lst     # Сохраняем правила

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 192.168.55.22
        netmask 255.255.255.0
        network 192.168.55.0
        broadcast 192.168.55.255
        gateway 192.168.55.11
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 194.158.206.206 193.232.248.2
        dns-search by

auto eth1
iface eth1 inet static
        address 192.168.1.99
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255

199

wild_osp, ну у пользователей качать будет, потому что FORWARD для них сквозняком открыт, так ты только для шлюза всё обломал.
Итого убираешь строчку

$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT

Благодаря ей пользователи могут качать и тп.
Далее

# DNS forward
$IPT -A FORWARD -i $LAN -p udp --sport 53 -j ACCEPT
# HTTP forward
$IPT -A FORWARD -i $LAN -p tcp --dport 80 -j ACCEPT
$IPT -A FORWARD -i $LAN -p tcp --sport 80 -j ACCEPT

Собственно только что проверил, все Ок.
Сначала порты в форвард не открывай, попробуй, если после того как убрал первую строчку ни у кого доступа нет в сеть, начинай порты открывать.
Ну я думаю смысл уловил?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

200

Спасибо с портами разобрался!!!!  ag  ag  ag
А можно ли сделать так что бы был отдельный файл со списком IP адресов которые нужно пускать в интернет?

export LAN_IP_RANGE=192.168.1.80

то есть за место 192.168.1.80 указать пусть к файлу?

201

wild_osp, те маскарадинг нужен только определенным IP адресам?

$IPT -t nat -A POSTROUTING -o $EXT -s 192.168.0.5 -j MASQUERADE

Ну и в цикле можно из файла допустим построчно брать и подставлять IP адреса.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

202

Да мне нужно примерно 20 айпишников пустить в нет
было бы удобнее через файл  со списком

203

С тебя и так пиво, теперь наверное ящик.... ab

Делаешь файл допустим такой:
/usr/local/sbin/iplist

192.168.0.5
192.168.0.22
192.168.0.56

Вообще пользовательские скрипты хороший тон хранить в /usr/local/sbin

Дальше в скрипт добавляешь следующее:


IPLIST=/usr/local/sbin/iplist
cat $IPLIST | while read line
do
       $IPT -v -t nat -A POSTROUTING -o $EXT -s ${line} -j MASQUERADE
done

Результатом будет:

192.168.0.5MASQUERADE  all opt -- in * out ppp0  192.168.0.5  -> 0.0.0.0/0  
192.168.0.22MASQUERADE  all opt -- in * out ppp0  192.168.0.22  -> 0.0.0.0/0  
192.168.0.56MASQUERADE  all opt -- in * out ppp0  192.168.0.56  -> 0.0.0.0/0  

-v после $IPT означает verbose - убери чтобы молча выполнялось, без отображения.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

204

Всё отлично получилось! Огромнейшее спасибо! Буду должен )  wink   ag  ag  ag  ag

205

Пользовался 2 месяца интернетом и после этого что то начало ложить весь канал помогает только перезагрузка! расскажите пожалуйста чем можно вычислить кто ложит весь канал?! Уже не знаю что сделать! помогите пожалуйста! Конфиг у меня такой же как тут мы раньше обсуждали....  ac  ac  ac

206

wild_osp пишет:

Пользовался 2 месяца интернетом и после этого что то начало ложить весь канал помогает только перезагрузка! расскажите пожалуйста чем можно вычислить кто ложит весь канал?!

lsof -i
iptraff

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

207

скажите пожалуйста а как можно мне ограничить скорость или количество пакетов в минуту!??

208

Используй iptables tc shaper.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

209

wild_osp пишет:

скажите пожалуйста а как можно мне ограничить скорость или количество пакетов в минуту!??

Для начала чтоб попробще HTB
http://sudouser.com/nastrojka-ograniche … haper.html

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

210

Kettler пишет:
wild_osp пишет:

скажите пожалуйста а как можно мне ограничить скорость или количество пакетов в минуту!??

Для начала чтоб попробще HTB
http://sudouser.com/nastrojka-ograniche … haper.html

Сделал  всё как тут написано поставил ограничение скорости в 2Mbit при скачивание у пользователей показывает только 30-40 Кб/с
В чём может быть проблема? ((