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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: iptables как правильней ?  (Прочитано 2574 раз)

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

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
iptables как правильней ?
« : 07 Мая 2010, 11:56:41 »
есть: адсл-роутер -> комп с iptables -> локальная сеть

Задача: раздавать интернет определенным ip (mac?) адресам в локальной сети

сделал так:
Цитировать
iptables -I FORWARD 1 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.3 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.4 -j ACCEPT

iptables -I FORWARD 1 -d 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.3 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.4 -j ACCEPT

iptables -t nat -A POSTRIUTING -s 192.168.0.1 -o eth0 -j MASQUERADE
iptables -t nat -A POSTRIUTING -s 192.168.0.2 -o eth0 -j MASQUERADE
iptables -t nat -A POSTRIUTING -s 192.168.0.3 -o eth0 -j MASQUERADE

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

зы: сижу читаю, пока ничего не понятно  :-[
у меня можно спросить=)

Оффлайн terrible_user

  • Активист
  • *
  • Сообщений: 438
    • Просмотр профиля
Re: iptables как правильней ?
« Ответ #1 : 07 Мая 2010, 12:24:45 »
как бы сделать маскарад одной строчкой, для прошедших проверку

Почему бы и нет, абсолютно то же самое
Цитировать
iptables -I FORWARD 1 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.3 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.4 -j ACCEPT

iptables -I FORWARD 1 -d 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.3 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.4 -j ACCEPT

iptables -t nat -A POSTRIUTING -o eth0 -j MASQUERADE
Бери больше, кидай дальше

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: iptables как правильней ?
« Ответ #2 : 07 Мая 2010, 13:51:06 »
ага, с этим вроде понятно, добавляем новое правило в конец цепочки

Пользователь решил продолжить мысль 07 Мая 2010, 12:36:32:
а маскарадинг нужно в самом конце писать?
допустим если писать правила для открытия/закрытия портов
какова последовательность правил должна быть

Пользователь решил продолжить мысль 07 Мая 2010, 14:50:45:
как бы сделать маскарад одной строчкой, для прошедших проверку

Почему бы и нет, абсолютно то же самое
Цитировать
iptables -I FORWARD 1 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.3 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.4 -j ACCEPT

iptables -I FORWARD 1 -d 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.3 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.4 -j ACCEPT

iptables -t nat -A POSTRIUTING -o eth0 -j MASQUERADE

и все же не понятно, почему с ip 192.168.0.5 ping в интернет идет?
странички не открываются.
« Последнее редактирование: 07 Мая 2010, 14:50:45 от kostrukov »
у меня можно спросить=)

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: iptables как правильней ?
« Ответ #3 : 07 Мая 2010, 15:42:29 »
а пинг по имени ресурма или по ip ??
Be root, be different...

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: iptables как правильней ?
« Ответ #4 : 07 Мая 2010, 15:52:12 »
и по имени и по ip проходит

Цитировать
Обмен пакетами с yandex.ru [87.250.251.11] по 32 байт:

Ответ от 87.250.251.11: число байт=32 время=29мс TTL=53
Ответ от 87.250.251.11: число байт=32 время=29мс TTL=53
Ответ от 87.250.251.11: число байт=32 время=30мс TTL=53
Ответ от 87.250.251.11: число байт=32 время=28мс TTL=53

Статистика Ping для 87.250.251.11:

    Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),

Приблизительное время приема-передачи в мс:

    Минимальное = 28мсек, Максимальное = 30 мсек, Среднее = 29 мсек



Обмен пакетами с 8.8.8.8 по 32 байт:

Ответ от 8.8.8.8: число байт=32 время=65мс TTL=243
Ответ от 8.8.8.8: число байт=32 время=68мс TTL=244
Ответ от 8.8.8.8: число байт=32 время=66мс TTL=243
Ответ от 8.8.8.8: число байт=32 время=65мс TTL=243

Статистика Ping для 8.8.8.8:

    Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),

Приблизительное время приема-передачи в мс:

    Минимальное = 65мсек, Максимальное = 68 мсек, Среднее = 66 мсек
у меня можно спросить=)

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: iptables как правильней ?
« Ответ #5 : 07 Мая 2010, 16:05:01 »
странно как-то ! а в браузере не стоит прокся часом ?!!!
Be root, be different...

Оффлайн xionod

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: iptables как правильней ?
« Ответ #6 : 08 Мая 2010, 11:37:42 »
сожно ли использовать snat вместо masquerade

masquerade используется при динамическом ip, а при статическом ip лучше использовать snat

Оффлайн terrible_user

  • Активист
  • *
  • Сообщений: 438
    • Просмотр профиля
Re: iptables как правильней ?
« Ответ #7 : 09 Мая 2010, 00:25:53 »
сожно ли использовать snat вместо masquerade

masquerade используется при динамическом ip, а при статическом ip лучше использовать snat


А чем именно лучше ?
Бери больше, кидай дальше

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: iptables как правильней ?
« Ответ #8 : 09 Мая 2010, 00:37:04 »
MASQUERADE постоянно убивает маршруты для поддержания соединения при меняющемся адресе, тем самым создавая бОльшую нагрузку на процессор.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: iptables как правильней ?
« Ответ #9 : 09 Мая 2010, 10:10:45 »
странно как-то ! а в браузере не стоит прокся часом ?!!!
нету
у меня можно спросить=)

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: iptables как правильней ?
« Ответ #10 : 12 Мая 2010, 10:58:56 »
Цитировать
#!/bin/sh
PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/
iptables -I FORWARD 1 -s 192.168.0.1 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.1 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.2 -j ACCEPT
iptables -I FORWARD 1 -s 192.168.0.3 -j ACCEPT  
iptables -I FORWARD 1 -d 192.168.0.3 -j ACCEPT  
iptables -I FORWARD 1 -s 192.168.0.4 -j ACCEPT
iptables -I FORWARD 1 -d 192.168.0.4 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
iptables -A FORWARD -o eth0 -p tcp -j DROP

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Все ли верно? чтото мне подсказывает что я напутал с закрытием портов

Цитировать
ICMP (Internet Control Message Protocol), к которому относится PING, не пользуется услугами транспортных протоколов TCP или UDP, а работает поверх IP (субпротокол номер 1).
???

Пользователь решил продолжить мысль 12 Мая 2010, 09:03:05:
а еще, как можно сбрасывать(обнулять) "статистику" выдаваемую по iptables -L -vnx
« Последнее редактирование: 12 Мая 2010, 11:11:26 от kostrukov »
у меня можно спросить=)

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: iptables как правильней ?
« Ответ #11 : 12 Мая 2010, 12:10:00 »
Все ли верно? чтото мне подсказывает что я напутал с закрытием портов
Кривовато как то. Я бы сделал что-то типа того:


iptables -P FORWARD DROP
iptables -P INPUT DROP

iptables -F
iptables -X

iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED
iptables -A FORWARD -m conntrack --ctstate NEW -m iprange --src-range 192.168.0.1-192.168.0.4 ! -i eth0 -j ACCEPT

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p ICMP -j ACCEPT
iptables -A INPUT -m conntrack --ctstate NEW -i eth0 -p tcp -m multiport --dports 25,110,143,80,443,22 -j ACCEPT

iptables -F -t nat
iptables -X -t nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

за корректность не ручаюсь, пишу из головы, без проверки...

а еще, как можно сбрасывать(обнулять) "статистику" выдаваемую по iptables -L -vnx
iptables -Z

MASQUERADE постоянно убивает маршруты для поддержания соединения при меняющемся адресе, тем самым создавая бОльшую нагрузку на процессор.
Маршруты то никоим боком к iptables и ipt_MASQUERADE не причастны, и маскард нагрузку на процессор больше не даёт. Разница лишь в том, что при падении интерфейса таблица соответствий соединений обнуляется, в отличии от того, когда используется SNAT, и по этому всегда рекомендуется юзать SNAT при статическом адресе на NAT-интерфейсе.

Оффлайн xionod

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: iptables как правильней ?
« Ответ #12 : 12 Мая 2010, 12:44:10 »
Цитировать
Маршруты то никоим боком к iptables и ipt_MASQUERADE не причастны, и маскард нагрузку на процессор больше не даёт. Разница лишь в том, что при падении интерфейса таблица соответствий соединений обнуляется, в отличии от того, когда используется SNAT, и по этому всегда рекомендуется юзать SNAT при статическом адресе на NAT-интерфейсе.

...Как вы уже поняли, действие MASQUERADE может быть использовано вместо SNAT, даже если вы имеете постоянный IP адрес, однако, невзирая на положительные черты, маскарадинг не следует считать предпочтительным в этом случае, поскольку он дает большую нагрузку на систему....

http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: iptables как правильней ?
« Ответ #13 : 12 Мая 2010, 13:13:17 »
маскарадинг не следует считать предпочтительным в этом случае, поскольку он дает большую нагрузку на систему....
Ага, везде говорят, да не знают отчего так. Нигде не обосновывается, из за чего нагрузка ощутимо возрастает. Объяснения типа того, что приходится каждый раз брать адрес интерфейса, не принимаются к рассмотрению. Это не может давать существенной нагрузки.

Кто может дать грамотное обоснование этого утверждения?

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: iptables как правильней ?
« Ответ #14 : 12 Мая 2010, 13:34:52 »
Mam(O)n спасибо, а как мне изменить/продублировать эту строчку
Цитировать
iptables -A FORWARD -m conntrack --ctstate NEW -m iprange --src-range 192.168.0.1-192.168.0.4 ! -i eth0 -j ACCEPT
если инет нужен только определенным ip? допустим 192.168.0.2 и 192.168.0.4, и не давать интернет 192.168.0.3

а еще, при моих правилах, открыты все порты, почему непойму. например при таких правилах: ася, дц++ работают.
понимаю что кривые правила, но где ошибка не вижу
у меня можно спросить=)

 

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