Настройка iptables
Модератор: SLEDopit
Настройка iptables
Допустим я хочу закрыть доступ на все сайты кроме одного(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
Но этот сайт все равно не открывается браузером .. Единственное, что я могу сделать это его пинговать .. что здесь не так ?
[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
Попробуй в адресной строке браузера: http://81.30.199.70/
Работает так? К серверу DNS провайдера нужно тоже доступ дать. Для отладки, кстати, советую tcpdump.
Работает так? К серверу DNS провайдера нужно тоже доступ дать. Для отладки, кстати, советую tcpdump.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Re: Настройка iptables
Mage-Warrior писал(а): ↑02.08.2007 15:29Попробуй в адресной строке браузера: http://81.30.199.70/
Работает так? К серверу DNS провайдера нужно тоже доступ дать. Для отладки, кстати, советую tcpdump.
Tcpdump конечно хорошо, но подчас достаточно iptstate.
Re: Настройка iptables
Mage-Warrior писал(а): ↑02.08.2007 15:29Попробуй в адресной строке браузера: http://81.30.199.70/
Работает так?
Пробовал - не помогло
Re: Настройка iptables
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. Это противоречит всем правилам секюрности.
Re: Настройка iptables
[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
Изучаю..
А просто сказать нельзя ?
Согласен ..но я пытаюсь при полном остутствии ограничений (чтоб не запутаться ) на локальной машине повесить ограничение на OUTPUT, чтоб на один сайт всего заходил .И у меня даже это не работает . т.е DROP пока только для OUTPUT. А можно просто правильный конфиг для этого случая ?
Re: Настройка iptables
Я просто не могу понять почему при добавлнии правила :
iptables -A OUTPUT -j ACCEPT
все сайты открываются .. А при указание толко одного сайта:
iptables -A OUTPUT -j ACCEPT -d 81.30.199.70
он не открывается .. работает толко ping для него , но не http .. что еще нужно открыть ?
для dns тоже попробовал открыть - все равно не работает
iptables -A OUTPUT -j ACCEPT
все сайты открываются .. А при указание толко одного сайта:
iptables -A OUTPUT -j ACCEPT -d 81.30.199.70
он не открывается .. работает толко ping для него , но не http .. что еще нужно открыть ?
для dns тоже попробовал открыть - все равно не работает
Re: Настройка iptables
У тебя iptables на локальной тачке или как сервер?
/The information should be free.../ <Gentoo Base System version 1.12.10>
Конференция форума в Jabber: linuxforum@conference.jabber.ru
Конференция форума в Jabber: linuxforum@conference.jabber.ru
Re: Настройка iptables
Код: Выделить всё
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 - интерфейс с которого выходиш в инет.
Я странный...
Re: Настройка iptables
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 - адресс локальной машины .. А данный код делает все наоборот
Re: Настройка iptables
код, приведенный выше, не работает из-за того, что в цепочке 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
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
Re: Настройка iptables
Заработало .. Мне помогло открывание dns-сервера в OUTPUT. При чем dns-сервер имеет 2 адреса - внутренний и внешний. Я открыл оба. Для некоторых сайтов(я пробовал не толко с сайтом 81.30.199.70) требуется внешний, а для некоторых хватает и внутреннего (не знаю почему).
- Olden Gremlin
- Сообщения: 365
- Статус: RAP22-RIPE
- ОС: Debian GNU/Linux Wheezy
- Контактная информация:
Re: Настройка iptables
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
Тут товарищем Dr. Evil было замечено, что INPUT в ACCEPT - это, как минимум, некузяво. Так что пробуем насладиться кодом, приведенным выше.
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Re: Настройка iptables
Olden Gremlin писал(а): ↑09.08.2007 12:39simer писал(а): ↑03.08.2007 12:52Заработало .. Мне помогло открывание dns-сервера в OUTPUT. При чем dns-сервер имеет 2 адреса - внутренний и внешний. Я открыл оба. Для некоторых сайтов(я пробовал не толко с сайтом 81.30.199.70) требуется внешний, а для некоторых хватает и внутреннего (не знаю почему).
Почему-бы еще не пойти другим путем?Тут 193.34.140.1 - это DNS-сервер (можно указать свои).Код: Выделить всё
iptables -P INPUT DROP iptables -A INPUT -s 193.34.140.1 -j ACCEPT iptables -A INPUT -s 81.30.199.70 -j ACCEPT
Тут товарищем Dr. Evil было замечено, что INPUT в ACCEPT - это, как минимум, некузяво. Так что пробуем насладиться кодом, приведенным выше.
Попробовал..но, он, к сожалению не работает
Re: Настройка iptables
Тперь есть такая ппррблема - 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, т.е причина не в этом ...
Допустим есть такие правила :
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, т.е причина не в этом ...
Re: Настройка iptables
simer,
смотря какие у вас правила. но ESTABLISHED держатся если есть разрешающее правило
смотря какие у вас правила. но ESTABLISHED держатся если есть разрешающее правило
Re: Настройка iptables
iptables не очень то хочет разрывать установленные соединения ..Мне тут подсказали утилитку Cutter( http://www.lowth.com/cutter)... Это мне и помогло