Внешняя сетевуха xl0
Внутреннияя rl0
Есть мысль о:
Код: Выделить всё
/sbin/ipfw add divert natd ip from 192.168.200.2 3389 to 10.43.83.13 3389 out via rl0
Код: Выделить всё
/sbin/ipfw add divert natd ip from 192.168.200.2 3389 to 10.43.83.13 3389 out via rl0
да канешно опдскажу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
Код: Выделить всё
redirect_port tcp 10.43.83.13:3389 3389
Код: Выделить всё
nat port tcp 192.168.1.10:3389 3389
Код: Выделить всё
natd_enable="YES"
natd_interface="192.168.200.2"
natd_flags="-f /etc/natd.conf"
Код: Выделить всё
same_ports yes
redirect_port tcp 192.168.200.2:3389 10.43.83.13:3389
Код: Выделить всё
/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
Код: Выделить всё
redirect_port tcp 192.168.200.2:3389 10.43.83.13:3389
Код: Выделить всё
route add -net 10.43.83.0/24 10.43.68.65
Код: Выделить всё
static_routes="olo"
route_olo="10.43.83.0/24 10.43.68.65"
Окhizel писал(а):в rc.confКод: Выделить всё
static_routes="olo" route_olo="10.43.83.0/24 10.43.68.65"
Код: Выделить всё
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
Код: Выделить всё
#!/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
Код: Выделить всё
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"
Код: Выделить всё
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