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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн chikatillo

  • Участник
  • *
  • Сообщений: 139
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #750 : 26 Мая 2010, 18:06:11 »
В смысле что это значит?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #751 : 26 Мая 2010, 18:30:11 »
Ничего особенного, разработчики iptables дурью маются.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн vektor-mw

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #752 : 27 Мая 2010, 00:38:34 »
Возникла такая проблема. Компьютер с ОС Ubuntu 10.4
Есть несколько сетевых интерфейсов:
eth0 - сеть провайдера
ppp0 - vpn соединение (белый ip)
wlan0 - соединение по wi-fi c ноутбуком
ifconfig:
Цитировать
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:172.16.xxx.xxx  Bcast:172.16.xxx.xxx  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:76344 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16667 errors:0 dropped:0 overruns:0 carrier:3
          collisions:0 txqueuelen:1000
          RX bytes:14930808 (14.9 MB)  TX bytes:2486551 (2.4 MB)
          Interrupt:29

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:177 errors:0 dropped:0 overruns:0 frame:0
          TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:18333 (18.3 KB)  TX bytes:18333 (18.3 KB)

ppp0      Link encap:Протокол PPP (Point-to-Point Protocol)  
          inet addr:xxx.xxx.xxx.xxx  P-t-P:192.168.130.10  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1460  Metric:1
          RX packets:6497 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6972 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:4907216 (4.9 MB)  TX bytes:1119108 (1.1 MB)

wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.10.3  Bcast:192.168.10.7  Mask:255.255.255.248
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1194 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1186 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:145114 (145.1 KB)  TX bytes:382694 (382.6 KB)
настраиваю маршрутизацию с помощью iptables, вот save:
Цитировать
# Generated by iptables-save v1.4.4 on Wed May 26 22:39:08 2010
*nat
:PREROUTING ACCEPT [8451:856374]
:POSTROUTING ACCEPT [402:27717]
:OUTPUT ACCEPT [391:27172]
-A POSTROUTING -s 192.168.10.4/32 -o ppp0 -j SNAT --to-source xxx.xxx.xxx.xxx
-A POSTROUTING -s 192.168.10.4/32 -o eth0 -j SNAT --to-source xxx.xxx.xxx.xxx
COMMIT
# Completed on Wed May 26 22:39:08 2010
# Generated by iptables-save v1.4.4 on Wed May 26 22:39:08 2010
*filter
:INPUT DROP [4392:462913]
:FORWARD ACCEPT [1879:459865]
:OUTPUT ACCEPT [2893:362278]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.10.4/32 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
COMMIT
# Completed on Wed May 26 22:39:08 2010
Смысл в следующем, на ноуте не открываются сайты (все кроме yandex как ни странно), хотя пинги проходят, почта работает (smtp, pop)
Сайты в сети провайдера открываются...
Когда гружусь в винде (настроена маршрутизация с помощью kerio) все отлично,  то есть дело не в ноутбуке.
Подскажите в чем может быть проблема?
« Последнее редактирование: 27 Мая 2010, 00:45:07 от vektor-mw »

mithrusc

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #753 : 28 Мая 2010, 13:34:00 »
как правильно использовать pre-up(в /etc/network/interfaces) вместе с sleep ?
pre-up sleep .3
pre-up iptables-restore /path/path/config
?
Смысл в том что иногда vpn подключение не успевает подняться а iptables уже подгружает конфиг и нужного интерфейса нет (ppp0)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #754 : 28 Мая 2010, 15:43:48 »
Положить скрипт (с именем без точки) в /etc/network/if-pre-up.d/
Правила iptables класть в up !!
Создать можно скриптом
#! /bin/bash
cp --backup=numbered -aT -- /etc/network/if-up.d/iptables-rules /var/backups/iptables-rules
echo -e "#! /sbin/iptables-restore\n`iptables-save`" > /etc/network/if-up.d/iptables-rules
chmod +x /etc/network/if-up.d/iptables-rules
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн the_madghost

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #755 : 29 Мая 2010, 16:04:07 »
Смысл в следующем, на ноуте не открываются сайты (все кроме yandex как ни странно), хотя пинги проходят, почта работает (smtp, pop)
Сайты в сети провайдера открываются...
Когда гружусь в винде (настроена маршрутизация с помощью kerio) все отлично,  то есть дело не в ноутбуке.
Подскажите в чем может быть проблема?
такая же проблема

Оффлайн vektor-mw

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #756 : 29 Мая 2010, 17:12:27 »

mithrusc

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #757 : 29 Мая 2010, 20:13:35 »
AnrDaemon
Обьясните пожалуйста что дают все эти ключи что вы привели
cp --backup=numbered -aT -- /etc/network/if-up.d/iptables-rules /var/backups/iptables-rulesпонятно что делает копию файла
echo -e "#! /sbin/iptables-restore\n`iptables-save`" > /etc/network/if-up.d/iptables-rulesа зачем еще раз сохранять? тут что то еще есть
"chmod +x /etc/network/if-up.d/iptables-rules"
с этим понятно
network/if-up.d/
вот я смотрю у меня там bind9 висит, из этой папки скрипты выполняются только в случае поднятия одного из "интерфейсов"? Я уже хотел углубляться и писать скрипт который бы проверял получены ли ip адреса и выполнял действия.
udp:
тупо упихал все команды в скрипт в if-up.d взял только "закоментированную" шапку от bind9, отрабатывает.
« Последнее редактирование: 29 Мая 2010, 21:19:35 от mithrusc »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #758 : 29 Мая 2010, 23:20:12 »
Госсподи, дай мне ясности мышления... в общем, так.
Скрипт, который я привёл, не надо класть в network, это плохо кончится.
Этот скрипт лежит у меня в ~/bin и запускается только когда я что-то меняю в iptables.
Этот (приведённый мною) скрипт создаёт ДРУГОЙ скрипт, в каталоге /etc/network/if-up.d/ с именем iptables-rules.
Со всеми приличествующими моменту реверансами, типа создания бэкапа и делания скрипта исполнимым.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн winhex

  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #759 : 01 Июня 2010, 21:26:01 »
Не могу решить проблему.... есть шлюз, одна физическая сетевая. На модем смотрит  eth0, на внутреннюю сеть - eth0:0
ifconfig
(Нажмите, чтобы показать/скрыть)

После добавления правила:
iptables -A FORWARD -s 192.168.2.0/24 -i ppp0 -m state --state NEW,ESTABLISHED -j ACCEPTв локалке появляется инет.
еще добавляю:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j REDIRECT --to-ports 3128
и получается работа через прозрачный сквид.
Но вот закрыть входящие никак не получается. Пробовал добавить например такие правила:
(Нажмите, чтобы показать/скрыть)

пропадает инет как на самом шлюзе, так и в локалке. Подскажите как это решить?
 Еще вопрос - я так понял iptables не может работать с алиасами? как указать ему интерфейс eth0:0?
« Последнее редактирование: 01 Июня 2010, 21:28:18 от winhex »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #760 : 01 Июня 2010, 21:55:34 »
А ppp0 откуда взялось? Настрой модем роутером и не мучайся.
И показывай iptables-save - я не онлайн-интерпретатор шелл-скриптов.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн winhex

  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #761 : 01 Июня 2010, 22:11:30 »
Цитировать
А ppp0 откуда взялось? Настрой модем роутером и не мучайся.
ppp0 появился после поднятия pppoe, модем настроен бриджом.
Модем роутером уже был, не пойдет так. Нужно шейпить трафик. Кроме того, у провайдера гостевые ресурсы доступны только после поднятия еще одного pppoe-соединения, а уже поднимать одно или два, большой разницы нет.
iptables-save:
(Нажмите, чтобы показать/скрыть)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #762 : 01 Июня 2010, 22:24:10 »
Цитировать
А ppp0 откуда взялось? Настрой модем роутером и не мучайся.
ppp0 появился после поднятия pppoe, модем настроен бриджом.
Модем роутером уже был, не пойдет так. Нужно шейпить трафик.

Шейпи, кто не даёт? Вторую сетевую в комп, изолировать модем от локальной сети в принципе и шейпи на здоровье.

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

Именно. Модемы (все, которые я видел) умеют поднимать до 8 (восьми) соединений одновременно.

Цитировать
# Generated by iptables-save v1.4.4 on Tue Jun  1 21:09:45 2010
*nat
:PREROUTING ACCEPT [13795:1403905]
:POSTROUTING ACCEPT [10702:833303]
:OUTPUT ACCEPT [10737:844783]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-- забыл "-d ! наш_IP"
-A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
-- забыл "-o ppp0"
COMMIT
# Completed on Tue Jun  1 21:09:45 2010
# Generated by iptables-save v1.4.4 on Tue Jun  1 21:09:45 2010
*mangle
:PREROUTING ACCEPT [167826:45778298]
:INPUT ACCEPT [167816:45777458]
:FORWARD ACCEPT [10:840]
:OUTPUT ACCEPT [195925:130584475]
:POSTROUTING ACCEPT [195935:130585315]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Tue Jun  1 21:09:45 2010
# Generated by iptables-save v1.4.4 on Tue Jun  1 21:09:45 2010
*filter
:INPUT ACCEPT [167827:45778458]
:FORWARD ACCEPT [10:840]
:OUTPUT ACCEPT [195936:130585511]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-- У тебя уже есть (правильная) строка в mangle, тут это лишнее и работать не будет.
-A FORWARD -s 192.168.2.0/24 -i ppp0 -m state --state NEW,ESTABLISHED -j ACCEPT
-- Это что за бред? Как -s 192.168.2.0/24 может быть при -i ppp0 ?
COMMIT
# Completed on Tue Jun  1 21:09:45 2010
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн winhex

  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #763 : 02 Июня 2010, 23:56:00 »
Вторую сетевую некуда воткнуть, да и кабель второй тянуть не очень хочется. Модем от права - huawei smartax mt880 с дефолтной прошивкой мог поднять одно соединение. После препрошивки может поднять одно сам + одно с компа.
Странно, что в этом iptables-save ошибки, т.к. все работает.... Но попробую их исправить, спасибо.
Но вопрос в другом. Пытаюсь добавить правила для запрета всех входящий кроме уже поднятых соединений. Для примера использую мануал из первого поста. Но для iptables нельзя указать алиасы. Как быть в этом случае? Все что пробовал приводит к полному исчезновению инета. Как запретить ненужный входящий трафик?

Оффлайн elenhil

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #764 : 03 Июня 2010, 00:24:11 »
Здраствуйте, возникла такая проблема.

есть дома локалка, подключена к интернету через шлюз
на шлюзе стоит Ubuntu server 10.04
на компах в локалке - Windows и Ubuntu 10,04

интернет переброшен через форвардинг:
root@ubuntu:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  192.168.0.0/24       anywhere           
ACCEPT     all  --  anywhere             192.168.0.0/24     

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 


в /proc/sys/net/ipv4/ip_forward стоит 1

так вот, в чем собсно проблема.
Провайдер кроме доступа к интрнету дает доступ к локалке по ип 10.х.х.х
Так вот, в нитернет все нормально выходит, а ресурсы локалки недоступны.

погуглил, накопал что надо сделать маскарад.
сделал правило
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADEне реагирует =(
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
аналогично

в шлюзе стоит 2 сетевухи, нтернет по впн.
интерфейсы:
(Нажмите, чтобы показать/скрыть)

так вот, как мне сделать так чтобы локальные ресурсы работали? не пойму =(



 

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