Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Аватара пользователя
RFox

Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение RFox »

Написал такой скрипт:



#!/bin/sh

LAN="eth1"

LANNET="10.10.1.0/24"

LANIP="10.10.1.77"

WAN="eth2"

WANIP=X.X.X.X"



IPTABLES="/sbin/iptables"



$IPTABLES -F INPUT

$IPTABLES -F FORWARD

$IPTABLES -F OUTPUT

$IPTABLES -t nat -F PREROUTING

$IPTABLES -t nat -F PPOSTROUTING

$IPTABLES -t mangle -F



$IPTABLES -P INPUT DROP

$IPTABLES -P FORWARD DROP

$IPTABLES -P OUTPUT DROP



#------------------------------------------------------------------------------

$IPTABLES -A INPUT -s $LANNET -p tcp -d $LANIP -m multiport --dport 22,80,403,443,3128,8080,8081 -j ACCEPT



$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A PREROUTING -p tcp --dport 403 -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A PREROUTING -p tcp --dport 8081 -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A PREROUTING -p tcp --dport 2802 -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A PREROUTING -p tcp --dport 1578 -j REDIRECT --to-ports 3128

$IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE



$IPTABLES -t nat -A POSTROUTING -o $WAN -j SNAT --to-source $WANIP



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




При выполнении пишет:



iptables: No chain/target/math by that name.



Скрипт пробный и уже на этом шаге столкнулся с проблемой.



От руки все нормально вводится и при iptables -L показываются таблицы с введенными правилами.



Ос. Debian 4.

Нужные модули ядра загружены.



Понимаю, что ситуация простая, но я в Линуксе новичек. Помогите, если не сложно.
Аватара пользователя
Аlchemist

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение Аlchemist »

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

1. Если просто скопировать этот скрипт из браузера в текстовый файл, а потом посмотреть в текстовом редакторе, то в каждой строке перед переносом строки стоит символ ^M - его нужно убрать.

2. Ошибка в том что у меня не было интерпретатора /bin/sh, но был /bin/bash

3. После первой строки #!/bin/bash должно быть 2 enter'а:

#!/bin/bash



(можно посмотреть в любом редакторе, к примеру Edit у Midnight Commander'а - там для этой строки будет чёрный фон)

4. В строке

WANIP=X.X.X.X"

не хватает открывающейся кавычки

5. Как уже было сказано выше в строке:

$IPTABLES -t nat -F PPOSTROUTING

опечатка: PPOSTROUTING



Примечание: данный ответ (iptables: No chain/target/math by that name.) показывался до того как я поставил открывающуюся кавычку на своё место.



Надеюсь это поможет Изображение
Аватара пользователя
TimurNS

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение TimurNS »

Да, кавычку не заметил Изображение




Цитата TimurNS:



2. Ошибка в том что у меня не было интерпретатора /bin/sh, но был /bin/bash
Debian/Ubuntu - Народ. Помотиге разобраться с iptables




Обычно /bin/sh является символической ссылкой на /bin/bash (или другой интерпретатор).




Цитата TimurNS:



3. После первой строки #!/bin/bash должно быть 2 enter'а:
Debian/Ubuntu - Народ. Помотиге разобраться с iptables




Это вовсе не обязательно.



Использование редакторов с подсветкой синтаксиса является хорошим способом выявления таких ошибок, и я бы посоветовал Вам научиться использовать vim, т.к. в нем с этим намного лучше чем в mc.
Аватара пользователя
BuGfiX

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение BuGfiX »

Спасибо всем. Действительно опечатку не заметил. Ну и пункт 3 из ответа TimurNS.
Аватара пользователя
RFox

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение RFox »

Спасибо всем. Действительно опечатку не заметил. Ну и пункт 3 из ответа TimurNS.
Аватара пользователя
RFox

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение RFox »

2BuGfiX:

Дело в том, что проверял на Kubuntu Gutsy.

О том, что /bin/sh зачастую является ссылкой на /bin/bash знаю, но видимо в моём случае это не так.

Ещё раз подчёркиваю, что целью моего исследования было не ещё раз разобраться к концепциях, используемых в OS Linux, а решить проблему со скриптом.

Кроме того в самом начале было написано, но прошу не воспринимать всерьёз мелочи, которых буду касаться.

Про vi и vim знаю - работал не раз. Какое-то время мне это даже нравилось.



А вы, BuGfiX, собирали Linux из LFS?
Аватара пользователя
BuGfiX

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение BuGfiX »

Нет, не собирал, но в курсе что например, такие вещи как симлинки, существующие "из коробки" в большистве дистрибутивов , там могут отсутствовать. Думаю проблема решена, и если есть желание поговорить про LFS - охотно поговорю в другой теме :-)
Аватара пользователя
RFox

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение RFox »

Ответтьте здесь еще на один вопрс.



#!/bin/sh





LAN="eth1"

LANNET="10.10.1.0/24"

LANIP="10.10.1.77"



IPTABLES="/sbin/iptables"



$IPTABLES -F INPUT

$IPTABLES -F FORWARD

$IPTABLES -F OUTPUT

$IPTABLES -t nat -F PREROUTING

$IPTABLES -t nat -F PPOSTROUTING

$IPTABLES -t mangle -F



$IPTABLES -P INPUT DROP

$IPTABLES -P FORWARD DROP

$IPTABLES -P OUTPUT DROP



#------------------------------------------------------------------------------



$IPTABLES -A INPUT -s $LANNET -p tcp -d $LANIP --dport 22 -j ACCEPT



Почему не соединяется по ssh?



iptables -L выводит:



Chain INPUT (policy DROP)

target prot opt source destination

ACCEPT tcp -- 10.10.1.0/24 10.10.1.1 tcp dpt:ssh



Chain FORWARD (policy DROP)

target prot opt source destination



Chain OUTPUT (policy DROP)

target prot opt source destination



По логам идет обращение на 22 порт.
Аватара пользователя
BuGfiX

Re: Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Сообщение BuGfiX »

У Вас разрешены только входящие пакеты на 22-й порт, нужно разрешить еще и исходящие.

Нужно добавить правило в OUTPUT:

$IPTABLES -A OUTPUT -s $LANIP -p tcp -d $LANNET --sport 22 -j ACCEPT

либо

$IPTABLES -A OUTPUT -s $LANIP -p tcp -d $LANNET -m state --state RELATED,ESTABLISHED -j ACCEPT
Ответить

Вернуться в «Общий по Linux»