The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Открытие порта в iptables"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Linux iptables, ipchains / Linux)
Изначальное сообщение [ Отслеживать ]

"Открытие порта в iptables"  +/
Сообщение от glinin (ok) on 04-Апр-13, 11:25 
Всем привет!

Не удается "пробросить" порт 3389 средствами iptables для доступа к конкретному компьютеру по RDP за NAT.

Реализовал следующий скрипт:

#!/bin/bash

LO_IF="lo"
LO_NET="127.0.0.0/8"

INT_IF="eth0"
INT_NET="192.168.3.0/24"

EXT_IF="eth1"
EXT_IP="xxx.xxx.xxx.xxx"

# Delete all existing rules:
iptables -F
iptables -F FORWARD
iptables -t nat -F
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT


echo 1 > /proc/sys/net/ipv4/ip_forward

# Allow loopback:
iptables -A INPUT -i $LO_IF -j ACCEPT
# Allow ping:
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# Allow SSH (5420):
iptables -A INPUT -p tcp --dport 5420 -j ACCEPT
# Allow HTTP(80),SSH(5420),SAMBA(139,445),MySQL(3306) and Squid(3128):
iptables -A INPUT -p tcp -i $INT_IF -m multiport --dports 80,139,445,3306,3128 -j ACCEPT
# Allow RDP (3389):
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d $EXT_IP --dport 3389 -j DNAT --to-destination 192.168.3.254:3389

# Masquerade:
iptables -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP

# Defaults:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

Не вижу открытого порта:
netstat -anp | grep 3389

Вывод iptables -L:
Chain INPUT (policy DROP)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5420
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,netbios-ssn,microsoft-ds,3306,3128
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:rdp
Chain FORWARD (policy DROP)
target     prot opt source               destination        
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        

Вывод sysctl -a | grep forward:
error: permission denied on key 'vm.compact_memory'
error: permission denied on key 'net.ipv4.route.flush'
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth1.forwarding = 1
net.ipv4.conf.eth1.mc_forwarding = 0
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.lo.forwarding = 0
error: permission denied on key 'net.ipv6.route.flush'
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth1.forwarding = 0

Прошу помощи, заранее благодарю.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Открытие порта в iptables"  +/
Сообщение от КуКу (ok) on 04-Апр-13, 14:11 
>Не вижу открытого порта:
>netstat -anp | grep 3389

А вы и не должны его видеть если у вас на локальной машине ничего не слушает этот порт.

>Вывод iptables -L:

а так же iptables -t nat -nvL

а вообще вы прибывали подключатся через проброс?


upd.  

>Chain FORWARD (policy DROP)
>target     prot opt source               destination      

правило для форварда пакетов добавьте

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Открытие порта в iptables"  +/
Сообщение от Дядя_Федор on 04-Апр-13, 15:57 
1. Запускаем тцпдамп на внешнем инфтерфейсе. Смотрим - приходят ли пакеты на внешний интерфейс.
2. Запускаем тцпдамп на внутреннем интерфейсе. Смотрим - уходят ли пакеты во внутреннюю сеть.
3. По результатам наблюдений думаем и пробуем понять причину. Ну, про то, что они в форварде должны быть разрешены - Вам уже сказали.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Открытие порта в iptables"  +/
Сообщение от glinin (ok) on 05-Апр-13, 02:29 
Спасибо, буду пробовать!
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Открытие порта в iptables"  +/
Сообщение от glinin (ok) on 06-Апр-13, 02:44 
Решение нашел, все работает:

iptables -t nat -A PREROUTING -p tcp -d  <реальный_ip> --dport 3389 -j DNAT --to-destination <ip_за_nat>:3389
iptables -A FORWARD -p tcp -i eth1 --dport 3389 -j ACCEPT
iptables -t nat -A POSTROUTING -d <ip_за_nat> -p tcp -m tcp --dport 3389 -j SNAT --to-source <реальный_ip>

Есть ли способы более оптимального подхода?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Открытие порта в iptables"  +/
Сообщение от Дядя_Федор on 06-Апр-13, 20:24 
> Есть ли способы более оптимального подхода?

Ну - не то, чтобы с точки зрения оптимальности, а с точки зрения безопасности - я бы предложил ограничить список IP, с которых разрешен вход на порт 3389. Ключом -s, естественно. Но это Вам решать, приемлем ли для Вас этот способ.


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Открытие порта в iptables"  +/
Сообщение от glinin (ok) on 07-Апр-13, 03:13 
>> Есть ли способы более оптимального подхода?
>  Ну - не то, чтобы с точки зрения оптимальности, а с
> точки зрения безопасности - я бы предложил ограничить список IP, с
> которых разрешен вход на порт 3389. Ключом -s, естественно. Но это
> Вам решать, приемлем ли для Вас этот способ.

Спасибо! :)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру