Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 530316 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tugarin

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #270 : 12 Февраля 2009, 18:05:39 »
Итак, nmap я установил, даже без проблем почему-то
на команду nmap 62.113.x.x -p 6880-6999 он ответил мне
Starting Nmap 4.76 ( http://nmap.org ) at 2009-02-12 14:34 UTC
All 120 scanned ports on pppoe-x-x.tver.ru (62.113.x.x) are closed
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds

тоже самое сдалал с компом, на котором должен работать торрент
Starting Nmap 4.76 ( http://nmap.org ) at 2009-02-12 14:35 UTC
All 120 scanned ports on 192.168.0.199 are filtered
MAC Address: 00:0C:6E:EF:44:A9 (Asustek Computer)
Nmap done: 1 IP address (1 host up) scanned in 3.80 seconds

Что-то не особо порты открылись.

Оффлайн -sanches-

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #271 : 12 Февраля 2009, 21:59:56 »
Итак, nmap я установил, даже без проблем почему-то
на команду nmap 62.113.x.x -p 6880-6999 он ответил мне
Starting Nmap 4.76 ( http://nmap.org ) at 2009-02-12 14:34 UTC
All 120 scanned ports on pppoe-x-x.tver.ru (62.113.x.x) are closed
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds

тоже самое сдалал с компом, на котором должен работать торрент
Starting Nmap 4.76 ( http://nmap.org ) at 2009-02-12 14:35 UTC
All 120 scanned ports on 192.168.0.199 are filtered
MAC Address: 00:0C:6E:EF:44:A9 (Asustek Computer)
Nmap done: 1 IP address (1 host up) scanned in 3.80 seconds

Что-то не особо порты открылись.

Я ошибся. Надо на один из этих портов повесить какой-нибудь сервис, например в transmission запустить web-interface с портом 6880.  Затем просканировать сканером тот ип:порт, на котором запущен transmision. Проделать это на обоих компах. Тогда стане более понятно, в какую сторону копать. 
C2D 6550, P5K-V, 7900GT

Оффлайн Lieutenant

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #272 : 13 Февраля 2009, 06:41:36 »
Помогите пожалуйста.
заблокировал порт 27015 командой:
iptables -A OUTPUT -p udp --sport 27015 -j REJECT

теперь не знаю как разблокировать :'(

Оффлайн -sanches-

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #273 : 13 Февраля 2009, 10:17:00 »
Помогите пожалуйста.
заблокировал порт 27015 командой:
iptables -A OUTPUT -p udp --sport 27015 -j REJECT

теперь не знаю как разблокировать :'(

iptables -D OUTPUT -p udp --sport 27015 -j REJECT
C2D 6550, P5K-V, 7900GT

Quickly

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #274 : 13 Февраля 2009, 23:37:53 »
Извените, но у меня проблема установил Ubuntu и не работает инет, инет через внутренюю сетку, сеть настроил вроде работает нормально, но инет не могу настроить, в Windows стоит программа "Трафик Инспектор" особых проблем не было указал сервер, имя и пароль все, нажал подключился, а вот здесь не могу разобраться, помогите

Оффлайн mikhail

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #275 : 15 Февраля 2009, 19:15:35 »
Извените, но у меня проблема установил Ubuntu и не работает инет, инет через внутренюю сетку, сеть настроил вроде работает нормально, но инет не могу настроить, в Windows стоит программа "Трафик Инспектор" особых проблем не было указал сервер, имя и пароль все, нажал подключился, а вот здесь не могу разобраться, помогите
А интернет где не работает? На Linux компьютере или в локальной сети? Если не работает на Linux компьютере, то нужно быстренько настроить его, но необходимо знать как провайдер предлагает осуществлять подключение (PPPoE или VPN). Расскажите нам, пожалуйста. :coolsmiley:
Если интернет не работает в локальной сети то нужно:
- если вы получаете динамический адрес не забыть включить переменную ip_dynaddr вдобавок к ip_forward и написать одну строчку для маскарадинга вроде этой:
$IPTABLES -t nat -A POSTROUTING -s 192.168.24.0/24 -o ppp0 -j MASQUERADE
- если у вас провайде выдает постоянный адрес то ip_dynaddr не надо включать и вместо маскарадинга можно добавить что-то вроде:
$IPTABLES -t nat -A POSTROUTING -s 192.168.24.0/24  -j SNAT --to-source 85.236.85.99
Но это все уже писали выше... Поподробнее, что у вас? :)

Оффлайн mikhail

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #276 : 15 Февраля 2009, 20:03:24 »
Доброго времени суток, всем читающим :)
У меня есть следующий праткический вопросик: как заставить один компьютер из квартирной локальной сети идти в интернет через ppp0 с помощью маскарадинга (один провайдер) а второй компьютер из квартирной локальной сети идти в интернет через ppp1 тоже с маскарадингом (другой провайдер)
Я пробовал добавлять в таблицу маршрутизации две маршрута к 0.0.0.0/0:
(Нажмите, чтобы показать/скрыть)
И одновременно с этим заменял правило маскарадинга для всей моей локальной сети 192.168.24.0/24 через ppp0 на два отдельных правила для каждой машиный через разные ppp0 и ppp1 интерфесы соответственно. НЕ РАБОТАЛО. Наверное у брандмауера получилось два шлюза по умолчанию и он запутался? :idiot2:

Работает пока что все через один интерфейс вот так:
Интернет доступен через интерфейс ppp0 и динамически меняющийся ip адрес на eth2. За eth0 находится локальная домашняя сеть получающая интернет путем маскарадинга:
INET_IFACE="ppp0"
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
$IPTABLES -t nat -A POSTROUTING -s 192.168.24.0/24 -o $INET_IFACE -j MASQUERADE

За eth1 находится локальная сеть второго провайдера, маршрутизация к кторой представлена под спойлером и локальные ресурсы которой доступны из моей квартирной сети.
А ppp0 является шлюзом по умочанию в интернет. Получается интернет - от одного провайдера, сеть - от второго.

И вообще, реально-ли заставить отдельно взятые машины или порты из квартирной сети воспользоваться инетом того провайдера, который сидит за eth1 и ppp1 а другие - ppp0, соответственно? :coolsmiley:
Ниже приведен вывод ifconfig:
(Нажмите, чтобы показать/скрыть)

Такие вот идеи начинают появляться в голове после двухкратного прокуривания переведенного Руководства по Iptables (Iptables Tutorial 1.1.19)
Буду очень признателен господам профессионалам за дельный совет... :)
« Последнее редактирование: 16 Февраля 2009, 03:47:12 от mikhail »

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #277 : 16 Февраля 2009, 09:16:21 »
Доброго времени суток, всем читающим :)
У меня есть следующий праткический вопросик: как заставить один компьютер из квартирной локальной сети идти в интернет через ppp0 с помощью маскарадинга (один провайдер) а второй компьютер из квартирной локальной сети идти в интернет через ppp1 тоже с маскарадингом (другой провайдер)
Для этого нужно использовать iproute2.

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

Нам потребуется две дополнительные таблицы маршрутизации, объявим их в /etc/iproute2/rt_tables:
...
101  comp1
102  comp2
Числа 101 и 102 взяты произвольно из диапазона 1-255.

Теперь в каждую таблицу нужно положить свой шлюз по-умолчанию:
# ip route add default dev ppp0 table comp1
# ip route add default dev ppp1 table comp2
Замечу, что в таблицы можно добавить и другие маршруты по необходимости. Например, для доступа к каким-то локальным ресурсам того или другого провайдера.

Создадим правила для использования новых таблиц:
# ip rule add from 192.168.24.1 lookup table comp1
# ip rule add from 192.168.24.2 lookup table comp2
192.168.24.1 будет использовать таблицу comp1 и ходить через ppp0, а 192.168.24.2 будет использовать таблицу comp2 и ходить через ppp1.

Маскарадинг при этом можно здать примерно так:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE

Но можно и как у вас, с дополнительным указанием подсети, которой разрешен маскарадинг. Главное, чтобы было правило для обоих интерфейсов.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн mikhail

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #278 : 16 Февраля 2009, 12:23:59 »
Ух-ты, Lion-Simba, спасибо большое!
В поисках инструкций по iproute2 нарыл себе перевод Linux Advanced Routing & Traffic Control HOWTO на OpenNET.
Непознанного но полезного материала на месяц вперед как минимум!

Да. Работает!!! И как оказалось пришлось добавить в новую таблицу еще и роутинг к локальной сетям провайдера и к нескольким домашним компьютерам, адреса которых, возможно, перекрываются с имеющимися в сети провайдера. ??? Наконец-то самый дешевый тариф, который оплачивается только для поддержания обслуживания локальной сети тоже задействован. :D
Однако, заметил, что вот тут iproute2 не захотел принять команду:
# ip rule add from 192.168.24.1 lookup table comp1
# ip rule add from 192.168.24.2 lookup table comp2
Ругнулся, мол, неправильный аргумент "table"!
И принял вот таким образом:
# ip rule add from 192.168.24.1 table comp1
# ip rule add from 192.168.24.2 table comp2
Не подскажите что такое lookup в iproute2? В документации пока не наткнулся на это выражение. ???
Вот в разделе 4.2.1 Linux Advanced Routing & Traffic Control HOWTO есть пример правила, отвечающего за то, какая таблица будет использоваться при маршрутизации.
# ip rule add from $IP1 table T1
# ip rule add from $IP2 table T2

Можете привести какой-нибудь пример правила для iproute2 где будет использоваться команда lookup?
Так, из простого любопытства спрашиваю. :)
« Последнее редактирование: 18 Февраля 2009, 12:05:28 от mikhail »

Оффлайн slugg

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #279 : 18 Февраля 2009, 10:56:51 »
Приветствую, объясните мне что я делаю не так )

#!/bin/sh

UNPRIPORTS="1024:65535"
INET_IFACE="ppp0"

    # Сбросить правила и удалить цепочки.
    iptables -F
    iptables -X
   
    # Политики по умолчанию.
    iptables -P INPUT DROP
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT DROP

    # Разрешаем прохождение любого трафика по интерфейсу обратной петли.
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    # SSH клиент (22)
    iptables -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT
    iptables -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT
    iptables -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport 1020:1023 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT

    # открываем порты 2106, 7777, 7778 с лимитом 200 пакетов в сек.
    iptables -A INPUT -p tcp -m limit --limit 200/sec -m tcp --dport 2106 -j ACCEPT
    iptables -A INPUT -p udp -m limit --limit 200/sec -m udp --dport 2106 -j ACCEPT
    iptables -A INPUT -p tcp -m limit --limit 200/sec -m tcp --dport 7777 -j ACCEPT
    iptables -A INPUT -p udp -m limit --limit 200/sec -m udp --dport 7777 -j ACCEPT
    iptables -A INPUT -p tcp -m limit --limit 200/sec -m tcp --dport 7778 -j ACCEPT
    iptables -A INPUT -p udp -m limit --limit 200/sec -m udp --dport 7778 -j ACCEPT
    iptables -A OUTPUT -p tcp -m limit --limit 200/sec -m tcp --dport 2106 -j ACCEPT
    iptables -A OUTPUT -p udp -m limit --limit 200/sec -m udp --dport 2106 -j ACCEPT
    iptables -A OUTPUT -p tcp -m limit --limit 200/sec -m tcp --dport 7777 -j ACCEPT
    iptables -A OUTPUT -p udp -m limit --limit 200/sec -m udp --dport 7777 -j ACCEPT
    iptables -A OUTPUT -p tcp -m limit --limit 200/sec -m tcp --dport 7778 -j ACCEPT
    iptables -A OUTPUT -p udp -m limit --limit 200/sec -m udp --dport 7778 -j ACCEPT


после исполнения данного скрипта должны закрыться все порты, открытыми должны остаться только 22, 2106, 7777, 7778 на всех сетевых соединениях.
с localhost все порты будут доступны или тоже только эти?
« Последнее редактирование: 18 Февраля 2009, 10:58:38 от slugg »

Оффлайн Eretic1988

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #280 : 18 Февраля 2009, 12:08:49 »
Доброго времени суток.
Покурил мануалы, решил всёже проконсультироваться.Да и вопросы есть.
Если я хочу не пропускать пакеты с адреса 127.0.0.1 то пишется так?:
iptables -A INPUT -i eth0 -s 127.0.0.1 -p tcp --dport http -j DROP

А теперь вопросы:
1) sport и dport их отличие?Так понял запрещать разрешать порты.Какая разница в явном задании и буквенном?Если я вообще не укажу порты что будет по умолчанию?Или вообще ошибка будет?
2) iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
эти команды полностью сбрасывают прошлые настройки?
3) Все настройки сохраняется автоматом?

Оффлайн mikhail

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #281 : 18 Февраля 2009, 13:45:39 »
А теперь ответы на вопросы: :) (сгласно руководству по iptables 1.1.19)
. Критерий --sport:
--sport, --source-port
Пример:
iptables -A INPUT -p tcp --sport 22
(Нажмите, чтобы показать/скрыть)

Если же вы не укажите порт, то ошибки не будет. Правило отработает по остальным критериям, которые в нем указаны, для всех допустимых портов. А явное и буквенное задание - для вашего удобства, в основном. Также, в случае числового задания номеров портов правила дожны обрабатываться быстрее... Немножко :)

. Критерий --dport:
--dport, --destination-port
Пример:
iptables -A INPUT -p tcp --dport 22
Описание:
     Порт или диапазон портов, на который адресован пакет. Аргументы задаются в том же формате, что и для --source-port.

2. Задание политик по-умолчанию.
Команда:
-P, --policy
Пример:
iptables -P INPUT DROP
Описание:
     Задает политику по-умолчанию для заданной цепочки. Политика по-умолчанию определяет действие, применяемое к пакетам не попавшим под действие ни одного из правил в цепочке. В качестве политики по умолчанию допускается использовать DROP и ACCEPT.

3.
Правила сохраняются автоматом. До первой перезагрузки. Способы сохранения и восстановления наборов правил описаны выше и в руководстве.

Оффлайн Eretic1988

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #282 : 18 Февраля 2009, 18:26:01 »
Спасибо mikhail! Уважил! Пробуем тестим.

Оффлайн MOPO3

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #283 : 18 Февраля 2009, 19:28:12 »
Доброго времени суток!
Прошу помощи. Клиенты локалки выходят в интернет через сервер. На сервере установлен сквид, весь трафик по 80 порту редиректится на сквидовский 3128. Сквид необходим, но часть программ использующих 80 порт через сквид работает некорректно.  Клиентская программа использует для работы 80 порт на конкретном (допустим 80.90.100.110) хосте.
Возможно ли с помощью iptables пускать в интернет с клиентских компов программы работающие по 80 порту на определенные IP минуя сквид? Как вариант рассматривал переназначение 80 порта при обращении определенному внешнему IP на клиентской машине на какой-то иной порт и последующее преобразование этого порта на сервере обратно на 80.
Возможно ли так сделать, имеет это смысл или существуют более простые способы?




все решилось добавлением строчки

-- iptables -t nat -A PREROUTING  -d ! 80.90.100.110 -p tcp --dport 80 -j REDIRECT --to-port 3128
« Последнее редактирование: 21 Февраля 2009, 13:24:58 от MOPO3 »

Оффлайн roma333

  • Участник
  • *
  • Сообщений: 206
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #284 : 19 Февраля 2009, 16:06:31 »
Вопрос такой, если в терминале создешь правило с помощью iptables, то при перезапуске компьютера или при изменении его конфигурации (например поделючение ppp) сохраняются ли эти правила?

 

Страница сгенерирована за 0.041 секунд. Запросов: 25.