IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в эту темуОткрыть новую тему
> Настройка iptables
eVgeNy
сообщение 28.5.2005, 20:09
Сообщение #1





Группа: Пользователи
Регистрация: 29.8.2003
Из: Ботаника
Пользователь №: 54



Задача:

Используя iptables разрешить входящие соединения с диапозона ip(ip1) на мой комп (ip2) только по порту 21, остальные порты закрыть...

При этом, используя тот же сетевой интерфейс (eth0) но другой ip (ip3) разрешить входящие соединения диапозону ip (ip4) только по 80 порту, остальные естественно закрыть...

При этом весь исходящий трафик разрешить, за исключением 1 ip адреса...

Как это сделать ?

p.s. Именно пример нужен... с английским плохо... MAN не помогает sad.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Gall
сообщение 28.5.2005, 20:21
Сообщение #2





Группа: Пользователи
Регистрация: 18.7.2004
Из: Мосгорка
Пользователь №: 2 341



CODE
iptables -A INPUT -s ip1 -d ip2 --destination-port 21 -j ACCEPT

iptables -A INPUT -s ip4 -d ip3 --destination-port 80 -j ACCEPT

iptables -P INPUT REJECT

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ssh
сообщение 28.5.2005, 21:01
Сообщение #3





Группа: Модераторы
Регистрация: 22.6.2004
Пользователь №: 2 239



русский мануал
его хватает в 99.9% случаев smile.gif
ftp://ssh.nlab.ru/Soft/docs/iptables-tutorial.html

настоятельно советую прочитать в любом случае - надо или не надо. Поможет избежать многих типичных ошибок. Весит меньше метра.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Nick
сообщение 29.5.2005, 03:02
Сообщение #4





Группа: Пользователи
Регистрация: 12.2.2004
Из: Парковый р-н
Пользователь №: 1 592



Замечу лишь только, что для ftp одного 21го порта будет маловато...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ssh
сообщение 29.5.2005, 09:17
Сообщение #5





Группа: Модераторы
Регистрация: 22.6.2004
Пользователь №: 2 239



QUOTE(Nick)
Замечу лишь только, что для ftp одного 21го порта будет маловато...

еще ip_conntrack_ftp и разрешение на вход пакетов со статусом related
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 16:51
Сообщение #6





Гости





чтобы новую тему не открывать. хм... вот пишу я такое:

$ipt -t mangle -A OUTPUT -d ip -p tcp --dport port -j MARK --set-mark 1
$ipt -A OUTPUT -m mark --mark 1 -j DROP

а пакеты не дропаются хм.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 17:29
Сообщение #7





Гости





неужели это опять вопрос на миллион долларов? mad.gif в природе есть НОРМАЛЬНОЕ описание этих дурацких iptables? не на уровне рецептов, а на уровне описания, как оно работает. а то я уже нифига не понимаю.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ssh
сообщение 24.12.2005, 17:44
Сообщение #8





Группа: Модераторы
Регистрация: 22.6.2004
Пользователь №: 2 239



Цитата(keyboarder @ 24.12.2005, 17:29)
неужели это опять вопрос на миллион долларов? mad.gif в природе есть НОРМАЛЬНОЕ описание этих дурацких iptables? не на уровне рецептов, а на уровне описания, как оно работает. а то я уже нифига не понимаю.
*


как насчет того, чтобы прочитать тему с начала ?

в документации есть описание порядка прохождения цепочек.
если правило не работает - возможные причины:
1) пакеты разрешаются раньше
2) неверно составлены критерии
3) еще что-нибудь....

перед дропом поставь лог и посмотри, вообще пакеты доходят до этого правила или нет.

иногда бывает так, что маркировка по каким-то причинам не работает, это видно в строчке лога.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 17:48
Сообщение #9





Гости





Цитата(ssh @ 24.12.2005, 17:44)
как насчет того, чтобы прочитать тему с начала ?

в документации есть описание порядка прохождения цепочек.
если правило не работает - возможные причины:
1) пакеты разрешаются раньше
2) неверно составлены критерии
3) еще что-нибудь....

перед дропом поставь лог и посмотри, вообще пакеты доходят до этого правила или нет.

иногда бывает так, что маркировка по каким-то причинам не работает, это видно в строчке лога.
*



читал. есть у меня этот tutorial. но в нём ничего толком не объясняется. в логи писал уже. вместо маркировки лог пишется. вместо drop'а нет. но не каких сообщений об ошибках, непонятках и прочем нет.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 19:21
Сообщение #10





Гости





хорошо. ладно. пойдём другим путём. а CONNMARK если сделать --save-mark, будет маркировать трафик в обоих направлениях?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Gall
сообщение 24.12.2005, 19:29
Сообщение #11





Группа: Пользователи
Регистрация: 18.7.2004
Из: Мосгорка
Пользователь №: 2 341



Будет маркировать весь трафик, прошедший через соответствующую цепь...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 19:40
Сообщение #12





Гости





бррРР. а как тогда отметить исходящие пакеты passive ftp data? никак сообразить не могу. запрос ведь не обязан на 20 порт к серверу идти? или обязан?

Добавлено в [mergetime]1135435240[/mergetime]:
опыт показывает, что нет
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ssh
сообщение 24.12.2005, 19:48
Сообщение #13





Группа: Модераторы
Регистрация: 22.6.2004
Пользователь №: 2 239



Цитата(keyboarder @ 24.12.2005, 19:40)
бррРР. а как тогда отметить исходящие пакеты passive ftp data? никак сообразить не могу. запрос ведь не обязан на 20 порт к серверу идти? или обязан?

Добавлено в [mergetime]1135435240[/mergetime]:
опыт показывает, что нет
*


а можно вообще не с середины ?
а то что-то мне подсказывает, что можно обойтись и без изобретения велосипеда...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 20:02
Сообщение #14





Гости





ну есть ftp сервер - по религиозным соображениям - это ftpd. он обязан работать как в passive, так и в active режимах. нужно размечать траффик, чтобы потом изменять скорости передачи данных при помощи tc.

Добавлено в [mergetime]1135436579[/mergetime]:
если бы CONNMARK помечал бы оба направления соединения. было бы хорошо. или нет? RELATED ведь означает много чего. хотя, если подключен только conntrack_ftp?

Сообщение отредактировал keyboarder - 24.12.2005, 19:56
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Gall
сообщение 24.12.2005, 20:24
Сообщение #15





Группа: Пользователи
Регистрация: 18.7.2004
Из: Мосгорка
Пользователь №: 2 341



RELATED безопасен
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 20:32
Сообщение #16





Гости





Цитата(Gall @ 24.12.2005, 20:24)
RELATED безопасен
*



а лишнее не попадёт под этот фильтр? скажем, если я хочу подключиться к ftp серверу, а он - активный. тогда, если я напишу

iptables -A INPUT -s someip -m state --state RELATED -j MARK --set-mark somemark
iptables -A INPUT -s someip -m state --state RELATED -j CONNMARK --save-mark

не начнёт оно размечать и это активное data подключение?


Добавлено в [mergetime]1135438378[/mergetime]:
себе не хочется скорость ограничивать : )
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ssh
сообщение 24.12.2005, 20:47
Сообщение #17





Группа: Модераторы
Регистрация: 22.6.2004
Пользователь №: 2 239



нафик вообще эти марки, объясни неразумному ?

Добавлено в [mergetime]1135439273[/mergetime]:
у меня три первые строчки конфигурации

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

и ничо, нормально всё
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 21:08
Сообщение #18





Гости





у нас в сегменте есть любители посканировать содержимое сервера. а я там иногда распаковываю исходники ядра solaris. да и в документации у меня много файлов. хочу им скорость ограничить до одного килобайта в секунду. без этого всё прекрасно работает. а вот как это устроить - wallbash.gif

Добавлено в [mergetime]1135440008[/mergetime]:
ха. а этот дурацкий ftpd ещё не умеет отключать у себя пассивный режим. хых. тотальное извращение с этим linux'ом.

Добавлено в [mergetime]1135440106[/mergetime]:
похоже, придётся извратиться так: сделать NAT посадить сервак на внутренний ip и шейпить траффик уже на ip уровне и не мучаться.

Добавлено в [mergetime]1135440507[/mergetime]:
но тогда возникает вопрос про NAT. как правильно?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Gall
сообщение 24.12.2005, 22:35
Сообщение #19





Группа: Пользователи
Регистрация: 18.7.2004
Из: Мосгорка
Пользователь №: 2 341



Цитата(keyboarder @ 24.12.2005, 21:08)
но тогда возникает вопрос про NAT. как правильно?
*


iptables -t nat -A POSTROUTING -o ... -j MASQUERADE
iptables -A FORWARD -i ... -j DROP
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 23:23
Сообщение #20





Гости





хм. а всё равно тогда остаётся не понятным, как отделить входящее data соединение для пассивного режима.

Добавлено в [mergetime]1135448617[/mergetime]:
хотя, этому ftpd можно указать, чтобы он сидел за сорокатысячным портом. похоже, это единственный выход.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 24.12.2005, 23:39
Сообщение #21





Гости





нет. всё таки linux опять меня сделал. ftpd не умеет правильный адресс говорить клиенту для пассивного соединения. ужаснафиг.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Gall
сообщение 25.12.2005, 12:30
Сообщение #22





Группа: Пользователи
Регистрация: 18.7.2004
Из: Мосгорка
Пользователь №: 2 341



Цитата(keyboarder @ 24.12.2005, 23:23)
хм. а всё равно тогда остаётся не понятным, как отделить входящее data соединение для пассивного режима.
*


А об этом conntrack позаботится. Стандартная процедура такая: открой в INPUT порт 21, добавь в INPUT conntrack, открой в OUTPUT все. Об остальном позаботится conntrack.

Добавлено в [mergetime]1135495366[/mergetime]:
conntrack_ftp будет подслушивать общение чер5ез порт 21 и открывать и закрывать остальное по мере надобности. Достаточно открыть 21.

Добавлено в [mergetime]1135495841[/mergetime]:
Цитата(keyboarder @ 24.12.2005, 20:32)
а лишнее не попадёт под этот фильтр? скажем, если я хочу подключиться к ftp серверу, а он - активный. тогда, если я напишу

iptables -A INPUT -s someip -m state --state RELATED -j MARK --set-mark somemark
iptables -A INPUT -s someip -m state --state RELATED -j CONNMARK --save-mark

не начнёт оно размечать и это активное data подключение?
Добавлено в [mergetime]1135438378[/mergetime]:
себе не хочется скорость ограничивать : )
*


А надо ли делать так? Не проще ли написать цепь такого вида:

--state NEW -j ACCEPT
-j MARK
что-то -A ACCEPT
...
-p REJECT
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 25.12.2005, 14:58
Сообщение #23





Гости





так мне не нужны все соединения новые помечать, а только те, которые ftp data.

conntrack, конечно, все состояния правильно назначит. но от этих состояний никакой пользы нет. потому что они правильно назначатся и на другие типы ftp соединений и никак мне их не отличить будет. вообще, по уму надо было бы сделать так, чтобы с помощью conntrack'а можно было бы уникальные номера присваивать соединениям, если они RELATED. хых. вечные полумеры.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
keyboarder
сообщение 25.12.2005, 18:46
Сообщение #24





Гости





ура vsftpd умеет ограничивать набор passive портов у себя. какой диапазон разумнее всего назначить?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Gall
сообщение 26.12.2005, 00:15
Сообщение #25





Группа: Пользователи
Регистрация: 18.7.2004
Из: Мосгорка
Пользователь №: 2 341



Цитата(keyboarder @ 25.12.2005, 14:58)
conntrack, конечно, все состояния правильно назначит. но от этих состояний никакой пользы нет. потому что они правильно назначатся и на другие типы ftp соединений и никак мне их не отличить будет.
*


А если сначала рассортировать по нескольким цепям, а потом в каждой цепи сделать свои правила?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

2 страниц V   1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 21.7.2018, 22:46
Блог КАБiNET