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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #210 : 08 Января 2009, 13:39:19 »
редактор какой-то странный по команде sudo vi открывается, не дает мне вписать туда текст скрипта. Помогите

Попробуйте
sudo nano

Оффлайн White Sloun

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #211 : 08 Января 2009, 14:43:02 »
создал файл  /etc/iptables
#!/bin/bash

echo "1" > /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/tcp_syncookies
IPT="/sbin/iptables"
LO_INTERFACE="lo"
WAN_INTERFACE="eth0"
NAT_INTERFACE="eth1"

$IPT -t filter -F
$IPT -t filter -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

$IPT -t filter -A INPUT -i $LO_INTERFACE -j ACCEPT
$IPT -t filter -A OUTPUT -o $LO_INTERFACE -j ACCEPT

$IPT -t nat -A POSTROUTING -o $NAT_INTERFACE -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN_INTERFACE -j MASQUERADE

пытаюсь автоматом загрузить не работает
пишу iptables-restore < /etc/iptables - ругается на ошибку в 3 строчке, причем если что-то другое написать, все равно ругается на 3 строку, помогите уже мне, как мне загружать автоматом правила для тэйблс - ничего не выходит (((((

Дак у тебя ж  /etc/iptables - это скрипт, его нужно запускать, а не скармливать на вход iptables-restore! Если хочешь через такую загрузку - сохраняй вывод iptables-save, а потом этот вывод скармливай iptables-restore.
Samsung Q310, Core 2 Duo 2 GHz, 2 Gb, Ubuntu 10.04, Gnome.

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: HOWTO: Iptables для новичков
« Ответ #212 : 08 Января 2009, 17:26:54 »
Или просто добавь в /etc/rc.local строчку /etc/iptables (предварительно убедись, что /etc/iptables исполняемый и работает нормально). Попробуй сначала просто выполнить в терминале
sudo /etc/iptables
Homo homini admini est...

Оффлайн G-Dogg

  • Любитель
  • *
  • Сообщений: 73
  • Йа нубат
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #213 : 08 Января 2009, 20:51:07 »
Или просто добавь в /etc/rc.local строчку /etc/iptables (предварительно убедись, что /etc/iptables исполняемый и работает нормально). Попробуй сначала просто выполнить в терминале
sudo /etc/iptables
[/quot]
сделал следующее
root@ubuntu:~# chmod +x /etc/iptables
root@ubuntu:~# sudo /etc/iptables

вот что написала мне консоль:
sudo: unable to execute /etc/iptables: No such file or directory

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: HOWTO: Iptables для новичков
« Ответ #214 : 08 Января 2009, 22:59:02 »
создал файл  /etc/iptables
Точно создал?


ЗЫ - Вторую команду
root@ubuntu:~# sudo /etc/iptables надо без sudo, т.к. и так под рутом.

ЗЗЫ - и вообще, клади свой скрипт в /usr/sbin - так и путаницы меньше будет и запускать его можно будет просто набрав в консоли его название (из под рута или sudo).
« Последнее редактирование: 08 Января 2009, 23:01:15 от MadKox »
Homo homini admini est...

Оффлайн G-Dogg

  • Любитель
  • *
  • Сообщений: 73
  • Йа нубат
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #215 : 09 Января 2009, 11:48:25 »
по статье, указанноой выше, где писался скрипт - не вышло, скрипт почему-то не срабатывал.
 зато помогло простое добавление строчки /usr/bin/rc.firewall в файл /etc/rc.local , само собой rc.firewall исполняемый. и все заработало. спасибо всем ,к то помогал.
ЗЫ. осталось научиться самому писать такие rc.firewall'ы по своим требованиям  ;)

Оффлайн HNKNTA

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #216 : 10 Января 2009, 23:54:15 »
можно ли при помощи iptables определенному приложению дать доступ только к нескольким сетевым интерфейсам, а не ко всем?

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: HOWTO: Iptables для новичков
« Ответ #217 : 11 Января 2009, 04:13:52 »
Смотря какому  :)
iptables работает на уровне пакетов-протоколов-портов-... а не на уровне приложений. Но некоторые приложения используют определенные порты. Например apache по умолчанию сидит на 80-м порту. Соответственно если имеем, например eth0, lo, eth1, wlan0 и не хотим давать доступ к www серверу с eth1 - разрешаем входящий трафик с интерфейсов eth0, lo, wlan0 на 80-й порт, а с eth1 - запрещаем.
Homo homini admini est...

Оффлайн HNKNTA

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #218 : 11 Января 2009, 15:09:53 »
MadKox спасибо за подсказку

Оффлайн -sanches-

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #219 : 11 Января 2009, 21:23:00 »
можно ли при помощи iptables определенному приложению дать доступ только к нескольким сетевым интерфейсам, а не ко всем?

Можно фильтровать пакеты в зависимости от ID процесса (PID) и не только
man iptables
Цитировать
owner
       This module attempts to match various characteristics of the packet creator, for locally-generated packets.  It is only valid in the OUTPUT chain, and  even  this  some
       packets (such as ICMP ping responses) may have no owner, and hence never match.

       --uid-owner userid
              Matches if the packet was created by a process with the given effective user id.

       --gid-owner groupid
              Matches if the packet was created by a process with the given effective group id.

       --pid-owner processid
              Matches if the packet was created by a process with the given process id.

       --sid-owner sessionid
              Matches if the packet was created by a process in the given session group.

       --cmd-owner name
              Matches if the packet was created by a process with the given command name.  (this option is present only if iptables was compiled under a kernel supporting this
              feature)

       NOTE: pid, sid and command matching are broken on SMP

C2D 6550, P5K-V, 7900GT

Оффлайн HNKNTA

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #220 : 11 Января 2009, 23:55:55 »
нужно было ограничить торрент клиент, он использует определенный порт. вроде получилось, сделал скрипт, который при поднятии определенного интерфейса блочит нужный порт на этот интерфейс. спасибо за помощь

Оффлайн Stiff

  • Активист
  • *
  • Сообщений: 677
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #221 : 13 Января 2009, 15:45:12 »
можно ли при помощи iptables определенному приложению дать доступ только к нескольким сетевым интерфейсам, а не ко всем?

Можно фильтровать пакеты в зависимости от ID процесса (PID) и не только
man iptables
Цитировать
owner
       This module attempts to match various characteristics of the packet creator, for locally-generated packets.  It is only valid in the OUTPUT chain, and  even  this  some
       packets (such as ICMP ping responses) may have no owner, and hence never match.

       --uid-owner userid
              Matches if the packet was created by a process with the given effective user id.

       --gid-owner groupid
              Matches if the packet was created by a process with the given effective group id.

       --pid-owner processid
              Matches if the packet was created by a process with the given process id.

       --sid-owner sessionid
              Matches if the packet was created by a process in the given session group.

       --cmd-owner name
              Matches if the packet was created by a process with the given command name.  (this option is present only if iptables was compiled under a kernel supporting this
              feature)

       NOTE: pid, sid and command matching are broken on SMP

Уже долго ищу способ, как заставить работать pid-owner, sid-owner и cmd-owner?
Первые два работают, а вот про остальные в документации написано:(Please  note:  This  option requires kernel support that might not be available in official Linux kernel sources or Debian’s packaged Linux
kernel sources.  And if support for this option is available for the specific Linux kernel source version, that support might not be enabled
in the current Linux kernel binary.)

Оффлайн -sanches-

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #222 : 13 Января 2009, 15:53:18 »
Если машина с несколькими ядрами, то не должно работать, судя по сообщению
 NOTE: pid, sid and command matching are broken on SMP
C2D 6550, P5K-V, 7900GT

Оффлайн AlexeyK

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #223 : 13 Января 2009, 22:42:22 »
Прошу подсказать по проблеме.
есть локальная сеть (отдел) и внешняя сеть eth1 (предприятие).Две сети связываются через роутер, с правилами iptables.
NAT поднимается командой:
$IPTABLES -t nat -A POSTROUTING -o eth1 -j SNAT --to-source $TO_IP  (адрес во внешней сети).

Можно ли поднимать NAT для определенного адреса из локальной сети, подставляя определенный адрес из внешней сети?
Делал так:
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.20 -j SNAT --to-source $10.60.1.6  (адрес во внешней сети).
не проходят пакеты.

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


Оффлайн Stiff

  • Активист
  • *
  • Сообщений: 677
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #224 : 13 Января 2009, 23:56:25 »
Можно ли поднимать NAT для определенного адреса из локальной сети, подставляя определенный адрес из внешней сети?
Делал так:
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.20 -j SNAT --to-source $10.60.1.6  (адрес во внешней сети).
не проходят пакеты.
попробуй добавь iptables -t nat -A PREROUTING -d 10.60.1.6 -j DNAT --to-destination 192.168.0.20

 

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