LINUX.ORG.RU

[iptables] проблемка


0

1

Решил перенастроить iptables.

Вот собственно настройки:

 #/bin/bash

/usr/sbin/iptables -F INPUT 
/usr/sbin/iptables -F OUTPUT 
/usr/sbin/iptables -F FORWARD 
/usr/sbin/iptables -N trust_hosts 
/usr/sbin/iptables -A trust_hosts -s 193.108.46.1 -j RETURN 
/usr/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
/usr/sbin/iptables -A INPUT -j trust_hosts /usr/sbin/iptables -A INPUT -p tcp -m multiport --dports 22, 80, 8080 -j ACCEPT 
/usr/sbin/iptables -A INPUT -p icmp --icmp -type 8 -j ACCEPT

sysctl -w net.ipv4.ip_forward="1"

/usr/sbin/iptables -F FORWARD 
/usr/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT 
/usr/sbin/iptables -A FORWARD -m state --state NEW -i eth1 -o eth0 -j ACCEPT 
/usr/sbin/iptables -p FORWARD DROP 
/usr/sbin/iptables -t nat -F POSTROUTING 
/usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

После запуска выдает вот такие ошибки

iptables v1.4.9: invalid port/service `' specified Try `iptables -h' or 'iptables --help' for more information. net.ipv4.ip_forward = 1 iptables v1.4.9: unknown protocol `forward' specified Try `iptables -h' or 'iptables --help' for more information.

Помогите найти, где я неправильно что-то написал.

> Помогите найти
Замените шабанг на #!/bin/bash -ex, чтобы увидеть, в какой именно строке ошибка.

AITap ★★★★★ ()
Ответ на: комментарий от AITap

теперь, вместо ошибок вот это:

+ /usr/sbin/iptables -F INPUT + /usr/sbin/iptables -F OUTPUT + /usr/sbin/iptables -F FORWARD + /usr/sbin/iptables -N trust_hosts iptables: Chain already exists.

Berluskoni ★☆ ()

>/usr/sbin/iptables -A INPUT -p tcp -m multiport --dports 22, 80, 8080 -j ACCEPT

Надо:
/usr/sbin/iptables -A INPUT -p tcp -m multiport --dports 22,80,8080 -j ACCEPT

/usr/sbin/iptables -A INPUT -p icmp --icmp -type 8 -j ACCEPT


Надо:
/usr/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

/usr/sbin/iptables -p FORWARD DROP


Надо:
/usr/sbin/iptables -P FORWARD DROP

nnz ★★★★ ()
Ответ на: комментарий от nnz

спасибо.

Но, что означает

iptables: Chain already exists.

или

iptables: Directory not empty.

Berluskoni ★☆ ()
Ответ на: комментарий от Berluskoni

>iptables: Chain already exists.

Это означает попытку создать цепочку, которая уже создана.

Решается либо заменой
/usr/sbin/iptables -F INPUT
/usr/sbin/iptables -F OUTPUT
/usr/sbin/iptables -F FORWARD
на
/usr/sbin/iptables -F
/usr/sbin/iptables -X

либо заменой
/usr/sbin/iptables -N trust_hosts
на
/usr/sbin/iptables -N trust_hosts 2>/dev/null

iptables: Directory not empty.


А это без грибов уже не понять.

nnz ★★★★ ()

sysctl -w net.ipv4.ip_forward=«1»

Кажется я нашел проблему. Поставьте руками. А вообще для подобных настроек есть отдельный файла sysctl.conf Вот там и делайте изменения

polovinamozga ()
Ответ на: комментарий от polovinamozga

Я тоже обычно форвардинг глобально разрешаю в файле /etc/sysctl.conf,
достаточно раскомментировать строчку:

net.ipv4.ip_forward=1

Ну и цепочки не забывай опустошать, обнулять и грохать перед переинициализацией:

iptables -F
iptables -X
iptables -Z

iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

Novator ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.