The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Тематический каталог: Шейпер ADSL для домашней сети (shaper ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Шейпер ADSL для домовой сети (shaper traffic adsl bandwidth ..." +/
Сообщение от Донченкоemail (ok), 20-Сен-09, 14:13 
>я внес ошибку в скрипт. Меряю вот так http://www.speedtest.net/result/569938750.png
>(подключен только один хост, т.е. отдает ~80% свободного канала и половину). На
>счет тормозов сказать не могу, нагрузка сейчас к удивлению очень мала.

Попробуйте начать с начала и менять по шагам, с проверкой. По себе знаю - сделаешь два изменения (сразу), потом трудно найти концы.

>Отвечу на свой вопрос (tnx bioname), внешний адрес выдается динамический:
>sudo iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE
>sudo iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT

Ладно, вот Вам кусочек нашей следующей статьи:

FirewallStart(){
    # Включаем перенаправление пакетов через ядро.
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # Политики по умолчанию.
    $IPT -P INPUT DROP
    $IPT -P FORWARD DROP
    $IPT -P OUTPUT DROP
    #Пробрасываем обращения к DNS провайдеру
    # С вероятностью 50% на первый DNS
    # Или на  второй DNS, если первому не повезло
    $IPT -A PREROUTING -t nat -i $DEV_IN -p udp -m udp --dport 53 -m statistic --mode random --probability 0.50 -j DNAT --to-destin
    $IPT -A PREROUTING -t nat -i $DEV_IN -p udp -m udp --dport 53 -j DNAT --to-destination $DNS2:53
    # Разрешаем вход и выход всем пакетам, связанным с локальным интерфейсом lo
    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A OUTPUT -o lo -j ACCEPT
    ############################################################################
    # НАСТРОЙКА СОЕДИНЕНИЙ С СЕРВЕРОМ
    ############################################################################
    # Защита от атак с неправильными пакетами
    $IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    $IPT -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
    $IPT -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
    $IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
    $IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
    $IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
    # Разрешаем пакеты, относящиеся ко всем установленным соединениям
    $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # Разрешаем вход и выход всем пакетам, относящимся к протоколу ICMP
    #$IPT -A INPUT -p icmp -j ACCEPT
    #$IPT -A OUTPUT -p icmp -j ACCEPT
    # !!!!!!!!!! ТОЛЬКО ЕСЛИ ВНУТРЕНЯЯ СЕТЬ ДОВЕРЕННАЯ !!!!!!!!!!!!!
    # Разрешаем пакеты, идущие из локальной сети на этот компьютер и
    # с этого компа в локальную сеть
    $IPT -A INPUT -i $DEV_IN -s $LOCAL_NET -j ACCEPT

    # Разрешаем соединения в соответствии с IN_ACCESS_LST и OUT_ACCESS_LST
# .................  тут логика разрешения
    ############################################################################
    # НАСТРОЙКА ТРАНЗИТНЫХ СОЕДИНЕНИЙ
    ############################################################################
    # Автоматически уменьшать размер передаваемого пакета. Важно для ADSL.
    $IPT -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
    # Разрешаем пакеты, относящиеся ко всем установленным соединениям
    $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    # Т.е. все что запрошено из интернета пользователем, разрешено к возвращению
    # Разрешаем транзитный icmp
    $IPT -A FORWARD -p icmp -j ACCEPT
    # Т.е. пинги
    # Создаем цепочки для сортировки транзитного трафика и направляем его в них
    $IPT -N allowip
    $IPT -N allowport
    $IPT -A FORWARD -s $LOCAL_NET -j allowip
    # Разрешаем доступ для клиентов указанных в LOCAL_IPS
    # если данная переменная пустая то разрешены все адреса из локальной сети

# .............. тут логика допуска
# Но Вам, для простоты:
         $IPT -A allowip -s $LOCAL_NET -j allowport

    # Накладываем ограничения на транзитные соединения – не более CONN_LIM от одного IP
    $IPT -A allowport -p tcp -m connlimit --syn --connlimit-above $CONN_LIM -j DROP

    # Разрешаем транзитные соединения по разрешенным портам
# ............... тут логика разрешения доступа с локальных машин к внешним портам
# Но для Вас можно просто, доступ ко всему:
    $IPT -A allowport -j ACCEPT

# Тут логика для проброса запросов из инета на внутренние машины:    
    # Например, для проброса торрента, вставить свои цифры и повторить сколько надо:
    $IPT -A FORWARD -i $DEV_OUT -d $ip  -p tcp -m tcp --dport $port1  -j ACCEPT
    $IPT -A FORWARD -i $DEV_OUT -d $ip  -p udp -m udp --dport $port1  -j ACCEPT
# где $ip - ip клиентской машины , $port1 - пробрасываемый порт (вставьте свои строчки

    # Маркируем syn пакеты
    $IPT -A PREROUTING -t mangle -p tcp --syn -j MARK --set-mark 1
    # Назначаем одинаковое время жизни для пакетов
    $IPT -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64
    # NAT через динамический IP адрес.
    $IPT -t nat -A POSTROUTING -o $DEV_OUT -j MASQUERADE

В принципе - этого достаточно.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Тематический каталог: Шейпер ADSL для домашней сети (shaper ..., auto_topic, 03-Сен-09, 12:38  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру