Пункт 4 ошибочен. Нужно прописывать это правило в цепочке forward а не input, т.к. dst-nat отрабатывает в prerouting, подменяя дст-адрес пакета, и только после этого пакет попадает в файерволл. А в остальном всё правильно
Если на каждого, то навскидку мне кажется, что можно организовать радиус авторизацию по ip и в юзер-менеджере задать тариф с нужным лимитом. Проверять сейчас уже не буду.