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


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

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

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

Оффлайн Orcdestroyer

  • Новичок
  • *
  • Сообщений: 2
  • Mr.Rain
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #135 : 18 Октября 2008, 18:46:33 »
 :2funny: КЛасс статья))Как раз то,что искал.....респект!!
Не достигнув желаемого,они сделали вид,что желали достигнутого

Оффлайн Shwed

  • Участник
  • *
  • Сообщений: 129
  • ф топку компы!
    • Просмотр профиля
    • Хроники хроника
Re: HOWTO: Iptables для новичков
« Ответ #136 : 21 Октября 2008, 13:23:32 »
имеем в таблице Filter в правилах Forward примерно следующее:

Цитировать
$IPTABLES -A FORWARD -p tcp --dport 53 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 53 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 80 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 110 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 25 -i $LAN_IFACE -j ACCEPT

как изменить правило для 80 порта так, чтобы выход по нему был разрешен не для всех, а для определенных ip?
что-нибудь в духе:
$IPTABLES -A FORWARD -p tcp --dport 80 -d ! 192.168.0.55  -j ACCEPT

?
« Последнее редактирование: 21 Октября 2008, 13:28:01 от Shwed »

Оффлайн TrEK

  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Re: HOWTO: Iptables для новичков
« Ответ #137 : 21 Октября 2008, 16:13:19 »
имеем в таблице Filter в правилах Forward примерно следующее:

Цитировать
$IPTABLES -A FORWARD -p tcp --dport 53 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 53 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 80 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 110 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 25 -i $LAN_IFACE -j ACCEPT

как изменить правило для 80 порта так, чтобы выход по нему был разрешен не для всех, а для определенных ip?
что-нибудь в духе:
$IPTABLES -A FORWARD -p tcp --dport 80 -d ! 192.168.0.55  -j ACCEPT

?

ну ддык...
-A FORWARD -p tcp -s [ip.1/mask] --dport 80 -j ACCEPT
-A FORWARD -p tcp -s [ip.2/mask] --dport 80 -j ACCEPT
-A FORWARD -p tcp -s [ip.3/mask] --dport 80 -j ACCEPT
-A FORWARD -p tcp -s [ip.n/mask] --dport 80 -j ACCEPT
-A FORWARD -p tcp --dport 80 -j DROP

Оффлайн Shwed

  • Участник
  • *
  • Сообщений: 129
  • ф топку компы!
    • Просмотр профиля
    • Хроники хроника
Re: HOWTO: Iptables для новичков
« Ответ #138 : 21 Октября 2008, 16:35:17 »
во, точно, сорри за глупый вопрос
хорошо ртфм`ить не послали, хотя надо бы ))
но я читаю, читаю. очень даже интересно

Оффлайн ulan44

  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #139 : 02 Ноября 2008, 19:41:45 »
Проблема такого рода
 есть локальная сеть, есть интернет, у провайдера есть своя бесплатная зона
в интернет ходят юзеры через vpn вот хочу организовать чтоб юзеры ходили на бесплатную зону без подключения
создаю правила
iptables="IPT"

inet1="xxx.xxx.xxx.xxx/24"
inet2="xxx.xxx.xxx.xxx/21"
inet3="xxx.xxx.xxx.xxx/19"

inet2_1="xxx.xxx.xxx.xxx/21"
inet2_2="xxx.xxx.xxx.xxx/23"
inet2_3="xxx.xxx.xxx.xxx/18"
и так далее до 20

$IPT -N localzone
$IPT -A localzone -p all -s $inet1 -j ACCEPT
$IPT -A localzone -p all -s $inet2 -j ACCEPT
$IPT -A localzone -p all -s $inet3 -j ACCEPT

$IPT -N localzone2
$IPT -A localzone2 -p all -s $inet2_1 -j ACCEPT
$IPT -A localzone2 -p all -s $inet2_2 -j ACCEPT
$IPT -A localzone2 -p all -s $inet2_3 -j ACCEPT
и так делее до 20 подсетей

так как у меня пользователей около 50 не буду же я писать допустим из 25 пользователям правила по 40 штук на каждого из них

Оффлайн gard

  • Любитель
  • *
  • Сообщений: 84
  • -=:area51:=-
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #140 : 04 Ноября 2008, 11:55:13 »
 :) Здрасьте!
Скажите почему имеется такая ошибка?
gard@gard-desktop:~$ sudo iptables  -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
[sudo] password for gard:
iptables: No chain/target/match by that name


Очевидно нет цепочки POSTROUTING (как и PREROUTING):
gard@gard-desktop:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

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

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   


Где ее взять? Как добавить?
gard.area51@jabber.ru..

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #141 : 04 Ноября 2008, 12:01:45 »
Где ее взять? Как добавить?
Взять ее можно в таблице nat:
iptables -t nat -L
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн gard

  • Любитель
  • *
  • Сообщений: 84
  • -=:area51:=-
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #142 : 04 Ноября 2008, 12:11:02 »
Спасибо, вот вывод команды:
gard@gard-desktop:~$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination     


Однако..
gard@gard-desktop:~$ sudo iptables  -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables: No chain/target/match by that name


Простите, я понял свою ошибку!

Правила то по умолчанию добавляются в таблицу filter.. сделал так:
gard@gard-desktop:~$ sudo iptables  -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
gard@gard-desktop:~$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  192.168.1.0/24       anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
gard@gard-desktop:~$


Сейчас нужно проверить.  :) Спасибо большое, если что еще попрошу о помощи!
« Последнее редактирование: 04 Ноября 2008, 12:14:03 от gard »
gard.area51@jabber.ru..

Оффлайн TrEK

  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Re: HOWTO: Iptables для новичков
« Ответ #143 : 04 Ноября 2008, 12:13:47 »
Спасибо, вот вывод команды:
gard@gard-desktop:~$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination     


Однако..
gard@gard-desktop:~$ sudo iptables  -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables: No chain/target/match by that name


а  sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE не пробовали?

Оффлайн gard

  • Любитель
  • *
  • Сообщений: 84
  • -=:area51:=-
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #144 : 04 Ноября 2008, 12:14:39 »
 :) Уже.. вспомнил! Поменял пост выше.
gard.area51@jabber.ru..

Оффлайн mccar

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #145 : 12 Ноября 2008, 13:43:05 »
Всем привет.

Помогите, знающие люди. Столкнулся с такой проблемой - необходимо ограничить доступ пользователям локальной сети к определённым ресурсам посредством iptables. Но своими силами не получается.  :-\ Когда-то у знакомо на BSD я видел интересно настроенный файрвол. У него можно было заносить в специальный файлик названия блокируемых сайтов. Что-то типа acl в squid. Но под iptables такого нигде не могу найти. Да и добавить просто цепочку в правила не получается, цепочки то добавляются, но почему-то не работают.

Помогите пожалуйста.

Заранее благодарен.

Оффлайн gard

  • Любитель
  • *
  • Сообщений: 84
  • -=:area51:=-
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #146 : 13 Ноября 2008, 07:35:25 »
Ну у меня оно сразу реагирует тока я добавляю/меняю правила. Начинайте с простейшего, постепенно добавляйте.
gard.area51@jabber.ru..

Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #147 : 13 Ноября 2008, 15:41:45 »
Вопрос тот же, что и у mccar, т.е. запрещать пользователям локалки доступ к определенным ресурсам инета и запрещать закачку определенных типов файлов.

Пробовал написать так

iptables -A INPUT -s 192.168.0.10 -d www.google.ru -j DROP

где 192.168.0.10 - IP машины в локалке. Все равно ходит. Пробовал прописать вместо www.google.ru 209.85.129.99. Не работает. Где ошибка?

И еще, если нужно запретить сразу несколько ресурсов, можно ли прописать их в каком-то файле, а имя этого файла подставлять в правило?

Заранее спасибо!

Оффлайн H1ghlander

  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #148 : 13 Ноября 2008, 17:41:39 »
Есть 3 пк, на 1 Ubuntu, на 2 Windows.
Нужно, чтобы виндосовские компы не смогли обмениваться пакетами между собой.
На Ubuntu в iptables я пробывал прописывать что-то типо iptables -A FORWARD -s 192.168.1.2 -d 192.168.1.3 -j DROP
где 192.168.1.2 1 виндосовский комп, а 192.168.1.3 второй, но обмен между 1 и 2 все равно происходят.
Все 3 пк соединены свичем и похоже, что 2 виндосовких пк соединяются на прямую минуя линукс с iptables'ом.
Шлюзом в Windowsах прописан ип линукса.
Так вот как мне осуществить задуманое или это вообще не выполнимо и я му..?

Оффлайн LDE2007

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #149 : 13 Ноября 2008, 17:52:34 »
Если пишу так

sudo iptables -A FORWARD -s 192.168.0.10 -i eth1 -o eth0 -j DROP

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

sudo iptables -A FORWARD -s 192.168.0.10 -d 209.85.129.99 -i eth1 -o eth0 -j DROP

все равно ломится на google.ru. Что не так?

И имеет ли смысл использовать iptables для различных блокировок или это проще реализовать в squid?
« Последнее редактирование: 13 Ноября 2008, 17:55:25 от LDE2007 »

 

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