насколько я понял rtorrent'у можно назначит диапазон портов в которых он может действовать, один из них он откроет для прослушивания, другие будут просто его рабочим диапазоном, за который он выходить как бы не должен
а далее я запрещаю все входящие соединения с внешних ip на диапазон портов rtorrent и еще запрещаю все исходящие соединения на внешние ip, которых источником является порт из этого же диапазона, т.е. примерно так:
Код: Выделить всё
block in on $ext_if inet proto { tcp udp } from !<local> to ($ext_if) port 6991:6999
block out on $ext_if inet proto { tcp udp } from ($ext_if) port 6991:6999 to !<local>
но проблема в том, что открывая исходящие соединения rtorrent использует порты не из своего диапазона, а произвольно, хотя (если я правильно понял) не должен выходять за пределы своего диапазона, т.е. даже для исходящих соединений использовать только порты из заданного диапазона в качестве source port
ну и, как следствие, мне удается лимитировать только входящие соединения (а основная задача -- исходящие)
куски конфига rtorrent, относящиеся к вопросу:
Код: Выделить всё
port_range = 6991-6999
random_port = no
dnt = disable
peer_exchange = no
собственно вопрос: как решить данную поблему?
возможно я что-то не понял при настройке rtorrent'а, либо нужно как-то иначе ограничивать средствами pf, или что-то третье?
PS: наложить на rtorrent патч для ipfilter не предлагать (ибо с этим патчем он все равно пропускает соединения периодически, т.е. средствами pf надежнее)