Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Проброс rdp через iptables
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
K13
n00b
n00b


Joined: 20 Apr 2005
Posts: 18
Location: Salekhard, Russia

PostPosted: Fri Oct 22, 2010 6:13 am    Post subject: Reply with quote

Похоже с настройками порядок, остается установить снифер на Windows машину и посмотреть как себя чувствуют пакеты от соответствующих адресов и куда они уходят.
Back to top
View user's profile Send private message
ntsite
Tux's lil' helper
Tux's lil' helper


Joined: 13 Dec 2008
Posts: 86
Location: Khabarovsk, Russia

PostPosted: Fri Oct 22, 2010 7:32 am    Post subject: Reply with quote

Вот сделал наоборот, проброс с внутренней сети... все работает...

Code:
96.123.10.1:3389                            =      73     26536 -PA-   ppp0
85.15.69.142:59102                          =      66     26398 --A-   ppp0

10.10.10.250:3389                           =      67     26416 -PA-   eth0
10.10.10.240:59102                          =      66     26506 --A-   eth0


Внешний IP изменил, он не реальный. Но до этого стоял реальный и как видно все работает. С внешнего интерфейса по каким то причинам не работает :(

Попробовал использовать Wireshark. Слушал на единственном интерфейсе с адресом 10.10.10.240 с параметром фильтра portmap.port == 3389 - ни единого пакета при подключении... Такое ощущение, что шлюз не форвардит пакет во внутреннюю сеть. Либо каким то правилом что то закрыто... Хотя с другой стороны, iptraf показывает, что уходит, но на клиентскую машину по этому порту ничего не приходит.

В общем я уже даже и не знаю в чем трабла может быть :(
Back to top
View user's profile Send private message
ntsite
Tux's lil' helper
Tux's lil' helper


Joined: 13 Dec 2008
Posts: 86
Location: Khabarovsk, Russia

PostPosted: Fri Oct 22, 2010 9:25 am    Post subject: Reply with quote

В общем проверил я таким образом... Глупо, но эффективно!

В правилах iptables я поменял местами внутренний интерфейс с внешним во всех правилах. И сделал таким образом как бы интернет внутренней, а локальную - интернетом. При попытки соединения с rdp сервером с интернета, все заработало... Вернул обратно, с локалки работает а с инета нет.

В общем я так понял у меня не верно настроен iptables... Он не форвардит пакеты или же закрывает порты...
Back to top
View user's profile Send private message
K13
n00b
n00b


Joined: 20 Apr 2005
Posts: 18
Location: Salekhard, Russia

PostPosted: Fri Oct 22, 2010 10:38 am    Post subject: Reply with quote

Возможно, попробуйте временно убрать запрещающие правила для пакетов из локалки.
Back to top
View user's profile Send private message
ntsite
Tux's lil' helper
Tux's lil' helper


Joined: 13 Dec 2008
Posts: 86
Location: Khabarovsk, Russia

PostPosted: Fri Oct 22, 2010 11:34 am    Post subject: Reply with quote

Тут убирать то если честно нечего :) Скорей добавлять правила нужно...
Вот сам скрипт:

Code:
#!/bin/sh
IPT=/sbin/iptables

$IPT -F       
$IPT -t nat -F

$IPT -P INPUT ACCEPT 
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

export LAN=eth0
export WAN=ppp0
export Lo=lo   

ADM="10.10.10.240"

$IPT -I INPUT 1 -i ${LAN} -j ACCEPT                                 
$IPT -I INPUT 1 -i lo -j ACCEPT                                     
$IPT -A INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT

$IPT -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
$IPT -A INPUT -p TCP --dport 80 -i ${WAN} -j DROP   
$IPT -A INPUT -p TCP --dport 21 -i ${WAN} -j DROP   

EXT_IF=ppp0       
EXT_IP=85.15.69.142
EXT_PORT=3389     
INT_IP=10.10.10.240
INT_PORT=3389     
$IPT -A INPUT -p TCP --dport 3389 -i ${WAN} -j ACCEPT
$IPT -t nat -A PREROUTING -d $EXT_IP -i $EXT_IF -p tcp -m tcp --dport $EXT_PORT -j DNAT --to-destination $INT_IP:$INT_PORT

$IPT -A INPUT -p UDP -i ${LAN} -d 0/0 --dport 3127 -j DROP
$IPT -A INPUT -p UDP -i ${LAN} -d 0/0 --dport 123 -j ACCEPT
$IPT -A INPUT -p UDP -i ${WAN} -d 0/0 --dport 123 -j ACCEPT

$IPT -I FORWARD -i ${LAN} -d 10.10.10.0/24 -j DROP 
$IPT -A FORWARD -i ${LAN} -s 10.10.10.0/24 -j ACCEPT
$IPT -A FORWARD -i ${WAN} -d 10.10.10.0/24 -j ACCEPT

echo -n "FW: accept connection MASQUERADE internet ADM:
for i in $ADM;                                         
do                                                     
 echo -n "$i "                                         
$IPT -t nat -A POSTROUTING -o ${WAN} -s $i -j MASQUERADE
done                                                   
echo ""                                                 

echo -n "FW: accept connection squid internet ADM: "                           
for i in $ADM;                                                                 
do                                                                             
 echo -n "$i "                                                                 
    $IPT -t nat -A PREROUTING -p tcp --dport 80 -s $i -j REDIRECT --to-port 3128
done                                                                           
echo ""                                                                         

echo 1 > /proc/sys/net/ipv4/ip_forward                             
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done


Вот в принципе и все...
Back to top
View user's profile Send private message
ntsite
Tux's lil' helper
Tux's lil' helper


Joined: 13 Dec 2008
Posts: 86
Location: Khabarovsk, Russia

PostPosted: Mon Oct 25, 2010 12:10 am    Post subject: Reply with quote

В общем все странно :) Получилось добиться нужного эффекта, но скажем так странным способом...
Предлагаю посмотреть мои правила для iptables... Я покажу ключевое правило от которого у меня все заработало. Быть может умные люди подскажут, что я делаю не так...

Code:
#!/bin/sh
IPT=/sbin/iptables

$IPT -F INPUT             
$IPT -F OUTPUT           
$IPT -F FORWARD           
$IPT -F POSTROUTING -t nat
$IPT -F PREROUTING -t nat
$IPT -F OUTPUT -t nat     

$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

export LAN=eth0
export WAN=ppp0
export Lo=lo   

ADM="10.10.10.240"

$IPT -I INPUT 1 -i ${LAN} -j ACCEPT                                         
$IPT -I INPUT 1 -i lo -j ACCEPT                                             
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT               
$IPT -A FORWARD -i ${LAN} -m state --state RELATED,ESTABLISHED -j ACCEPT   
$IPT -A FORWARD -i ${WAN} -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT           

$IPT -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
$IPT -A INPUT -p TCP --dport 80 -i ${WAN} -j DROP   
$IPT -A INPUT -p TCP --dport 21 -i ${WAN} -j ACCEPT

EXT_IF=ppp0                                         
EXT_IP=85.15.69.142                                 
EXT_PORT=3389                                       
INT_IP=10.10.10.241                                 
INT_PORT=3389                                       
$IPT -A INPUT -p TCP --dport 3389 -i ${WAN} -j ACCEPT
$IPT -t nat -A PREROUTING -d $EXT_IP -i $EXT_IF -p tcp -m tcp --dport $EXT_PORT -j DNAT --to-destination $INT_IP:$INT_PORT

$IPT -A INPUT -p UDP -i ${LAN} -d 0/0 --dport 3127 -j DROP
$IPT -A INPUT -p UDP -i ${LAN} -d 0/0 --dport 123 -j ACCEPT
$IPT -A INPUT -p UDP -i ${WAN} -d 0/0 --dport 123 -j ACCEPT

$IPT -I FORWARD -i ${LAN} -d 10.10.10.0/24 -j DROP 
$IPT -A FORWARD -i ${LAN} -s 10.10.10.0/24 -j ACCEPT
$IPT -A FORWARD -i ${WAN} -d 10.10.10.0/24 -j ACCEPT
$IPT -I FORWARD -o ${WAN} -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

$IPT -t nat -A POSTROUTING -o ${LAN} -s 85.15.69.143 -j MASQUERADE

echo -n "FW: accept connection MASQUERADE internet ADM: "
for i in $ADM;                                         
do                                                     
 echo -n "$i "                                         
$IPT -t nat -A POSTROUTING -o ${WAN} -s $i -j MASQUERADE
done                                                   
echo ""                                                 

echo -n "FW: accept connection squid internet ADM: "                           
for i in $ADM;                                                                 
do                                                                             
 echo -n "$i "                                                                 
    $IPT -t nat -A PREROUTING -p tcp --dport 80 -s $i -j REDIRECT --to-port 3128
done                                                                           
echo ""                                                                         

echo 1 > /proc/sys/net/ipv4/ip_forward                             
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done


Заработало все собственно благодаря этому правилу
Code:
$IPT -t nat -A POSTROUTING -o ${LAN} -s 85.15.69.143 -j MASQUERADE


Странно это однако :) В общем подскажите знающие люди, что я делаю не так...
Back to top
View user's profile Send private message
K13
n00b
n00b


Joined: 20 Apr 2005
Posts: 18
Location: Salekhard, Russia

PostPosted: Tue Oct 26, 2010 5:43 am    Post subject: Reply with quote

Возможно RDP порт доступен только для локальных адресов...
Back to top
View user's profile Send private message
ntsite
Tux's lil' helper
Tux's lil' helper


Joined: 13 Dec 2008
Posts: 86
Location: Khabarovsk, Russia

PostPosted: Tue Oct 26, 2010 8:30 am    Post subject: Reply with quote

Но это странно! У моего знакомого все работает без маскарада... А у меня нет...
Back to top
View user's profile Send private message
K13
n00b
n00b


Joined: 20 Apr 2005
Posts: 18
Location: Salekhard, Russia

PostPosted: Tue Oct 26, 2010 8:45 am    Post subject: Reply with quote

Я уже предлагал снифер поставить на windows машину и посмотреть куда деваются пакеты входящие/исходящие
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Thu Oct 28, 2010 10:08 am    Post subject: Reply with quote

Quote:
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

убери эту строчку или внимательно разберись с маршрутизацией
_________________
Слово „христианство“ основано на недоразумении; в сущности, был один христианин, и тот умер на кресте.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum