The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Прошу помочь написать правила для iptables, !*! longcat, 04-Июн-14, 11:47  [смотреть все]
Собственно, почитал вот это http://www.opennet.ru/docs/RUS/iptables/#HOWARULEISBUILT и много другого, но толком ничего не понял.
Стоит задача:
1)настроить шлюз на debian
2)настроить проброс портов для всяких внешних приложений
3)настроить маршрутизацию внутри сети (если это нужно, потому как я не догоняю, как шлюз будет и будет ли вообще (все компы и точки доступа в локале подключены через тупой свитч)  пересылать пакеты от одного локального клиента другому локальному клиенту)
4)настроить удаленный доступ к серваку по ssh
5)правила iptables поставить в автозагрузку
6)запретить определенные сайты для всех кроме определенных ip

Что я сделал, но ,к сожалению, нормально даже это не заработало:
1) ну дебиан7 я поставил, управление по ssh, обе сетевые настроены: eth1 это локалка,
eth0 это в интернет(статика). Настроил dhcp, с ним все как надо.
2)для блокировки сайтов поставил squid3, запускается с конфигом без ошибок, настроен как прозрачный, порт 3128
3)на этапе настроек iptables уперся в не понимание его работы, на руках только готовые правила отсюда http://howitmake.ru/blog/ubuntu/86.html
раскомментил строку net.ipv4.ip_forward=1 в файле /etc/sysctl.conf

iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

с этими настройками интернет заработал на одном ноутбуке подключенном через точку доступа->свитч->шлюз, кучу других в интернет не пустило, большинство подключены к свитчу

настройки iptables загружаю через строку в /etc/network/interfaces # iptables-restore > /etc/iptables-save

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

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

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
это правило подменяет адрес пакетам из локальной сети?
для обратных пакетов нужно ли что либо еще?
#iptables -A FORWARD -i eth0 -o eth0 -j REJECT
это правило для маршрутизации пакетов в локалке, без интернета?
# iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
вот это правило вообще не понимаю
хочу добавить проброс портов правилом
iptables -t nat -A PREROUTING -d "внешний ip" -p tcp -m tcp --dport "внешний порт" -j DNAT --to-destination "локальный компьютер":"внутренний порт"
заработает ли оно и куда ставить все эти пробросы портов?

# правила для прокси, вроде бы перенаправляют, раз один компьютер сайты открывал
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to "ipпрокси_и_шлюза":3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
будет ли их достаточно для открывания страничек в том числе по https?

#для ssh, достаточно ли этого правила для подключения с обеих сторон от шлюза?
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

я понимаю, что никто не обязан мне помогать или что нибудь объяснять, буду благодарен за любую помощь, ссылки, объяснения, критику и прочее.

  • Прошу помочь написать правила для iptables, !*! reader, 13:13 , 04-Июн-14 (1) +2
    > Собственно, почитал вот это http://www.opennet.ru/docs/RUS/iptables/#HOWARULEISBUILT
    > и много другого, но толком ничего не понял.
    > Стоит задача:
    > 1)настроить шлюз на debian
    > 2)настроить проброс портов для всяких внешних приложений
    > 3)настроить маршрутизацию внутри сети (если это нужно, потому как я не догоняю,
    > как шлюз будет и будет ли вообще (все компы и точки
    > доступа в локале подключены через тупой свитч)  пересылать пакеты от
    > одного локального клиента другому локальному клиенту)

    в таблице маршрутизации есть маршрут для локальной подсети согласно которому клиенты будут обмениваться пакетами на прямую, даже если прописан шлюз

    >[оверквотинг удален]
    > только готовые правила отсюда http://howitmake.ru/blog/ubuntu/86.html
    > раскомментил строку net.ipv4.ip_forward=1 в файле /etc/sysctl.conf
    > iptables -F
    > iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    > iptables -A FORWARD -i eth0 -o eth0 -j REJECT
    > iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    > с этими настройками интернет заработал на одном ноутбуке подключенном через точку доступа->свитч->шлюз,
    > кучу других в интернет не пустило, большинство подключены к свитчу
    > настройки iptables загружаю через строку в /etc/network/interfaces # iptables-restore
    > > /etc/iptables-save

    это не загрузка ,а перенаправление вывода iptables-restore в файл /etc/iptables-save

    > есть примерные наборы правил, но в каком порядке  их писать и
    > будут ли они работать как надо, и где ошибка, не могу
    > сейчас разобраться
    > подскажите, пожалуйста, какие правила написаны не правильно, и где бы почитать мануал
    > попроще чем по ссылке в начале

    там и так просто и понятно для понимающих как работает сеть, после первого прочтения может получится каша в голове, но как только начинаете сами писать правила все проясняется.

    > # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    > это правило подменяет адрес пакетам из локальной сети?

    да
    > для обратных пакетов нужно ли что либо еще?

    автоматом, в мануале сказано
    > #iptables -A FORWARD -i eth0 -o eth0 -j REJECT
    > это правило для маршрутизации пакетов в локалке, без интернета?

    блокирует с уведомлением пакеты которые пришли и должны были уйти через eth0
    > # iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    > вот это правило вообще не понимаю

    при проблемах с mtu, если проблем нет то не нужно его вставлять, ну и логичней было бы -A, а не -I
    > хочу добавить проброс портов правилом
    > iptables -t nat -A PREROUTING -d "внешний ip" -p tcp -m tcp
    > --dport "внешний порт" -j DNAT --to-destination "локальный компьютер":"внутренний порт"
    > заработает ли оно и куда ставить все эти пробросы портов?

    да если в таблице фильтров разрешено прохождение для этих пакетов и для ответов
    > # правила для прокси, вроде бы перенаправляют, раз один компьютер сайты открывал
    > iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j
    > DNAT --to "ipпрокси_и_шлюза":3128

    да
    > iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
    > REDIRECT --to-port 3128

    заварачивать на прокси то что пришло с инета опасно
    > будет ли их достаточно для открывания страничек в том числе по https?

    https будет идти через  MASQUERADE

    > #для ssh, достаточно ли этого правила для подключения с обеих сторон от
    > шлюза?
    > iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

    есть политики по умолчанию, если они в ACCEPT, то не имеет значения, а так да разрешит обращения через все сетевые интерфейсы

    > я понимаю, что никто не обязан мне помогать или что нибудь объяснять,
    > буду благодарен за любую помощь, ссылки, объяснения, критику и прочее.

    • Прошу помочь написать правила для iptables, !*! longcat, 14:30 , 04-Июн-14 (2)
      спасибо огромное за помощь

      > при проблемах с mtu, если проблем нет то не нужно его вставлять,
      > ну и логичней было бы -A, а не -I
      >> хочу добавить проброс портов правилом
      >> iptables -t nat -A PREROUTING -d "внешний ip" -p tcp -m tcp
      >> --dport "внешний порт" -j DNAT --to-destination "локальный компьютер":"внутренний порт"
      >> заработает ли оно и куда ставить все эти пробросы портов?
      > да если в таблице фильтров разрешено прохождение для этих пакетов и для
      > ответов

      появился один вопрос:
      правило такого вида будет разрешать пакетам из правила выше проходить, или я что-то написал не так?
      iptables -I FORWARD 1 -m multiport --dport "тут перечисляю через запятую все проброшенные порты" -j ACCEPT

      • Прошу помочь написать правила для iptables, !*! reader, 15:01 , 04-Июн-14 (3) +2
        >[оверквотинг удален]
        >>> iptables -t nat -A PREROUTING -d "внешний ip" -p tcp -m tcp
        >>> --dport "внешний порт" -j DNAT --to-destination "локальный компьютер":"внутренний порт"
        >>> заработает ли оно и куда ставить все эти пробросы портов?
        >> да если в таблице фильтров разрешено прохождение для этих пакетов и для
        >> ответов
        > появился один вопрос:
        > правило такого вида будет разрешать пакетам из правила выше проходить, или я
        > что-то написал не так?
        > iptables -I FORWARD 1 -m multiport --dport "тут перечисляю через запятую все
        > проброшенные порты" -j ACCEPT

        --dport 1024:65535, но -m multiport --dports 80,443
        синтаксис проверяйте по man iptables, по сравнению с Tutorial 1.1.19 он немного изменился, но общее представление осталось тем же
        И ответные пакеты разрешите.

        • Прошу помочь написать правила для iptables, !*! longcat, 12:06 , 05-Июн-14 (4)
          еще раз спасибо
          если не сложно, гляньте конфиг который получился в итоге, может что-то не правильно

          iptables -P FORWARD ACCEPT
          iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source "внешний ip"
          iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
          iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4000 -j DNAT --to-destination 192.168.0.77:3389
          iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

          будет ли это пропускать локальных пользователей на сайты через прокси на 3128 (с условием что прокси настроена правильно), будет ли работать проброс портов 4000->3389 , и будут ли ответные пакеты пропускаться, или для них еще что-то нужно добавить?

          или правило для ответных пакетов вида
          iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
          будет пропускать ответные пакеты?

          • Прошу помочь написать правила для iptables, !*! reader, 21:42 , 05-Июн-14 (5) +1
            >[оверквотинг удален]
            > если не сложно, гляньте конфиг который получился в итоге, может что-то не
            > правильно
            > iptables -P FORWARD ACCEPT
            > iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source "внешний ip"
            > iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports
            > 3128
            > iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4000 -j
            > DNAT --to-destination 192.168.0.77:3389
            > iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
            > будет ли это пропускать локальных пользователей на сайты через прокси на 3128

            вы запрос клиента завернули на прокси, далее прокси отправит свой запрос, он пойдет через OUTPUT, ответ от сайта к прокси пойдет через INPUT если в них разрешено то что нужно для прохождения пакетов то ваши клиенты увидят странички, но это только для 80 порта, остальное от/к ним пойдет через FORWARD , SNAT

            > (с условием что прокси настроена правильно), будет ли работать проброс портов
            > 4000->3389 , и будут ли ответные пакеты пропускаться, или для них
            > еще что-то нужно добавить?

            в PREROUTING с помощью DNAT вы меняете адрес и порт назначения, пакет пойдет через FORWARD
            а там у вас похоже все во все стороны разрешено и ответ пойдет через FORWARD

            > или правило для ответных пакетов вида
            > iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j
            > ACCEPT

            это для ответов на запросы ушедшие через OUTPUT, от машины где настраиваете iptables

            INPUT/OUTPUT - к/от машины где настраиваете iptables
            FORWARD - то что идет транзитом через машину где настраиваете iptables

            > будет пропускать ответные пакеты?

            • Прошу помочь написать правила для iptables, !*! longcat, 05:21 , 06-Июн-14 (6)
              спасибо огромное, вы мне очень помогли
            • Прошу помочь написать правила для iptables, !*! longcat, 07:43 , 10-Июн-14 (7)
              пожалуйста, подскажите еще одно

              хочу заблокировать доступ к vk.com и youtube.com по ip для всех кроме 5 человек со статикой,
              хотел через сквид, а он вроде https не умеет фильтровать

              собственно правила

              iptables -A -s 192.168.0.53 -d vk.com --dport 443 -j ACCEPT
              iptables -A -s 192.168.0.54 -d vk.com --dport 443 -j ACCEPT
              iptables -A -s 192.168.0.55 -d vk.com --dport 443 -j ACCEPT
              iptables -A -s 192.168.0.56 -d vk.com --dport 443 -j ACCEPT
              iptables -A -s 192.168.0.12 -d vk.com --dport 443 -j ACCEPT
              iptables -A -d vk.com --dport 443 -j DROP
              это будет давать доступ к вк по 443 порту группе ip, а остальным закрывать? или последнее правило будет закрывать доступ потому что стоит последним, или пакет удовлетворяющий правилу выше не будет отброшен последним правилом и следовательно пройдет?


            • Прошу помочь написать правила для iptables, !*! longcat, 14:22 , 10-Июн-14 (9)
              iptables -A FORWARD -s 192.168.0.1-192.168.0.11 -d vk.com -j REJECT

              собственно такое правило не принимается, потому как диапазон ip указан не правильно, но мне не нужен диапазон вообще весь

              могу ли я написать диапазон таким образом, чтобы ограничить ip 0.1-0.11 0.13-0.52 0.57-0.210 0.212-0.254?

              и если могу, то приведите пример, пожалуйста, если вас не затруднит

              • Прошу помочь написать правила для iptables, !*! reader, 15:33 , 10-Июн-14 (10)
                > iptables -A FORWARD -s 192.168.0.1-192.168.0.11 -d vk.com -j REJECT
                > собственно такое правило не принимается, потому как диапазон ip указан не правильно,
                > но мне не нужен диапазон вообще весь
                > могу ли я написать диапазон таким образом, чтобы ограничить ip 0.1-0.11 0.13-0.52
                > 0.57-0.210 0.212-0.254?

                каждый диапазон по отдельности через -m iprange (описание в man), только толку от этого -d vk.com не заблокирует все ip которые есть у них, вы бы прочитали весь топик по ссылке приведенную Андреем

                > и если могу, то приведите пример, пожалуйста, если вас не затруднит




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

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