iptables и ftp
Tamahome 20 декабря, 2007 - 21:39
Необходимо отучить некоторых юзеров от постоянного тыкания в фтоп десятками потоков.. как с помошью iptables замутить ограничение на количество соединений?
»
- Для комментирования войдите или зарегистрируйтесь
Зачем iptables?Сам
Зачем iptables?
Сам сервер должен уметь. Например в proftpd для всяческих ограничений можно использовать следующие параметры конфигурации:
MaxClients, MaxClientsPerHost, MaxClientsPerUser, MaxConnectionRate, MaxHostsPerUser
для vsftpd
#ограничилка полосы для локальных пользователей в 64кбита
local_max_rate=64000
#ограничилка полосы для анонимных пользователей в 64кбита
anon_max_rate=64000
#ниже думаю тут все понятно
max_clients=3
max_per_ip=2
нужно именно
нужно именно фаерволом.. потому что ограничив количество соединение на ip они продолжают биться головой апстену..
ну и пусть
ну и пусть бьются - тебе что жалко? да и фаерволлом помоему это не сделаеш.
man iptables,
man iptables, /connlimit:
это да, но это
это да, но это нетолько для ftp - это для всех протоколов, да, есть l7-filter который может отловить именно фтп - но его установка нетривиальна и думается нужный эффект даст именно сам ftp-сервер, и справиться он сильно лучше чем firewall
-p tcp --dport 21 и все,
-p tcp --dport 21 и все, ненадо никаких l7-filter
а как быть с тем
а как быть с тем что на 21 порт в большинстве случаев только начало - данные сами по себе льются непонятно по какому порту.
если подумать то всё равно неполучиться - iptables незнает о том что там внутри протокола ftp и для того чтобы ограничить количество скачек с одного ip придётся его чем-то парсить... :)
Если все-таки
Если все-таки начать думать, то если не установится control соединение на 21 порт (как ты назвал "начало"), то и данных на другой порт возникнуть неможет.
Если ты
Если ты ограничишь их фаерволом, они не перестанут "биться головой апстену". Просто "отлуп" им будет давать не сервер ФТП, а фаервол. Тебе что с того?
Ну как бы
Ну как бы разница есть. Если контролировать коннекты демоном, то на каждый коннект все-равно будет открываться TCP сокет. Если фаерволлом, то еще SYN пакет можно рубить/реджектить. Плюсы/минусы и детальные различия лень расписывать, но если смысл в том, чтобы снизить нагрузку ограничив потоки, то разница будет только на слабой машине/очень большом кол-ве коннектов.
а как в случае с
а как в случае с ftp лишний SYN зарубить? он же уже с этого ip работает - тут нужно сам протокол как-то парсить и пробовать узнать второй это поток с этого ip или первый. Всётаки скорее всего даже с l7 невыйдет.
Зачем? Цель
Зачем? Цель ведь не создать невозможность скачивания файла, а вообще ограничить доступ к ftp. Просто лимитим коннекты на 21 порт и все. Ведь все-равно для каждой скачки (data stream) для начала нужно соединиться с 21 портом (control stream).
С одного control stream несколько data stream не открыть.
Storm пишет: Ну
ИМХО, из пушки по воробьям. Лично я не стал бы заморачиваться. Плюс надо отслеживать что за юзер, с какого хоста...
Ну дык... Вобщем, мнения я так понимаю сходятся. Это задача сервера.