У меня три компьютера, настроенные так:
Но у меня возникают проблемы с пониманием того, как настроить /etc/network/interfaces
для каждого устройства, чтобы они могли все имеют доступ к интернету.
Я попробовал это:
Load Balancer:
Eth1 (Local)
address 192.168.1.10
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.1.254 #hub
Eth0
address 192.168.0.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255 #hub
RPi1:
address 192.168.0.20
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.0.10 #Load Balancer Eth0
gateway 192.168.1.10 #Load Balancer Eth1
RPi2:
address 192.168.0.30
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.0.10 #Load Balancer Eth0
gateway 192.168.1.10 #Load Balancer Eth1
Я проверяю, подключены ли они к Интернету, пытаясь подключиться к ним по ssh, но я могу только успешно подключиться по ssh к Load Balancer. Можете ли вы найти что-нибудь, что может вызывать проблему?
Я также пытался ssh
сделать так:
ssh -t 192.168.1.10 ssh 192.168.0.20
Но это не работает
Я перепробовал все, что вы предложили, и не было ошибок, но это не сработало! Я собираюсь попробовать сейчас с
EXTIF="eth1"
INTIF="eth0"
И наоборот, потому что я так думаю?
Итак, файл RPi1s /etc/network/interfaces
выглядит примерно так:
auto lo etho
iface eth0 inet static
address 192.168.0.20
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.10
dns-nameservers 8.8.8.8
dns-search google.com
Но, к сожалению, я не могу редактировать это сейчас, потому что я не рядом с Пи! И я не буду в течение нескольких недель.
Я пытался пинговать 8.8.8.8 перед тем, как уйти, и он сказал что-то вроде:
192.168.1.10 сеть недоступна
Снова и снова.
Также мне нужно открыть какие-либо порты на маршрутизаторе? Я настроил переадресацию портов 8051 и 8052 на 192.168.1.10.
Да, я также отредактировал файл sshd на RPi1 для прослушивания порта 8051
Я попробовал еще раз:
ssh -p 8051 pi@1.2.3.4
И я получите ошибку:
ssh_exchange_identification: Соединение закрыто удаленным хостом
Я чувствую, что мы приближаемся!
Но когда я пытаюсь локально (используя teamviewer для локального компьютера) ssh вроде:
192.168.0.20:8051
Это не работает. То, что я предполагаю, является очень плохим признаком!
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 644/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1286/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1211/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1428/cupsd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 814/smbd
tcp 0 0 0.0.0.0:38503 0.0.0.0:* LISTEN 697/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 814/smbd
tcp6 0 0 :::111 :::* LISTEN 644/rpcbind
tcp6 0 0 :::80 :::* LISTEN 1286/nginx
tcp6 0 0 :::22 :::* LISTEN 1211/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1428/cupsd
tcp6 0 0 :::445 :::* LISTEN 814/smbd
tcp6 0 0 :::54661 :::* LISTEN 697/rpc.statd
tcp6 0 0 :::139 :::* LISTEN 814/smbd
От нашего обширного разговора: Ваша установка / страдал от: Проблемы с Вашим маршрутизатором, не передавая как ожидалось; Хакеры, пытающиеся к взлому через существующее, и работа, порт 22 вперед к Вашему компьютеру подсистемы балансировки нагрузки; ufw быть включенным, мешание предложенному iptables сценарию.
Метод доступа 1: Объединение в цепочку сессии SSH:
Создают ssh сессию обычным способом от Вашего внешнего компьютера до Вашего (LB) компьютер подсистемы балансировки нагрузки. Используйте ту сессию для создания новой ssh сессии между LB и RPi:
ssh pi@192.168.0.20
или, если RPi изменили его ssh порт прослушивания согласно методу 2 ниже:
ssh -p 8051 pi@192.168.0.20
Этот метод делает НЕ , дают доступ в Интернет RPI самостоятельно.
Метод доступа 2: Цепочечный порт вперед
необходимо будет сделать перенаправление портов в двух местах (маршрутизатор и затем также на подсистеме балансировки нагрузки), чтобы быть в состоянии к ssh к RPi1 и компьютерам RPi2, и это - другая история, чем может они получать доступ к Интернету или нет. Так как Вы упоминаете, что это уже работает, я предполагаю, что перенаправление портов уже является установкой на Вашем маршрутизаторе для ssh к подсистеме балансировки нагрузки. Необходимо будет использовать два различных порта для передачи, один для каждого из RPi1 и RPi2. У меня есть произвольно выбранный порт 8051 и 8052, но Ваш может изменить их.
Однако, прежде чем Вы начнете думать о большем количестве перенаправления портов, необходимо сделать его так, чтобы RPi1 и компьютеры RPi2 могли получить доступ к Интернету. Необходимо будет превратить подсистему балансировки нагрузки в маршрутизатор. Это может быть очень простой маршрутизатор, предположив, что маршрутизатор в 192.168.1.254 заботится о материале типа брандмауэра.
Фиксируют Ваши файлы интерфейсов. Предложение (Отредактированный для отражения окончательной версии):
На LB:
# The loopback network interface
auto lo eth1 eth0
iface lo inet loopback
iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.254
dns-nameservers 8.8.8.8
dns-search google.com
iface eth0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
RPi1: согласно Вашему редактированию. RPi2: То же, за исключением IP-адреса.
Первый отключают ufw, поскольку в этом случае он не добавлял значения, и он конфликтует с тем, что мы хотим сделать:
sudo ufw disable
Теперь, вот набор правила iptables для попытки (редактирование было протестировано Maximilian, хорошо работает):
#!/bin/sh
FWVER=0.01
#
# Maximilian rule set 2015.03.08 Ver:0.01
# Port forward to RPi1 and RPi2
# and be a NAT router for them also.
#
# This may conflict with other stuff on the cluster computer,
# I don't know.
# If so, this may need to be merged somehow with whatever.
#
# The router needs to be configured to forward ports 8051
# and 8052 to 192.168.1.10
# In turn, 192.168.1.10 will forward them again with this rule set.
#
# run as sudo
#
echo "Loading Maximilian rule set version $FWVER..\n"
# The location of the iptables program
#
IPTABLES=/sbin/iptables
#Setting the EXTERNAL and INTERNAL interfaces and addresses for the network
#
EXTIF="eth1"
INTIF="eth0"
EXTIP="192.168.1.10"
INTIP="192.168.0.10"
RPI1="192.168.0.20"
RPI2="192.168.0.30"
UNIVERSE="0.0.0.0/0"
echo " External Interface: $EXTIF Internal Interface: $INTIF External IP: $EXTIP Internal IP: $INTIP RPi1: $RPI1 RPi2: $RPI2"
#CRITICAL: Enable IP forwarding since it is disabled by default
#
echo Enabling forwarding...
echo "1" > /proc/sys/net/ipv4/ip_forward
#Clearing any previous configuration
#
echo " Clearing any existing rules and setting default policy to ACCEPT.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
# Delete user defined chains
$IPTABLES -X
# Reset all IPTABLES counters
$IPTABLES -Z
# While my references do not have it, I think this is needed.
$IPTABLES -t nat -Z
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8051 -j DNAT --to-destination $RPI1:8051
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8052 -j DNAT --to-destination $RPI2:8052
#
# FORWARD rules would only be if the default policy is not ACCEPT
#
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j SNAT --to $EXTIP
echo Maximilian rule set version $FWVER done.
Проверяют выполнение ping от RPi:
ping 8.8.8.8
, Если это работает, то попытайтесь получить доступ из Интернета через ssh. Например, если внешний IP-адрес Вашего маршрутизатора 1.2.3.4:
ssh -p 8051 pi@1.2.3.4
Obvioulsy, необходимо будет установить сервер RPi1 SSH для слушания на порте 8051, и сервер RPi2 SSH для слушания на порте 8052.
, Как только Вы довольны iptables сценарием и Вы хотите, чтобы он загрузился автоматически, затем отредактировал/etc/network/interfaces и добавил пред команда (сделайте местоположение и имя файла вообще, Вы использовали):
# The loopback network interface
auto lo eth1 eth0
iface lo inet loopback
pre-up /home/maximilian/iptable
iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.254
dns-nameservers 8.8.8.8
dns-search google.com
iface eth0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
Второстепенный вопрос нападения пароля SSH:
Теперь, для Вашей проблемы хакеров, пытающихся повредить на пути нападение пароля SSH, я использую этот прием, который был чрезвычайно эффективным уже много лет. Однако обратите внимание, что другие предложат использовать различный порт и использовать ключи вместо паролей. Я делаю это этот путь, потому что мне нравится изучать нападения:
# Allow any related traffic coming back to the server in.
#
#
$IPTABLES -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m state --state ESTABLISHED,RELATED -j ACCEPT
# Secure Shell on port 22.
#
# Dynamic Badguy List. Detect and DROP Bad IPs that do password attacks on SSH.
# Once they are on the BADGUY list then DROP all packets from them.
#$IPTABLES -A INPUT -i $EXTIF -m recent --update --hitcount 3 --seconds 5400 --name BADGUY_SSH -j LOG --log-prefix "SSH BAD:" --log-level info
#$IPTABLES -A INPUT -i $EXTIF -m recent --update --hitcount 3 --seconds 5400 --name BADGUY_SSH -j DROP
# Sometimes make the lock time very long. Typically to try to get rid of coordinated attacks from China.
$IPTABLES -A INPUT -i $EXTIF -m recent --update --hitcount 3 --seconds 90000 --name BADGUY_SSH -j LOG --log-prefix "SSH BAD:" --log-level info
$IPTABLES -A INPUT -i $EXTIF -m recent --update --hitcount 3 --seconds 90000 --name BADGUY_SSH -j DROP
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 -m recent --set --name BADGUY_SSH -j ACCEPT
, Но быть осторожным, который Вы не блокируете сами, поскольку я сделал мне когда далеко в деловых поездках. Обратите внимание, что я вношу еще одно изменение. Я редактирую sshd.conf и добавляю это:
#Limit the number of bad passwords per connection to 2. Default is 6.
#Then the iptables connection counter will kick in sooner to drop
#password attack hackers.
MaxAuthTries 2
Что касается запуска, думание, что Вы не можете соединиться с RPi снаружи, не означает, что Интернет не доступен от самого RPi. Таким образом, это - "плохая" проверка.
Вы могли соединиться легкий с RPi от LB, просто ssh в к LB, и от LB ssh к любому RPi, который Вы хотите.
Вот две задачи:
a) обеспечивают доступ в Интернет для RPis (RPi-> INET)
фунт:
RPi:
b) обеспечивают доступ от Интернета/маршрутизатора до RPIs (В-> RPis)
Между В, и указывает, существующий LB, поскольку результат В не будет видеть RPis непосредственно. Для решения проблемы кластерная подсеть IP должна быть направлена LB.
Поэтому, если Вы:
позволяют передавать на брандмауэре LB
, Вы согласитесь с доступом В-> RPi. После этого Вы будете в состоянии сделать перенаправление портов к RPi от В (маршрутизаторе) непосредственно.
Все, что пути, понятые с думанием, что Ваш LB находится в середине.
Как более простой вариант, Вы могли подключить свой переключатель к маршрутизатору непосредственно и создать Вашу топологию сети в одной расположенной сети.
Подсказка:
не используют ssh в качестве тестов или netstat для порта, слушая проверка. В настоящее время у Вас есть проблемы с возможностью соединения между сетями, таким образом, traceroute, направьте команды от В-> RPi, RPi-> В, RPi->, INET даст больше информации о Вашей проблеме