dh wrote:
У меня сделано так: $IPTABLES -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn \В общем, создаю правило для rdesktop: # на RDP порт любого хоста в сети по TCP -I OUTPUT -p tcp -d 192.168.2.0/255.255.255.0 --dport 3389 -j ACCEPT # чтобы RDP удалённого хоста мог общаться с rdesktop'ом. Только с порта 3389 -I INPUT -p tcp -s 192.168.2.0/255.255.255.0 --sport 3389 -j ACCEPT Так вот в чём загвостка, вторая строчка фактически разрешает коннектиться к _любому_ порту на локальной машине. Если конечно --sport 3389. Что не есть хорошо. А проблема в том что rdesktop каждый раз задаёт разный локальный порт. for example: IP 192.168.2.149.54393 > 192.168.2.1.3389 запускаем rdesktop ещё раз: IP 192.168.2.149.53703 > 192.168.2.1.3389 Порт уже другой. Кого ругать?
--source-port 3389 \ -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT $IPTABLES -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp \ -s $IPADDR --source-port $UNPRIVPORTS \ --destination-port 3389 -j ACCEPTНо, в данном случае получается трафик с роутера в сеть, а для транзитного из сети в сеть, надо так:
$IPTABLES -A FORWARD -i $EXTERNAL_INTERFACE -p tcp -s ! $INTRANET ! --syn \ --source-port 3389 \ --destination-port $UNPRIVPORTS -j ACCEPT $IPTABLES -A FORWARD -i $LOCAL_INTERFACE_1 -p tcp \ -s $INTRANET --source-port $UNPRIVPORTS \ --destination-port 3389 -j ACCEPT Где: UNPRIVPORTS="1024:"