21 порт ограничивать бесполезно - по нему идут только управляющие команды, порты для передачи данных определяются динамически (хотя для FTP можно попытаться сгородить какую-то конструкцию с CONNMARK, но не уверен, что в прошивке Олега включены все нужные для этого опции ядра). То же самое и с P2P - если управляющие соединения в некоторых сетях ещё можно как-то отловить по портам, то соединения для передачи данных таким образом в принципе не ловятся (за исключением входящих, для которых определённые порты проброшены на этом же роутере).
Существуют способы определения некоторых протоколов P2P по содержимому пакетов (патчи ipp2p и layer7 для iptables), но в прошивке Олега эти модули отсутствуют (есть, например, в OpenWrt). Кроме того, такие проверки потребляют довольно много ресурсов, и при этом всё равно не дают 100% результата (сейчас во многих протоколах P2P поддерживаются зашифрованные соединения, причём как раз с целью того, чтобы провайдер не мог их обнаружить и ограничить скорость).