Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - Народ. Помотиге разобраться с iptables

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

Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

#!/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.
Нужные модули ядра загружены.

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

Отправлено: 14:03, 06-08-2008

 

Аватара для BuGfiX

Слакофил


Сообщения: 590
Благодарности: 130

Профиль | Сайт | Отправить PM | Цитировать


Цитата RFox:
$IPTABLES -t nat -F PPOSTROUTING »
Опечатка

-------
If you don`t know what to use this for, you don`t need it.

http://sergey.sereda.googlepages.com...e1_userbar.gif


Отправлено: 14:56, 06-08-2008 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Надеюсь это поможет

Отправлено: 07:46, 07-08-2008 | #3


Аватара для BuGfiX

Слакофил


Сообщения: 590
Благодарности: 130

Профиль | Сайт | Отправить PM | Цитировать


Да, кавычку не заметил

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

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

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

-------
If you don`t know what to use this for, you don`t need it.

http://sergey.sereda.googlepages.com...e1_userbar.gif


Отправлено: 11:16, 07-08-2008 | #4


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 11:33, 07-08-2008 | #5


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


2BuGfiX:
Дело в том, что проверял на Kubuntu Gutsy.
О том, что /bin/sh зачастую является ссылкой на /bin/bash знаю, но видимо в моём случае это не так.
Ещё раз подчёркиваю, что целью моего исследования было не ещё раз разобраться к концепциях, используемых в OS Linux, а решить проблему со скриптом.
Кроме того в самом начале было написано, но прошу не воспринимать всерьёз мелочи, которых буду касаться.
Про vi и vim знаю - работал не раз. Какое-то время мне это даже нравилось.

А вы, BuGfiX, собирали Linux из LFS?

Отправлено: 12:38, 07-08-2008 | #6


Аватара для BuGfiX

Слакофил


Сообщения: 590
Благодарности: 130

Профиль | Сайт | Отправить PM | Цитировать


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

-------
If you don`t know what to use this for, you don`t need it.

http://sergey.sereda.googlepages.com...e1_userbar.gif


Отправлено: 12:51, 07-08-2008 | #7


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

#!/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 порт.

Отправлено: 14:05, 07-08-2008 | #8


Аватара для BuGfiX

Слакофил


Сообщения: 590
Благодарности: 130

Профиль | Сайт | Отправить PM | Цитировать


У Вас разрешены только входящие пакеты на 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

-------
If you don`t know what to use this for, you don`t need it.

http://sergey.sereda.googlepages.com...e1_userbar.gif


Отправлено: 14:32, 07-08-2008 | #9


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо всем, кто помог.

Зацените первый вариант скрипта:

#!/bin/sh


WAN_IFACE="eth2"
WAN_IP="x.x.x.x"

LAN_IFACE="eth1"
LAN_IP_RANGE="10.10.1.0/24"
LAN_IP="10.10.1.77"

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="/sbin/iptables"

###################################################################################
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t mangle -F

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

#INPUT####################################
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -d $WAN_IP -p tcp --syn -j DROP

$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $WAN_IP -j ACCEPT

#DHCP-------------------------
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT

#Rules for incoming packets from the internet
$IPTABLES -A INPUT -p ALL -d $WAN_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPTables INPUT packet died: "

########FORWARD###############################
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

######OUTPUT##################################

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $WAN_IP -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_IFACE -j SNAT --to-source $WAN_IP

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

Комп используется как шлюз, прозрачный прокси (squid), dhcp сервер, dns сервер, apache (web- интерфейс SAMS).

Хотелось бы закрыть не нужные порты из локалки и для форвардинга, но не знаю точно какие.
Также не очень понятно с журналированием. Как правильно его сюда вписать?

Есть несколько вопросов:

Отправлено: 11:00, 02-09-2008 | #10



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
IPTABLES!!! RULES, Разгавор о iptables BuuG Общий по Linux 17 03-03-2006 16:00
Народ помогите разобраться в asm'e! novichek_new Программирование и базы данных 8 30-12-2005 18:55
iptables xamelion Общий по Linux 9 14-05-2004 18:42
Помогите разобраться с iptables frofis Защита компьютерных систем 1 20-04-2003 01:32




 
Переход