URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 96010
[ Назад ]

Исходное сообщение
"Iptables - промаркировать локальный FTP трафик"

Отправлено Infox , 20-Фев-15 13:39 
Внезапно, сложная задача: промаркировать весь FTP трафик на локальной машине и зарулить его по отдельному каналу. Локальная машина - FTP клиент, коннектится ко множеству неизвестных и неподконтрольных FTP серверов.
Промаркировать нужно и active и passive ftp (в последнем, помимо соединений на порты 21 и 20, устанавливается исходящее соединение на произвольный порт от 1024 до 65535)

Решил начать сначала с passive, подход в лоб не работает:


modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
iptables -t mangle -I OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j MARK --set-mark 22
iptables -t mangle -I OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j MARK --set-mark 22
iptables -t mangle -A OUTPUT -p tcp -m helper --helper "ftp" -j MARK --set-mark 22

Не работает - т.к. маркируются только коннекты на 20 и 21 порт, коннекты пассивного FTP на порты 1024 и выше не маркируются.

Вроде простая и старая как мир задача, но уже кажется, решения у нее нет, helper не работает, а без него нереально, т.к. придется весь трафик с порта 1024 и выше маркировать, а это не годится. Как вообще локально шейпят FTP трафик? Подход то должен быть тот же.

Кто-нибудь имеет хоть какое-нибудь решение этой задачи? Очень прошу помочь.


Содержание

Сообщения в этом обсуждении
"Iptables - промаркировать локальный FTP трафик"
Отправлено _uznik_ , 20-Фев-15 13:59 
Добрый день, а если инвертировать так сказать... т.е маркировать тот трафик который возможно(80, rdp, все что угодно) и отправлять его в not_default маршрут, а все остальное будет ftp...


"Iptables - промаркировать локальный FTP трафик"
Отправлено Infox , 20-Фев-15 14:15 
> Добрый день, а если инвертировать так сказать... т.е маркировать тот трафик который
> возможно(80, rdp, все что угодно) и отправлять его в not_default маршрут,
> а все остальное будет ftp...

Спасибо, но не вариант, неизвестно, какой трафик еще будет на этом клиенте.


"Iptables - промаркировать локальный FTP трафик"
Отправлено поросёнок_петя , 20-Фев-15 15:53 
Если по фтп лазят скрипты итп так как это локальная машина можно их(скрипты) навесить на отдельного юзверя и матчить по owner-у.
Если это человек - надо думать, фтп как протокол та ещё пакость.

"Iptables - промаркировать локальный FTP трафик"
Отправлено Infox , 20-Фев-15 15:56 
> Если по фтп лазят скрипты итп так как это локальная машина можно
> их(скрипты) навесить на отдельного юзверя и матчить по owner-у.
> Если это человек - надо думать, фтп как протокол та ещё пакость.

И скрипты, которые помимо FTP еще и по другим протоколам ходят, и человек. По владельцу уже давно бы сделал, это то просто.


"Iptables - промаркировать локальный FTP трафик"
Отправлено Infox , 20-Фев-15 15:57 
Непонятно, почему ftp helper не работает? Он же вроде как раз для таких целей и задумывался.

"Iptables - промаркировать локальный FTP трафик"
Отправлено Анонимфывфыв , 20-Фев-15 15:58 
мне кажется что вы неправильно используете helper
он работает с conntrack, вот в мануале
Example: FTP helper

If your clients are authorized to access FTP outside of your network, you can add

iptables -A FORWARD -m conntrack --ctstate RELATED -m helper \\
       --helper ftp -o $OUT_IFACE -p tcp \\
       --dport 1024: -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED -m helper \\
       --helper ftp -i $OUT_IFACE -p tcp \\
       --dport 1024: -j ACCEPT


"Iptables - промаркировать локальный FTP трафик"
Отправлено Infox , 20-Фев-15 16:02 
> мне кажется что вы неправильно используете helper
> он работает с conntrack, вот в мануале
> Example: FTP helper

Читал этот мануал, пробовал и в такой комбинации, не работает. Может быть он не работает для локальных соединений в принципе, а только для маршрутизируемых? Мало что-то документации по этому хелперу.


"Iptables - промаркировать локальный FTP трафик"
Отправлено Vaso Petrovich , 22-Фев-15 07:40 
А это обязательно надо незаметно сделать не проще поставить прокси и не парится с маркировкой?

"Iptables - промаркировать локальный FTP трафик"
Отправлено Infox , 23-Фев-15 17:11 
> А это обязательно надо незаметно сделать не проще поставить прокси и не
> парится с маркировкой?

Не, прокси не подходит никак.