adsl club

Справочник

Форум

Программы

Фильмы

Ресурсы

Файлообмен

Хостинг

Ростелеком
Эх - настройка iptables
На страницу 1 2 3
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)*NIX OS
Автор Сообщение
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 16-06    Заголовок сообщения: Ответить с цитатой

ProFfeSsoRr писал(а):
Цитата:
Чем больше цифра после слеша тем меньше диапозон получается
блин, хитро... Тек, сейчас попробовал сделать вот так:
Нажмите сюда, чтобы просмотреть текст


IPTABLES="/sbin/iptables"
MODEM="90.189.х.х"
LINUX_OUTER="192.168.1.2"
LINUX_INNER="192.168.0.1"
COMP="192.168.0.0/24"
PORT_TCP="1234"
PORT_UDP="1235"

$IPTABLES -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to $COMP
$IPTABLES -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p udp --dport 1235 -j DNAT --to $COMP
$IPTABLES -A FORWARD -i eth0 -p tcp --dport 1234 -d $COMP -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -p udp --dport 1235 -d $COMP -j ACCEPT
$IPTABLES -A POSTROUTING -s $COMP -d $LINUX_INNER -o eth1 -p tcp --dport $PORT_TCP -j SNAT --to $MODEM
$IPTABLES -A POSTROUTING -s $COMP -d $LINUX_INNER -o eth1 -p udp --dport $PORT_UDP -j SNAT --to $MODEM

$IPTABLES -A FORWARD -o eth1 -p tcp --dport 1234 -d $MODEM -j ACCEPT
$IPTABLES -A FORWARD -o eth1 -p udp --dport 1235 -d $MODEM -j ACCEPT

так ругается Bad IP adress 192.168.0.0/24 Shocked

А если адрес какого-нить одного компа в локалке вставить, то будет "No chain/target/match by that name" 4 раза вылезать.

в первой строчке не --to а --to-destination наде делать....
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 16-35    Заголовок сообщения: Ответить с цитатой

ProFfeSsoRr писал(а):
Цитата:
Чем больше цифра после слеша тем меньше диапозон получается
блин, хитро... Тек, сейчас попробовал сделать вот так:
Нажмите сюда, чтобы просмотреть текст


IPTABLES="/sbin/iptables"
MODEM="90.189.х.х"
LINUX_OUTER="192.168.1.2"
LINUX_INNER="192.168.0.1"
COMP="192.168.0.0/24"
PORT_TCP="1234"
PORT_UDP="1235"

$IPTABLES -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to $COMP
$IPTABLES -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p udp --dport 1235 -j DNAT --to $COMP
$IPTABLES -A FORWARD -i eth0 -p tcp --dport 1234 -d $COMP -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -p udp --dport 1235 -d $COMP -j ACCEPT
$IPTABLES -A POSTROUTING -s $COMP -d $LINUX_INNER -o eth1 -p tcp --dport $PORT_TCP -j SNAT --to $MODEM
$IPTABLES -A POSTROUTING -s $COMP -d $LINUX_INNER -o eth1 -p udp --dport $PORT_UDP -j SNAT --to $MODEM

$IPTABLES -A FORWARD -o eth1 -p tcp --dport 1234 -d $MODEM -j ACCEPT
$IPTABLES -A FORWARD -o eth1 -p udp --dport 1235 -d $MODEM -j ACCEPT

так ругается Bad IP adress 192.168.0.0/24 Shocked

А если адрес какого-нить одного компа в локалке вставить, то будет "No chain/target/match by that name" 4 раза вылезать.

Во еще -t NAT пропущен и у --to-destination всетаки дипозон 192.168.0.0-192.168.0.20 задается в конечном итоге вот так должно быть
COMP="192.168.0.0-192.168.0.20"
$IPTABLES -t NAT -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 19-42    Заголовок сообщения: Ответить с цитатой

Так,
Цитата:
--to-destination
ему неизвестно, говорит неверный аргумент (указываю один комп), если задаю диапазоном, то говорит что не найден такой хост/сетка.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 20-42    Заголовок сообщения: Ответить с цитатой

ProFfeSsoRr писал(а):
Так,
Цитата:
--to-destination
ему неизвестно, говорит неверный аргумент (указываю один комп), если задаю диапазоном, то говорит что не найден такой хост/сетка.

еще и -t nat мелкими буквами надо...
COMP="192.168.0.0-192.168.0.20"
iptables -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
вот после этого iptables-save
# Generated by iptables-save v1.4.0 on Thu Jul 17 20:41:28 2008
*mangle
:PREROUTING ACCEPT [21:4952]
:INPUT ACCEPT [21:4952]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [14:4582]
:POSTROUTING ACCEPT [16:4646]
COMMIT
# Completed on Thu Jul 17 20:41:28 2008
# Generated by iptables-save v1.4.0 on Thu Jul 17 20:41:28 2008
*filter
:INPUT ACCEPT [21:4952]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [14:4582]
COMMIT
# Completed on Thu Jul 17 20:41:28 2008
# Generated by iptables-save v1.4.0 on Thu Jul 17 20:41:28 2008
*nat
:PREROUTING ACCEPT [8:492]
:POSTROUTING ACCEPT [3:280]
:OUTPUT ACCEPT [3:280]
-A PREROUTING -s 90.189.1.1/32 -d 192.168.1.2/32 -i eth0 -p tcp -m tcp --dport 1234 -j DNAT --to-destination 192.168.0.0-192.168.0.20
COMMIT
# Completed on Thu Jul 17 20:41:28 2008
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 20-44    Заголовок сообщения: Ответить с цитатой

ну и sudo modprobe iptable_nat
перед этим надо естественно...
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 20-53    Заголовок сообщения: Ответить с цитатой

Цитата:
вот после этого
происходит вот что:
Цитата:
HomeServer init.d # /etc/rc.firewall
iptables v1.3.8: host/network `192.168.0.1-192.168.0.20' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.3.8: host/network `192.168.0.1-192.168.0.20' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.3.8: Unknown arg `--to-destination'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.3.8: Unknown arg `--to-destination'
Try `iptables -h' or 'iptables --help' for more information.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 21-01    Заголовок сообщения: Ответить с цитатой

ProFfeSsoRr писал(а):
Цитата:
вот после этого
происходит вот что:
Цитата:
HomeServer init.d # /etc/rc.firewall
iptables v1.3.8: host/network `192.168.0.1-192.168.0.20' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.3.8: host/network `192.168.0.1-192.168.0.20' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.3.8: Unknown arg `--to-destination'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.3.8: Unknown arg `--to-destination'
Try `iptables -h' or 'iptables --help' for more information.

закментируй все строчки кроме первой и добейся что б она работала... у меня iptables поновее но я сомневаюсь что проблема в этом... еще можеш вывод iptables-save который я выше писал сохранить в файл и загрузить его iptables-restore < file
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 21-11    Заголовок сообщения: Ответить с цитатой

Цитата:
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p udp --dport 1235 -j DNAT --to-destination $COMP
работает (то бишь первые 2 строчки), а вот остальные 6 ругаются на $COMP, что неправильный диапазон. Я вот думаю - а где-нибудь можно тут заменить явное $COMP просто на интерфейс, с которого идут пакеты? Вообще, где обязательно надо указывать -s и -d, а где вместо них можно прописать -i и -o ?

Update:
Цитата:
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p udp --dport 1235 -j DNAT --to-destination $COMP
$IPTABLES -A FORWARD -i eth0 -p tcp --dport 1234 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -p udp --dport 1235 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s $COMP -d $LINUX_INNER -o eth1 -p tcp --dport $PORT_TCP -j SNAT --to-source $MODEM
$IPTABLES -t nat -A POSTROUTING -s $COMP -d $LINUX_INNER -o eth1 -p udp --dport $PORT_UDP -j SNAT --to-source $MODEM
$IPTABLES -A FORWARD -o eth1 -p tcp --dport 1234 -d $MODEM -j ACCEPT
$IPTABLES -A FORWARD -o eth1 -p udp --dport 1235 -d $MODEM -j ACCEPT

-s $COMP в 5 и 6 строчках не нравятся, то бишь опять ругается на "невозможно найти хост/сеть". Надо как-то это заменять. Остальное пашет.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 21-21    Заголовок сообщения: Ответить с цитатой

ProFfeSsoRr писал(а):
Цитата:
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p udp --dport 1235 -j DNAT --to-destination $COMP
работает (то бишь первые 2 строчки), а вот остальные 6 ругаются на $COMP, что неправильный диапазон. Я вот думаю - а где-нибудь можно тут заменить явное $COMP просто на интерфейс, с которого идут пакеты? Вообще, где обязательно надо указывать -s и -d, а где вместо них можно прописать -i и -o ?

как раз наоборот -i -o -p можно пропускать вот -s -d в данном случае нельзя...
для следующих строчек где FORWARD там -t filter
где построутинг там -t nat и в конце --to-source
ну и дальше смотреть...
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 21-30    Заголовок сообщения: Ответить с цитатой

Ура, заменил $COMP в 5 и 6 строчках на 192.168.0.0/24 и скрипт заработал!!!!

serg1982 Огромнейшее спасибо за помощь в правке скрипта, David также огромнейшее спасибо за исходник! Правда не знаю, как бы справился без вашей помощи! Smile) Smile) Smile) Horoshiy
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 22-08    Заголовок сообщения: Ответить с цитатой

Хм, скрипт-то работает, а DC порты все равно не видит. И дело видимо в том, что -d стоит модем, а вот назначение у пакета - сервак какой-нибудь в интернете! Попробовал убрать -d вообще - скрипт применяется, но тем не менее порты закрыты.

P.S. понимаю что замучал, но видимо я не все еще понял в настройке iptables Sad
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 22-41    Заголовок сообщения: Ответить с цитатой

ProFfeSsoRr писал(а):
Хм, скрипт-то работает, а DC порты все равно не видит. И дело видимо в том, что -d стоит модем, а вот назначение у пакета - сервак какой-нибудь в интернете! Попробовал убрать -d вообще - скрипт применяется, но тем не менее порты закрыты.

P.S. понимаю что замучал, но видимо я не все еще понял в настройке iptables Sad


echo 1 > /proc/sys/net/ipv4/ip_forward
говорил ?
модно еще ACCEPT на LOG заменить и посмотреть чего он там вываливать будет...
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 22-49    Заголовок сообщения: Ответить с цитатой

еще может стоит добавить
iptables -t nat -A POSTROUTING -j MASQUERADE
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 22-53    Заголовок сообщения: Ответить с цитатой

блин что то неправильно во всей конструкции надо подумать...
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 23-03    Заголовок сообщения: Ответить с цитатой

Цитата:
echo 1 > /proc/sys/net/ipv4/ip_forward
а что это даст можешь пояснить?
Цитата:
еще может стоит добавить
iptables -t nat -A POSTROUTING -j MASQUERADE
бестолку.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
serg1982
Форумчанин
СообщениеДобавлено: Чт 17-07-08 : 23-06    Заголовок сообщения: Ответить с цитатой

[quote="ProFfeSsoRr"]
Цитата:
echo 1 > /proc/sys/net/ipv4/ip_forward
а что это даст можешь пояснить?
без этого форвард пакетов запрещен...
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 23-21    Заголовок сообщения: Ответить с цитатой

Сделал. Просто в консоли ничего не высветилось при этой команде. Порты все равно не проходят.

Кстати, че-то Iptables как-то странно логи ведет... Где посмотреть прям по пакетам статистику - какой пакет когда и почему был принят/отброшен?
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
David
Гуру
СообщениеДобавлено: Чт 17-07-08 : 23-28    Заголовок сообщения: Ответить с цитатой

ProFfeSsoRr писал(а):

Цитата:
IPTABLES="/sbin/iptables"
MODEM="90.189.х.х"
LINUX_OUTER="192.168.1.2"
LINUX_INNER="192.168.0.1"
COMP="192.168.0.3-192.168.0.20"
PORT_TCP="1234"
PORT_UDP="1235"

Цитата:
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
$IPTABLES -t nat -A PREROUTING -s $MODEM -d $LINUX_OUTER -i eth0 -p udp --dport 1235 -j DNAT --to-destination $COMP
$IPTABLES -A FORWARD -i eth0 -p tcp --dport 1234 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -p udp --dport 1235 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -d $LINUX_INNER -o eth1 -p tcp --dport $PORT_TCP -j SNAT --to-source $MODEM
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -d $LINUX_INNER -o eth1 -p udp --dport $PORT_UDP -j SNAT --to-source $MODEM
$IPTABLES -A FORWARD -o eth1 -p tcp --dport 1234 -d $MODEM -j ACCEPT
$IPTABLES -A FORWARD -o eth1 -p udp --dport 1235 -d $MODEM -j ACCEPT

Итак вроде теперь так.
Значит похоже дело в том, что модем то бридж.
Получается, что все пакеты насквозь проходят напрямую и в загловках имеют адрес не модема, а источников в инете.
Тогда надо так видимо (убрать явные указания о адресах)

Код:
$IPTABLES -t nat -A PREROUTING -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
$IPTABLES -t nat -A PREROUTING -d $LINUX_OUTER -i eth0 -p udp  --dport 1235 -j DNAT --to-destination $COMP
$IPTABLES -A FORWARD -i eth0 -p tcp --dport 1234 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -p udp --dport 1235 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -p tcp --dport $PORT_TCP -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -p udp --dport  $PORT_UDP -j MASQUERADE
$IPTABLES -A FORWARD -o eth1 -p tcp --dport 1234 -j ACCEPT
$IPTABLES -A FORWARD -o eth1 -p udp --dport 1235 -j ACCEPT
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 23-35    Заголовок сообщения: Ответить с цитатой

Так, подскажите пожалуйста - как сбросить все правила на те, что грузятся автоматом при старте iptables? А то моих тут уже дофига стало - старые мешаются в логе.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 17-07-08 : 23-44    Заголовок сообщения: Ответить с цитатой

Поправьте если я не понял, но в
Код:
$IPTABLES -t nat -A PREROUTING -d $LINUX_OUTER -i eth0 -p tcp --dport 1234 -j DNAT --to-destination $COMP
-d точно должен указывать на $LINUX_OUTER, а не на $COMP? Ведь по идее дестинейшн пакета - это мой комп в локалке! И вообще тут -d видимо опять не нужен. Но и без него скрипт применяется, только результата нет.

P.S. То ли я с ума схожу, то ли я отупел... Уже на дофига раз перечитал мануал по iptables, а все не могу понять логику этих правил Sad(
Последний раз редактировалось: ProFfeSsoRr (Чт 17-07-08 : 23-52), всего редактировалось 1 раз
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
Показать сообщения:   
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)*NIX OS Часовой пояс: GMT + 7
На страницу 1 2 3
Страница 2 из 3

 

 
Аватары: Вкл|Выкл   ЮзерИнфо: Вкл|Выкл   Подписи: Вкл|Выкл
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы