Как включить поддержку connection tracking NAT RTSP
sasamy
Пункты: 76914
Регистрация: 14.08.2009
Цитата
1. Добавили команду:
iptables -t raw -I PREROUTING -p tcp --dport 55451 -j CT --helper rtsp
Ошибка выполнения:
iptables: No chain/target/match by that name.
...
Чего-то не хватает в команде? или в ядре?
В ядре не хватает
make linux-menuconfig
[*] Networking support --->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
[*] Advanced netfilter configuration
Core Netfilter Configuration --->
<M> "CT" target support
IP: Netfilter Configuration --->
<M> raw table support (required for NOTRACK/TRACE)
OMu4KA
Пункты: 1057
Регистрация: 12.11.2018
Цитата
В ядре не хватает
make linux-menuconfig
[*] Networking support --->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
[*] Advanced netfilter configuration
Core Netfilter Configuration --->
<M> "CT" target support
IP: Netfilter Configuration --->
<M> raw table support (required for NOTRACK/TRACE)
1. Добавили в конфигурацию:
<M> "CT" target support
<M> raw table support (required for NOTRACK/TRACE)
2. Просмотрели
zcat /proc/config.gz:
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_IP_NF_RAW=m
3. Выполнили команды:
# modprobe nf_conntrack_rtsp ports=55451
# modprobe nf_nat_rtsp
# iptables -t raw -I PREROUTING -p tcp --dport 55451 -j CT --helper rtsp
без ошибок
4. Результат не изменился, потока данных нет... :-(
sasamy
Пункты: 76914
Регистрация: 14.08.2009
Цитата
3. Выполнили команды:
# modprobe nf_conntrack_rtsp ports=55451
# modprobe nf_nat_rtsp
попробуйте просто
modprobe nf_nat_rtsp
и потом через iptables привяхывайте на нужные порты. Если есть параметр ports имя хелпера изменяется
Код
tmpname = &rtsp_names[i][0];
if (ports[i] == RTSP_PORT) {
sprintf(tmpname, "rtsp");
} else {
sprintf(tmpname, "rtsp-%d", i);
}
https://github.com/maru-sama/rtsp-linux/blob/master/nf_conntrack_rtsp.c#L550
параметр модуля - это устаревший нерекомендуемый метод привязки
https://home.regit.org/netfilter-en/secure-use-of-helpers/
Цитата
Using the CT target to refine security
...
To declare it, we can simply do
iptables -A PREROUTING -t raw -p tcp --dport 2121 \\
-d 1.2.3.4 -j CT --helper ftp
Therefore, the use of the module options is NOT recommended anymore – please use the CT target instead.
OMu4KA
Пункты: 1057
Регистрация: 12.11.2018
Цитата
попробуйте просто
modprobe nf_nat_rtsp
и потом через iptables прихватывайте на нужные порты.
Попробовали:
# modprobe nf_nat_rtsp
# iptables -t raw -I PREROUTING -p tcp --dport 55451 --dst $REAL_IP -j CT --helper rtsp
Результат тот же :-(
OMu4KA
Пункты: 1057
Регистрация: 12.11.2018
Здравствуйте.
Проблема так и не решена. Помогите, пожалуйста...
sasamy
Пункты: 76914
Регистрация: 14.08.2009
Цитата Проблема так и не решена.
проблема в ваших настройках сети, у себя я делал без ограничения соединений (не ставил политику DROP по умолчанию)
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5541 -j DNAT --to-destination 192.168.10.1:554
iptables -t nat -A POSTROUTING --dst 192.168.10.1 -p tcp --dport 554 -j SNAT --to-source 192.168.10.2
камера 192.168.10.1 <--> 192.168.10.2 (eth1) роутер (eth0) 192.168.0.136 <--> 192.168.0.2 PC
на плате с камерой RTSP сервер из gstreamer, на PC клиент vlc, работало и без RTSP хелпера, роутер - hola duo + AEEB с ядром 3.10.17
OMu4KA
Пункты: 1057
Регистрация: 12.11.2018
Цитата на плате с камерой RTSP сервер из gstreamer
Что это значит? Нужно включить его в пакетах buildroot?
OMu4KA
Пункты: 1057
Регистрация: 12.11.2018
Выполняем следующие команды:
sysctl -w net.ipv4.ip_forward=1
modprobe -r nf_nat_rtsp
modprobe -r nf_conntrack_rtsp
modprobe nf_nat_rtsp
iptables -F
iptables -F -t nat
iptables -F -t raw
iptables -S
iptables -t nat -A PREROUTING -i $EXT_IF --dst $REAL_IP -p tcp --dport 55451 -j DNAT --to-destination $IP_CAM:554
iptables -t nat -A POSTROUTING --dst $IP_CAM -p tcp --dport 554 -j SNAT --to-source $LOCAL_IP
iptables -t nat -A OUTPUT --dst $REAL_IP -p tcp --dport 55451 -j DNAT --to-destination $IP_CAM:554
iptables -t raw -A PREROUTING -p tcp --dport 55451 --dst $REAL_IP -j CT --helper rtsp
У нас плата imx6-ind-oem, камера TrafiCam x-stream, на PC клиент vlc, работает даже без RTSP хелпера на стандартном порту 554, но нет потока данных при установке внешнего порта 55451.
sasamy
Пункты: 76914
Регистрация: 14.08.2009
Цитата Выполняем следующие команды:
....
работает даже без RTSP хелпера на стандартном порту 554, но нет потока данных при установке внешнего порта 55451.
У меня почти тоже самое за исключением непонятного правила в таблице OUTPUT - с двумя изернетами работает с любым внешним портом. Мою конфигурацию вы можете легко воспроизвести и проверить, мне без ваших модема и вашего провайдера - нет, может дело как раз в них.
OMu4KA
Пункты: 1057
Регистрация: 12.11.2018
Цитата У меня почти тоже самое за исключением непонятного правила в таблице OUTPUT - с двумя изернетами работает с любым внешним портом. Мою конфигурацию вы можете легко воспроизвести и проверить, мне без ваших модема и вашего провайдера - нет, может дело как раз в них.
Спасибо