Настройка iptables

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
simer
Сообщения: 24
ОС: Fedora 7

Настройка iptables

Сообщение simer »

Допустим я хочу закрыть доступ на все сайты кроме одного(81.30.199.70). Делаю так

[root@localhost etc]# iptables -P OUTPUT DROP
[root@localhost etc]# iptables -A OUTPUT -d 81.30.199.70 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy DROP) target prot opt source destination
ACCEPT 0 -- anywhere 81.30.199.70

Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination

Но этот сайт все равно не открывается браузером .. Единственное, что я могу сделать это его пинговать .. что здесь не так ?
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: Настройка iptables

Сообщение Mage-Warrior »

Попробуй в адресной строке браузера: http://81.30.199.70/
Работает так? К серверу DNS провайдера нужно тоже доступ дать. Для отладки, кстати, советую tcpdump.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Настройка iptables

Сообщение IMB »

Mage-Warrior писал(а):
02.08.2007 15:29
Попробуй в адресной строке браузера: http://81.30.199.70/
Работает так? К серверу DNS провайдера нужно тоже доступ дать. Для отладки, кстати, советую tcpdump.

Tcpdump конечно хорошо, но подчас достаточно iptstate.
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

Mage-Warrior писал(а):
02.08.2007 15:29
Попробуй в адресной строке браузера: http://81.30.199.70/
Работает так?


Пробовал - не помогло
Спасибо сказали:
Аватара пользователя
Dr. Evil
Сообщения: 411
ОС: openSUSE 11.0 Beta3

Re: Настройка iptables

Сообщение Dr. Evil »

simer писал(а):
02.08.2007 14:40
Допустим я хочу закрыть доступ на все сайты кроме одного(81.30.199.70). Делаю так

[root@localhost etc]# iptables -P OUTPUT DROP
[root@localhost etc]# iptables -A OUTPUT -d 81.30.199.70 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy DROP) target prot opt source destination
ACCEPT 0 -- anywhere 81.30.199.70

Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination

Но этот сайт все равно не открывается браузером .. Единственное, что я могу сделать это его пинговать .. что здесь не так ?


здесь очень многое "не так".
во-первых, где вывод iptables -L -t nat?
во-вторых, ты изучал, как настраивать правила в цепочках для iptables?
в-третьих, во время чтения iptables-tutorial, тебе необходимо обратить особое внимание на знаки исключения при написании правил (подсказка: !)

да и вообще никто не ДОЛЖЕН ставить цепочку INPUT в ACCEPT. Это противоречит всем правилам секюрности.
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

Dr. Evil писал(а):
02.08.2007 16:00
здесь очень многое "не так".
во-первых, где вывод iptables -L -t nat?


[root@localhost etc]# iptables -L -t nat
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

Dr. Evil писал(а):
02.08.2007 16:00
во-вторых, ты изучал, как настраивать правила в цепочках для iptables?

Изучаю..

Dr. Evil писал(а):
02.08.2007 16:00
в-третьих, во время чтения iptables-tutorial, тебе необходимо обратить особое внимание на знаки исключения при написании правил (подсказка: !)

А просто сказать нельзя ?

Dr. Evil писал(а):
02.08.2007 16:00
да и вообще никто не ДОЛЖЕН ставить цепочку INPUT в ACCEPT. Это противоречит всем правилам секюрности.


Согласен ..но я пытаюсь при полном остутствии ограничений (чтоб не запутаться ) на локальной машине повесить ограничение на OUTPUT, чтоб на один сайт всего заходил .И у меня даже это не работает . т.е DROP пока только для OUTPUT. А можно просто правильный конфиг для этого случая ?
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

Я просто не могу понять почему при добавлнии правила :
iptables -A OUTPUT -j ACCEPT

все сайты открываются .. А при указание толко одного сайта:
iptables -A OUTPUT -j ACCEPT -d 81.30.199.70
он не открывается .. работает толко ping для него , но не http .. что еще нужно открыть ?


для dns тоже попробовал открыть - все равно не работает
Спасибо сказали:
Аватара пользователя
Sandle_X
Сообщения: 117
ОС: Gentoo Base System

Re: Настройка iptables

Сообщение Sandle_X »

У тебя iptables на локальной тачке или как сервер?
/The information should be free.../ <Gentoo Base System version 1.12.10>
Конференция форума в Jabber: linuxforum@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu
Контактная информация:

Re: Настройка iptables

Сообщение mczim »

Код: Выделить всё

iptables -A INPUT -i eth0 -p tcp --src 0/0 --sport 1024:65535 --dst 81.30.199.70 --dport 80 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp ! --tcp-flags SYN,ACK,FIN SYN --src 81.30.199.70 --sport 80 --dst 0/0 --dport 1024:65535 -j ACCEPT


eth0 - интерфейс с которого выходиш в инет.
Я странный...
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

Sandle_X писал(а):
02.08.2007 16:54
У тебя iptables на локальной тачке или как сервер?


На локальной тачке
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

mczim писал(а):
02.08.2007 16:57

Код: Выделить всё

iptables -A INPUT -i eth0 -p tcp --src 0/0 --sport 1024:65535 --dst 81.30.199.70 --dport 80 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp ! --tcp-flags SYN,ACK,FIN SYN --src 81.30.199.70 --sport 80 --dst 0/0 --dport 1024:65535 -j ACCEPT


eth0 - интерфейс с которого выходиш в инет.


Спасибо, но сожалению не помогло :(

Тут у меня есть вопрос .. Я думал что distination для чепочки OUTPUT это как раз и есть удаленный адресс, а в source - это локальный ip-шник машины .. Аналогично для INPUT: source - удаленный адресс, а destination - адресс локальной машины .. А данный код делает все наоборот
Спасибо сказали:
Аватара пользователя
Dr. Evil
Сообщения: 411
ОС: openSUSE 11.0 Beta3

Re: Настройка iptables

Сообщение Dr. Evil »

код, приведенный выше, не работает из-за того, что в цепочке OUTPUT отсутствует правило, разрешающее исходящие пакеты от твое машины к ресурсу с ip 81.30.199.70.
iptables -A OUTPUT -o eth0 -p tcp ! --tcp-flags SYN,ACK,FIN SYN --dst 81.30.199.70 --dport 80 --src 0/0 --sport 1024:65535 -j ACCEPT
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

Заработало .. Мне помогло открывание dns-сервера в OUTPUT. При чем dns-сервер имеет 2 адреса - внутренний и внешний. Я открыл оба. Для некоторых сайтов(я пробовал не толко с сайтом 81.30.199.70) требуется внешний, а для некоторых хватает и внутреннего (не знаю почему).
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy
Контактная информация:

Re: Настройка iptables

Сообщение Olden Gremlin »

simer писал(а):
03.08.2007 12:52
Заработало .. Мне помогло открывание dns-сервера в OUTPUT. При чем dns-сервер имеет 2 адреса - внутренний и внешний. Я открыл оба. Для некоторых сайтов(я пробовал не толко с сайтом 81.30.199.70) требуется внешний, а для некоторых хватает и внутреннего (не знаю почему).

Почему-бы еще не пойти другим путем?

Код: Выделить всё

iptables -P INPUT DROP
iptables -A INPUT -s 193.34.140.1 -j ACCEPT
iptables -A INPUT -s 81.30.199.70 -j ACCEPT
Тут 193.34.140.1 - это DNS-сервер (можно указать свои).
Тут товарищем Dr. Evil было замечено, что INPUT в ACCEPT - это, как минимум, некузяво. Так что пробуем насладиться кодом, приведенным выше.
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

Olden Gremlin писал(а):
09.08.2007 12:39
simer писал(а):
03.08.2007 12:52
Заработало .. Мне помогло открывание dns-сервера в OUTPUT. При чем dns-сервер имеет 2 адреса - внутренний и внешний. Я открыл оба. Для некоторых сайтов(я пробовал не толко с сайтом 81.30.199.70) требуется внешний, а для некоторых хватает и внутреннего (не знаю почему).

Почему-бы еще не пойти другим путем?

Код: Выделить всё

iptables -P INPUT DROP
iptables -A INPUT -s 193.34.140.1 -j ACCEPT
iptables -A INPUT -s 81.30.199.70 -j ACCEPT
Тут 193.34.140.1 - это DNS-сервер (можно указать свои).
Тут товарищем Dr. Evil было замечено, что INPUT в ACCEPT - это, как минимум, некузяво. Так что пробуем насладиться кодом, приведенным выше.


Попробовал..но, он, к сожалению не работает :)
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

Тперь есть такая ппррблема - iptables не применяеся к уже установленным соединениям

Допустим есть такие правила :

iptables -L -n -t nat -v
Chain PREROUTING (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 10.1.1.253 0.0.0.0/0


Т.е всем запрещено, кроме опеделеннго ip-шника(10.1.1.253) . Далее клиент с этим ip-шником устанвалвает соединение и начиает качать большой файл . В определенный момент разрешающее правило удаляется для ip 10.1.1.253..После этого клиент не может устанвоить новое соединение, но старые прдолжают работать(докачивать) .. как эо исправить ? не кажется что пакеты со статусом ESTABLISHED не должны пропускаться , если стоит политика DROP, т.е причина не в этом ...
Спасибо сказали:
aliens
Сообщения: 495
Статус: нетрушный
ОС: Gentoo & CentOS 5.1
Контактная информация:

Re: Настройка iptables

Сообщение aliens »

simer,
смотря какие у вас правила. но ESTABLISHED держатся если есть разрешающее правило
Спасибо сказали:
simer
Сообщения: 24
ОС: Fedora 7

Re: Настройка iptables

Сообщение simer »

iptables не очень то хочет разрывать установленные соединения ..Мне тут подсказали утилитку Cutter( http://www.lowth.com/cutter)... Это мне и помогло
Спасибо сказали:
Ответить