очему UDP не знаю, мб потому что OpenVPN настроен на использование UDP.
-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -o tun0 -j ACCEPT
Пакеты из сети сервера в сеть клиента идут, всё в порядке. Осталось понять почему не идут пакеты от клиента в сеть сервера.
-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -o tun0 -j ACCEPT
Для работы с кучей есть специальные системные вызовы.
Каую конкретно утилиту из ее состава вы используете для дампа?
Не сказал бы, что там "тонны" кода. Там по одному .c файлу на каждую утилиту, имена .c файлов, соответствуют именам утилит.
Но разбираться с этим придется вам.
Судя по описанию в INSTALL запись делается с помощью flow-capture, там же для примера используется flow-print для вывода дампа на экран. Так что из всего кода вам надо изучить только src/flow-print.c.
Немного посмотрел этот файл - не смотря на то, что он довольно большой, но, похоже, что это из-за того, что он поддерживает разные версии дампа. Судя по всему сейчас актуальна версия 24. Сами функции чтения файла достаточно компактные.
PS: я flow-tools вижу впервые и никогда с ним не работал.