iptables (NAT/PAT) установка для SSH & Samba

Вы заполняли свой/etc/hosts записью images.localhost?

1
задан 13 April 2017 в 15:13
3 ответа

То, что Вы назвали PAT, работало бы. У Вас должен будет быть iptables, работающий (или некоторый настраиваемый брандмауэр). Затем выполните следующие команды:

iptables -t nat -A PREROUTING -p tcp --dport 22 -p DNAT --to-destination 192.168.0.2
iptables -t nat -A PREROUTING -p tcp --dport 135:139 -p DNAT --to-destination 192.168.0.2
iptables -t nat -A PREROUTING -p tcp --dport 445 -p DNAT --to-destination 192.168.0.2
service iptables save
echo 1 > /proc/sys/net/ipv4/ip_forward

В файле/etc/sysctl.conf, измените строку:

net.ipv4.ip_forward = 0

кому:

net.ipv4.ip_forward = 1
1
ответ дан 3 December 2019 в 22:34

Хм. Ну, предполагая, что переключатель всегда направляет трафик к машине B, можно просто сделать:

route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1

Это должно сказать машину B, которые, если трафик наталкивается на 192.168.0.0/24, отсылают его eth1.

Это должно работать, и это немного легче, чем установка NAT. Необходимо будет удостовериться, что переключатель знает для маршрутизации трафика для 192.168.0.0/24 к 192.168.109.15 (Eth 0 на B).

@Ian: Маршрутизация не обязательно легка, но дело не в этом трудно также. Это - то, что делают маршрутизаторы. Принятие Вашего переключателя является просто переключателем без возможности маршрутизации, Вы не можете использовать его для установки маршрута, но у Вас должен быть маршрутизатор где-нибудь, или Вашей сетью является просто локальная LAN без доступа в Интернет.

Проверьте свои машины и узнайте, где шлюз по умолчанию (на полях Linux, можно просто ввести route без аргументов. Ваш маршрут шлюза по умолчанию является тем, который похож:

default         192.168.1.1      0.0.0.0         UG    0      0        0 eth0

Это - Ваш "базовый" маршрутизатор. это - машина, на которую все машины смотрят для выяснения, где машины на других подсетях. Это - то, где необходимо добавить маршрут, указывающий на машину B как маршрутизатор шлюза для 192.168.0.0/24 подсети.

Если можно дать мне некоторую информацию о маршрутизаторе, я могу сказать Вам, как добавить тот маршрут.

0
ответ дан 3 December 2019 в 22:34
  • 1
    That' s хорошая идея, но я упростил сетевой график, существует много машин как A, и у некоторых есть много транзитных участков, но они могут все получить доступ к B-eth0 хорошо. Как Вы заявляете, заставление трафика для 192.168.0.0/24 ЗНАТЬ к goto 192.168.109.15 было бы трудно?! Таким образом, это делает это решение не осуществимым.Спасибо. –  IanVaughan 29 April 2010 в 16:43
  • 2
    Еще раз спасибо, превосходная идея и Ваше право, которое работало бы! ЕСЛИ... Мне разрешили изменить основной маршрутизатор. Но я в сети компании и таким образом не могу сделать этого! (Я сделал, чтобы они установили маршрутизацию для моей подсети, 192.168.109.0/24-> 172.24.150.50, но я продвигал свою удачу, получая это!) Любой так или иначе, я на самом деле после другого решения для прозрачности и мобильности. Таким образом, снова, большое спасибо... –  IanVaughan 29 April 2010 в 19:26

Для SSH

На B:

#Arbitrary port
SOME_PORT=2022
iptables -t nat -I PREROUTING -p tcp --dport $SOME_PORT -j DNAT --to-destination 192.168.0.2:22
iptables -I FORWARD -p tcp --dport 22 -d 192.168.0.2 -j ACCEPT
#On a machine type A:
ssh -p $SOME_PORT

Для Samba

Действительно ли возможно смонтировать, что доли C через nfs на B затем устанавливают самбу на B? В противном случае затем можно перенаправить порты самбы:

iptables -t nat -I PREROUTING -p tcp -m multiport –dports 139,445 -j DNAT --to-destination 192.168.0.2
iptables -t nat -I PREROUTING -p udp –dport 137:138 -j DNAT --to-destination 192.168.0.2

Если самба уже работает на B, то Вы могли связать дополнительный IP-адрес на B и передать C (Вы могли сделать это для ssh также для хранения порта 22. Опасайтесь сервисов, запускающихся на этих 0.0.0.0 адресах):

ifconfig eth0:1 192.168.109.16 netmask 255.255.255.0

iptables -t nat -I PREROUTING -d 192.168.15.109.16 -p tcp --dport 22 -j DNAT --to-destination 192.168.0.2
iptables -t nat -I PREROUTING -d 192.168.15.109.16 -p tcp -m multiport –dports 139,445 -j DNAT --to-destination 192.168.0.2
iptables -t nat -I PREROUTING -d 192.168.15.109.16 -p udp –dport 137:138 -j DNAT --to-destination 192.168.0.2

РЕДАКТИРОВАНИЕ я вижу, что у Вас все еще есть проблемы; удостоверьтесь что:

  • Машине B включили IP, передающий: отзовитесь эхом 1>/proc/sys/net/ipv4/ip_forward
  • Машина C имеет маршрут назад пользователю через машину B. В противном случае затем установите правило подмены о машине B:

    iptables-t туземный-I POSTROUTING-d 192.168.0.2-p tcp - ПОДМЕНА dport 22-j

tcpdump может быть полезен для поиска и устранения неисправностей. На машине B:

#capture and display packets heading to 192.168.0.2
tcpdump -i any -p tcp ip host 192.168.0.2 and port 22
1
ответ дан 3 December 2019 в 22:34
  • 1
    маленькое примечание только для касательно: " ssh-p $SOME_PORT" = > " ssh < B_ip_addr> $SOME_PORT"-p; –  IanVaughan 29 April 2010 в 18:50

Теги

Похожие вопросы