Страница 1 из 1

Секундный вопрос о NAT

Добавлено: 2008-12-10 12:37:57
m4rkell
Ребят подскажите плиз команду для ната: Надо что бы с сервака соединение на внешний ip 192.168.200.2 и порт 3389 перекидывалось на машину которая висит в локалке с ip 10.43.83.13 с тем же портом...

Внешняя сетевуха xl0
Внутреннияя rl0

Есть мысль о:

Код: Выделить всё

 /sbin/ipfw add divert natd ip from 192.168.200.2 3389 to 10.43.83.13 3389 out via rl0
Верно?

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 12:48:04
paradox
нет неверно))
и точно не секундный вопрос)

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 12:54:03
warzoni
m4rkell писал(а):Ребят подскажите плиз команду для ната: Надо что бы с сервака соединение на внешний ip 192.168.200.2 и порт 3389 перекидывалось на машину которая висит в локалке с ip 10.43.83.13 с тем же портом...

Внешняя сетевуха xl0
Внутреннияя rl0

Есть мысль о:

Код: Выделить всё

 /sbin/ipfw add divert natd ip from 192.168.200.2 3389 to 10.43.83.13 3389 out via rl0
Верно?
да канешно опдскажу

если вы пользуетесь natd то надо в natd.conf прописать

Код: Выделить всё

redirect_port tcp 10.43.83.13:3389 3389
если вы используйете Ppp

то надо

прописать в ppp.conf

Код: Выделить всё

nat port tcp  192.168.1.10:3389 3389
вот пользуйтесь *)

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 12:56:55
hizel
rc.conf

Код: Выделить всё

natd_enable="YES"
natd_interface="192.168.200.2"
natd_flags="-f /etc/natd.conf"
natd.conf

Код: Выделить всё

same_ports	yes
redirect_port tcp 192.168.200.2:3389 10.43.83.13:3389
firewall

Код: Выделить всё

/sbin/ipfw add divert natd ip from 192.168.200.2 3389 to any out via rl0
/sbin/ipfw add divert natd ip from any to 10.43.83.13 3389 in via rl0
это что только касается nat-а

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 13:05:30
m4rkell
Спасаибо всем громадное!!!!! :) Щас буду пробовать.

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 13:09:24
paradox
эт токо начало))
еще минимум 16 сообщений после которых он утебя заработает)

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 13:24:41
hizel
я ошибсо с

Код: Выделить всё

redirect_port tcp 192.168.200.2:3389 10.43.83.13:3389
вариант warzoni в этой строке верный ;)

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 13:32:51
m4rkell
Допер блин)

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 20:00:09
m4rkell
Начнем по порядку...эх понеслась ) куда прописать маршрут что бы автоматом был при загрузке? вот его команда:

Код: Выделить всё

route add -net 10.43.83.0/24 10.43.68.65

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 20:16:53
hizel
в rc.conf

Код: Выделить всё

static_routes="olo"
route_olo="10.43.83.0/24 10.43.68.65"

Re: Секундный вопрос о NAT

Добавлено: 2008-12-10 20:59:04
m4rkell
hizel писал(а):в rc.conf

Код: Выделить всё

static_routes="olo"
route_olo="10.43.83.0/24 10.43.68.65"
Ок :) так делал, только -net писал...ошибки выдавал...завтра попробую..

Re: Секундный вопрос о NAT

Добавлено: 2008-12-11 16:23:18
m4rkell
Как вам этот вариант?

Код: Выделить всё

cd /usr/ports/net/rinetd && make install clean
echo ‘rinetd_enable=”YES”‘ >> /etc/rc.conf
ee /usr/local/etc/rinetd.conf

Код: Выделить всё

1.2.3.4 10001 192.168.1.1 10001
1.2.3.4 - Ваш внешний IP-адрес.
10001 - Ваш внешний порт.
192.168.1.1 - компьютер внутри локальной сети.
10001 - порт компьютера внутри локальной сети.

Нашел на одном из форумов

Re: Секундный вопрос о NAT

Добавлено: 2008-12-11 17:13:52
paradox
есть еще кучу разных способов и что

Re: Секундный вопрос о NAT

Добавлено: 2008-12-11 19:17:32
RusBiT
Про rinetd и на сайте написано

Re: Секундный вопрос о NAT

Добавлено: 2008-12-11 20:01:57
m4rkell
Ну это то понятно что написанно, установил, работает....
Хочу знать мнения, конектов планирутеся не более 50...
Как rinetd себя ведет? и что то я прочел то что ftp он не поддерживает?

Re: Секундный вопрос о NAT

Добавлено: 2008-12-12 11:11:02
m4rkell
rinetd - мне не подошел айпи реалльные не кажет кто соединяетса, делаю все натом: Итого имеем наброски конфигов:

Модем с реальным IP>все входящие конекты натяться им на>192.168.200.2

Сам сервак с двумя сетевыми картами: 192.168.200.2 xl0 это внешка
И внутренньяя 10.43.68.66 rl0

Внутренняя сеть 10.43.83.0/24 в которой и находяться все компы, к сетевой файвола внутренний 10.43.68.66 rl0 конектится через маршрутизатор 10.43.68.65 он прописан статическим маршрутом в rc.conf.


FireWALL:

Код: Выделить всё

#!/bin/sh

# для начала вводим переменные - для нашего же удобства, чтобы не 
# вводить по сотне раз одно и то же, а потом искать почему не работает,
# и в итоге выяснять, что ошибся IP адресом в одном из правил

FwCMD="/sbin/ipfw"            # бинарник IPFW

LanOut="xl0"                  # Внешняя сетевуха
NetOut="192.168.200.0/24"   # внешняя сеть
IpOut="192.168.200.2"       # Внешний IP

LanIn="rl0"                   # внутренняя сетевуха
NetIn="10.43.83.0/24"        # Внутренняя сеть
ip_lan="10.43.83"            # Шаблон внутреннего адреса 
                              # нужен для ввода разрешений на инет

# сбрасываем все правила
${FwCMD} -f flush
# сбрасываем все pipe
${FwCMD} -f pipe flush
# сбрасываем очереди
${FwCMD} -f queue flush


# Разрешаем весь траффик по внутреннему интерфейсу (петле)
# Вообще я во многих местах читал что без него может ничё не заработать вообще
# и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
# так что без него и правда - никуда.
${FwCMD} add allow ip from any to any via lo0


# Делаем НАТ с внешки на внутренний адрес
${FwCMD} add divert natd ip from ${IpOut} 3389 to any out via rl0
${FwCMD} add divert natd ip from any to 10.43.83.13 3389 in via rl0

${FwCMD} add divert natd ip from ${IpOut} 5222 to any out via rl0
${FwCMD} add divert natd ip from any to 10.43.83.10 5222 in via rl0

${FwCMD} add divert natd ip from ${IpOut} 7777 to any out via rl0
${FwCMD} add divert natd ip from any to 10.43.83.10 7777 in via rl0

${FwCMD} add divert natd ip from ${IpOut} 21 to any out via rl0
${FwCMD} add divert natd ip from any to 10.43.83.9 21 in via rl0


# NAT APPLY PORTS
${FwCMD} add allow tcp from any to 10.43.83.13 3389 via ${LanOut}
${FwCMD} add allow tcp from any to 10.43.83.13 3389 via ${LanIn}

${FwCMD} add allow tcp from any to 10.43.83.10 7777 via ${LanOut}
${FwCMD} add allow tcp from any to 10.43.83.10 7777 via ${LanIn}

${FwCMD} add allow tcp from any to 10.43.83.10 5222 via ${LanOut}
${FwCMD} add allow tcp from any to 10.43.83.10 5222 via ${LanIn}

${FwCMD} add allow tcp from any to 10.43.83.9 21 via ${LanOut}
${FwCMD} add allow tcp from any to 10.43.83.9 21 via ${LanIn}

# Вводим запреты:

# рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0 (вот честно - ни
# одного пакета по этим правилам не зарубилось за всё время... Может в этом
# моё счастье? :))
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

# рубим пакеты `типа от внутренней сети, но на внешнем интерфейсе`
${FwCMD} add deny ip from ${NetIn} to any in via ${LanOut}
# рубим пакеты `типа от внешней сети, но на внутреннем интерфейсе`
${FwCMD} add deny ip from ${NetOut} to any in via ${LanIn}

# режем частные сети на внешнем интерфейсе - по легенде он у нас 
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 224.0.0.0/4 in via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}


# рубим траффик к частным сетям через внешний интерфейс
# заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}

# разрешаем некоторые типы ICMP траффика - эхо-запрос, 
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11

# Разрешаем траффик внутренней сети на внутреннем интерфейсе (входящий)
${FwCMD} add allow ip from any to ${NetIn} in via ${LanIn}
# Разрешаем траффик внутренней сети на внутреннем интерфейсе (исходящий)
${FwCMD} add allow ip from ${NetIn} to any out via ${LanIn}

# разрешаем tcp-пакеты по уже установленным соединениям
${FwCMD} add allow tcp from any to any established

# DNS - 4 правила. (если на машине есть DNS сервер - иначе надо всего два)
${FwCMD} add allow udp from any to ${IpOut} 53 in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} 53 to any out via ${LanOut}
${FwCMD} add allow udp from any 53 to ${IpOut} in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} to any 53 out via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}



# Блокируем все остальные попытки соединения с занесением в логи
${FwCMD} add deny log tcp from any to ${IpOut} in via ${LanOut} setup

${FwCMD} add allow tcp from ${IpOut} to any out via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} in via ${LanIn} setup

# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
${FwCMD} add deny ip from any to any
rc.conf:

Код: Выделить всё

firewall_enable="YES"
firewall_script="/usr/local/etc/rc.d/myfirewall"
hostname="firewall.local"
ifconfig_rl0="inet 10.43.68.66  netmask 255.255.255.128"
static_routes="cisco"
route_cisco="10.43.83.0/24 10.43.68.65"
natd_enable="YES"
natd_interface="xl0"
natd_flags="-f /etc/natd.conf"
ifconfig_xl0="inet 192.168.200.2  netmask 255.255.255.0"
defaultrouter="192.168.200.1"
/etc/natd.conf

Код: Выделить всё

same_ports   yes
redirect_port tcp 10.43.83.13:3389 3389
redirect_port tcp 10.43.83.10:7777 7777
redirect_port tcp 10.43.83.10:5222 5222
redirect_port tcp 10.43.83.9:21 21
По файрволу у меня непонятки, подскажите плиз....так можно?