Почитал форум и в поисковых системах, но толком пошагово нигде не описывается как бороться с проблемой. Поэтому решил опубликовать свой вопрос на форуме.Проблема в следующем:
У меня есть сеть из 2 компьютеров:
1. сервер (стационарный комп., установлен debian wheezy, базовая с openssh-server)
2. клиент (ноутбук с wi-fi, Debian 7 Mint, с openssh-client)Оба компьютера подключены к роутеру который раздает интернет (серверу по витой паре, ноутбуку по wi-fi адаптеру)
ip внешний, динамический, они оба на нем.
В /etc/ssh/sshd_config следующие настройки
#### Начало #####
port 2222
Protocol 2HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_keyUsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768SysLogFacillity AUTH
LogLevel INFOLoginGraceTime 60
PermitRootLogin noAllowUsers serv45 (мой юзер serv45 на сервере, тут не разобрался кого указывать, того что коннектится на сервер или того что зарегистрирован на сервере)
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication noPermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
Banner /etc/motd.sshAcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-serverUsePAM yes
MaxAuthTries 6#### Конец #####
Пробовал по рекомендация посмотреть на сервере, что выдает:
Запрос на сервере:
root@хост.сервера:~# ssh -v внешний_ip_сервера -p 2222Ответ сервера:
OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to внешний_ip_сервера [внешний_ip_сервера] port 2222.
debug1: connect to host внешний_ip_сервера port 2222: Connection refused
ssh: connect to host внешний_ip_сервера port 2222: Connection refusedЯ пробовал коннектиться с клиента (ноутбук):
Запрос с клиента:
andrey@debian7:~# ssh -l serv45 внешний_ip_сервера -p 2222Ответ:
ssh: connect to host внешний_ip_сервера port 2222: Connection refusedРоутер я настраивал давно. Что такое проброс портов и мост не знаю, но читал об этом. Как это осуществить, если потребуется, не в курсе.
Буду признателен за пошаговую инструкцию по лечению данной проблемы.
> Connection refusedфаревол не дает
внешний_ip_сервера - что имеется ввиду?? если у вас оба компа за роутером (за натом), то айпи у них приватные, скорей всего в одной сети, но могут быть и в разных, поэтому сетевые настройки в студию
про проброс портов слабо понятно в связи с вышеописанным - пробрасывают порт снаружи в локалку, а не между хостами локалки
>> Connection refused
> внешний_ip_сервера - что имеется ввиду??IP который виден из интернета 213.*.*.*
> если у вас оба компа за роутером (за натом), то айпи у них приватные, скорей всего в одной сети, но могут быть и в разных, поэтому сетевые настройки в студию
GNU nano 2.2.6 Файл: /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).# The loopback network interface
auto lo
iface lo inet loopback# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
#ifconfigeth0 Link encap:Ethernet HWaddr 00:23:54:9a:3c:aa
inet addr:192.168.1.137 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::223:54ff:fe9a:3caa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:946 errors:0 dropped:0 overruns:0 frame:0
TX packets:469 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:100239 (97.8 KiB) TX bytes:64204 (62.6 KiB)
Interrupt:20 Memory:fe9c0000-fe9e0000lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:928 (928.0 B) TX bytes:928 (928.0 B)
>[оверквотинг удален]
> ssh: connect to host внешний_ip_сервера port 2222: Connection refused
> Я пробовал коннектиться с клиента (ноутбук):
> Запрос с клиента:
> andrey@debian7:~# ssh -l serv45 внешний_ip_сервера -p 2222
> Ответ:
> ssh: connect to host внешний_ip_сервера port 2222: Connection refused
> Роутер я настраивал давно. Что такое проброс портов и мост не знаю,
> но читал об этом. Как это осуществить, если потребуется, не в
> курсе.
> Буду признателен за пошаговую инструкцию по лечению данной проблемы.не проблему нужно лечить, а лень, которая мешает читать документацию и главное
ДУМАТЬ.Роутер у Вас раздает локальным компьютерам, адреса по DHCP из локальной сети,
допустим:стационарный: 192.168.1.10
ноутбук: 192.168.1.20допустим и там и там застартован демон sshd (openssh)
1) сохраните Вашу конфигурацию sshd_config
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.my_bad
2) верните взад стандартный конфиг
# cp /etc/ssh/sshd_config.orig /etc/sshd/sshd_config
и для начала в нем сделайте следующее:
Port 22
Port 2222UseDNS no
3) выполните reload sshd
- теперь у Вас sshd демон будет слушать два порта на всех интерфейсах: 22/tcp (родной
ssh) и 2222/tcp (дополнительный на высоком порту, обычно для обхода firewall)- конфигурация sshd_config стандартная, никаких непонятных Вам опций в конфигурации
4) проверьте что sshd слушает порты 22 и 2022
# telnet localhost 22
..приглашение openssh ...# telnet localhost 2222
... аналогично верхнему ...теперь тоже самое проделайте используя вместо localhost: 192.168.1.10 (для станционар. debian, вместо 192.168.1.10 - тот который у Вас)
аналогично можете и для ноутбука сделать.
ps. Можете и в настройках DHCP роутера, жестко привязать какие адреса будут получать
стац. и ноутбук, это может быть полезным для дальнейшего портфорвардинга извне, напримерВсе, теперь если у Вас sshd застартован и настроен как сказано выше на обоих
компьютерах: стационар/debian и ноутбук/debian, можете заходить по ssh с одного на
другой- используя стандартный порт 22/tcp
# slogin username@192.168.1.10
- используя порт 2222
# sloginp -p 2222 username@192.168.1.10
ps. Firewall на обоих компьютерах должен пропускать порты: 22 и 2222
pps. UseDNS = no чтобы не выполнять проверку в DNS на соответствие ip и hostname
AllowUsers *@127.0.0.1 *@192.168.1.20 (разрешить всем удаленным пользователям
адресов 127.0.0.1 и 192.168.1.20 заходить на мой ip по sshВсе остальное, есть в FAQ, man и различных руководствах ssh/openssh в сети
Спасибо за подробную инструкцию, обязательно все попробую.
Пока вот что выдает из того, что есть на данный момент.> 4) проверьте что sshd слушает порты 22 и 2022
> # telnet localhost 22
> ..приглашение openssh ...
> # telnet localhost 2222
> ... аналогично верхнему ...root@host:/# telnet 192.168.1.137 2222
Trying 192.168.1.137...
Connected to 192.168.1.137.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.0p1 Debian-4Удалось подсоединиться через ssh с ноутбука на сервер по ip сервера: 192.168.1.137 2222
Остается решить задачу с коннектом по внешнему ip: 213.*.*.* по которому виден сервер из вне. Спасибо за помощь.
Сегодня попытаюсь, сделать коннект на ноутбуке к серверу с другого ip и вечером отпишусь.
>[оверквотинг удален]
> Trying 192.168.1.137...
> Connected to 192.168.1.137.
> Escape character is '^]'.
> SSH-2.0-OpenSSH_6.0p1 Debian-4
> Удалось подсоединиться через ssh с ноутбука на сервер по ip сервера: 192.168.1.137
> 2222
> Остается решить задачу с коннектом по внешнему ip: 213.*.*.* по которому виден
> сервер из вне. Спасибо за помощь.
> Сегодня попытаюсь, сделать коннект на ноутбуке к серверу с другого ip и
> вечером отпишусь.чтобы снаружи была возможность заходить на домашний сервер debian, на роутере
нужно настроить portforwarding для 2222 и все.
Посмотрите настройки роутера, я специально написал про то чтобы dhcp отдавал
серверу debian конкретный статический адрес, чтобы можно было настроить проброс
> чтобы снаружи была возможность заходить на домашний сервер debian, на роутере
> нужно настроить portforwarding для 2222 и все.
> Посмотрите настройки роутера, я специально написал про то чтобы dhcp отдавал
> серверу debian конкретный статический адрес, чтобы можно было настроить пробросМне подсказали, что у меня вообще не роутер, а точка доступа CISCO Linksys E1200 и проброс не вариант.
Попробую сделать как Вы говорить.
>> чтобы снаружи была возможность заходить на домашний сервер debian, на роутере
>> нужно настроить portforwarding для 2222 и все.
>> Посмотрите настройки роутера, я специально написал про то чтобы dhcp отдавал
>> серверу debian конкретный статический адрес, чтобы можно было настроить проброс
> Мне подсказали, что у меня вообще не роутер, а точка доступа CISCO
> Linksys E1200 и проброс не вариант.Вы что, не настраивали роутер?
Не знаю кто там Вам и что наговорил:
http://kb.linksys.com/Linksys/ukp.aspx?pid=80&app=vw&vw=1&lo...
...
9. What is Port Forwarding?
Port Forwarding allows you to set up public services on your network, such as web servers, ftp servers, e-mail servers, or other specialized Internet applications. To know the difference between Port Forwarding and Port Triggering, click here. To learn how to set up Port Range Forwarding on a Linksys Wireless-N router, click here.
NOTE: You can add up to 10 application names for Port Range Forwarding. For Linksys E1200 v2, you can add up to 15 application names.
10. What is Port Triggering?
Port Triggering will forward port based on the incoming port specified. Check your software application to find out what is necessary to enter in these fields. You can set up to 10 port triggering entries. To learn how to configure Port Range Triggering in your router’s web-based setup page, click here.> Попробую сделать как Вы говорить.
Linksys Wi-Fi Router, E1200:
http://support.linksys.com/en-eu/support/routers/E1200
> Мне подсказали, что у меня вообще не роутер, а точка доступа CISCOВы не правы. Это называется не "подсказали", а "ввели в заблуждение". :) Тоска доступа он со стороны "вайфайного" пространства. С точки зрения внутренней сети - это именно роутер. Выполняющий (в итоге, если опустить нюансы) трансляцию сетевых адресов внутренней (LAN) сети в один внешний, получаемый от провайдера, IP-адрес. Ну, есть выполняющий классический NAT. Дерзайте, юноша, дерзайте. Лавр вон Вам выше крыши информации накидал. Могут возникнуть проблемы с "динамикой" на WAN-интерфейсе, но и они решаемы вполне.
> чтобы снаружи была возможность заходить на домашний сервер debian, на роутере
> нужно настроить portforwarding для 2222 и все.
> Посмотрите настройки роутера, я специально написал про то чтобы dhcp отдавал
> серверу debian конкретный статический адрес, чтобы можно было настроить пробросСпасибо большое за советы. Все получилсь с заходами по локальным ip адресам. Но вот в роутере Cisco не знаю как настроить проброс портов. Чтобы можно было зайти с внешних Ip адресов. IP у меня на сервере статический 213.ххх.ххх.ххх, локальный на сервере 192.168.1.101 (он меняется, тоже надо как-то в роутере закрепить для этой машины, не знаю как).
Прошивка в роутере у меня на английском, который шатко валко знаю. В общем что куда только интуитивно по подсказкам смогу реализовать. Сейчас изучаю в интернете советы по пробросу портов, но пока нужной информации не нашел. С настройкой форвардинга понял, но где писать в роутере не знаю. Какие порты прокидывать тоже не знаю, пологаю что 2222 который я указал в sshd_config? От стандартного 22 я отказался в целях безопасности, надеюсь это верное решение :) Буду признателен и благодарен за дальнейшую помощь. Спасибо.
Еще в iptables не знаю как разрешить фильтр порта 2222 для внешних заходов, т.е. что бы фаервол фильтровал все заходы с разных статических ip на мой сервер. Защита тоже важно, все таки сервер.
Так побегал по интернету и нашел статью про проброс портов через командную строку iptables. Очень лаконично и доходчиво. Не пробовал еще, но сейчас займусь этим. Вот сама статьяhttp://how-it.ru/public/root/307-probros_portov__port_forwar...
Я еще не разобрался в вопросе, но действую в этом направлении :)
> Так побегал по интернету и нашел статью про проброс портов через командную
> строку iptables. Очень лаконично и доходчиво. Не пробовал еще, но сейчас
> займусь этим. Вот сама статья
> http://how-it.ru/public/root/307-probros_portov__port_forwar...
> Я еще не разобрался в вопросе, но действую в этом направлении :)Вам проброс нужно сделать на E1200, зайти администратором на панель и через
менюшки настроить все что нужно.
> Вам проброс нужно сделать на E1200, зайти администратором на панель и через
> менюшки настроить все что нужно.Не подскажете куда там заходить? :) доступ к роутеру есть, а вот найти проброс где делать для меня логическая задача :)
> Не подскажете куда там заходить? :) доступ к роутеру есть, а вот
> найти проброс где делать для меня логическая задача :)Попробовать все-таки прочитать документацию (например, на сайте производителя) не пробовали? Или чтение документации (любой) - не Ваш метод?
> Попробовать все-таки прочитать документацию (например, на сайте производителя) не пробовали?
> Или чтение документации (любой) - не Ваш метод?Знаете, чтобы решить задачу 2+2, не обязательно читать про умножение и деление. У меня другая цель. Можно изучить все что связано с Линуксом и сетевыми настройками, перебирая мануалы по установочным пакетам и их настройкам, но на это нету времени. Меня интеересует только сервер с выходом из вне, желательно защищенный. Все это сугубо для личных нужд. Я не собираюсь строить из этого карьеру и в будущем заниматься профессией сисадмина. Самый короткий путь, это спросить у тех кто знает как это организовать, хотя никто не мешает лезть с гаечным ключем в машину и решать вопросы методом тыка. Я здесь потому что выбрал легкий путь. Изучение мануалов я бы оставил на потом и делать это по мере необходимости.
>[оверквотинг удален]
> У меня другая цель. Можно изучить все что связано с Линуксом
> и сетевыми настройками, перебирая мануалы по установочным пакетам и их настройкам,
> но на это нету времени. Меня интеересует только сервер с выходом
> из вне, желательно защищенный. Все это сугубо для личных нужд. Я
> не собираюсь строить из этого карьеру и в будущем заниматься профессией
> сисадмина. Самый короткий путь, это спросить у тех кто знает как
> это организовать, хотя никто не мешает лезть с гаечным ключем в
> машину и решать вопросы методом тыка. Я здесь потому что выбрал
> легкий путь. Изучение мануалов я бы оставил на потом и делать
> это по мере необходимости.Самый легкий путь:
отправьте заявку в службу поддержки Вашего ISP чтобы прислали специалиста из саппорта,
который настроит все что Вам нужно для работы, а уж Вы потом изучите.Это реально легкий путь благодаря которому, Вам не придется морочить голову другим.
> Самый легкий путь:
> отправьте заявку в службу поддержки Вашего ISP чтобы прислали специалиста из саппорта,
> который настроит все что Вам нужно для работы, а уж Вы потом
> изучите.
> Это реально легкий путь благодаря которому, Вам не придется морочить голову другим.Это уже не совсем легкий путь :) вопрос остался открытым, если смогу его решить обязательно напишу готовое решение в этой теме. Всем спасибо.
>> Самый легкий путь:
>> отправьте заявку в службу поддержки Вашего ISP чтобы прислали специалиста из саппорта,
>> который настроит все что Вам нужно для работы, а уж Вы потом
>> изучите.
>> Это реально легкий путь благодаря которому, Вам не придется морочить голову другим.
> Это уже не совсем легкий путь :) вопрос остался открытым, если смогуэто САМЫЙ ЛЕГКИЙ путь, ничего изучать и ничего читать не надо, даже пальцами
и извилинами шевелить.> его решить обязательно напишу готовое решение в этой теме. Всем спасибо.
В сети руководств по настройке роутеров Cisco-Linksys серии E - море.
Все что Вам нужно сделать, через браузер зайти на роутер, вероятно его
адрес 192.168.1.1:login: admin
password: xxxxзайти в настройки DHCP и по макам debian-server и debian-notebook - выполнить
для них выдачу всегда одних и тех же адресов из 192.168.1.
Тогда, например: debian-server всегда будет получать от DHCP 192.168.1.7
а debian-notebook будет всегда получать 192.168.1.9Ищем Games-Applications - внутри Port-Forwarding:
произвольно описываем наш сервис (который openssh на порту 2222):
openssh_2222 задаем входящий порт для forward: 2222 tcp
куда: 192.168.1.7 порт: 2222 tcpприменить.
Все, имеем форвард входящих tcp соединений по порту 2222 внутрь NAT'а
на debian-server: 192.168.1.7:2222 (порт 2222), радуемся.Ну просто "чумовое руководство", про настройки openssh отписано ранее
ps. Ждем Вашего руководства с картинками или видео :-Q
> Так побегал по интернету и нашел статью про проброс портов через командную
> строку iptables. Очень лаконично и доходчиво. Не пробовал еще, но сейчас
> займусь этим. Вот сама статья
> http://how-it.ru/public/root/307-probros_portov__port_forwar...
> Я еще не разобрался в вопросе, но действую в этом направлении :)Попробовал пробросить порты по этой статье и нифига н вышло, полез в инструкцию -h и поменял команды на такие
iptables -t nat -A PREROUTING -p tcp -m tcp -d 11.22.33.44 --dport 3389 -j DNAT --destination 192.168.0.1:3389
iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.0.1 --sport 3389 -j SNAT --source 11.22.33.44:3389
Выдает ошибки в обоих случаях:iptables v1.4.14: multiple -d flags not allowed
iptables v1.4.14: multiple -s flags not allowedМожет кто знает как поступить в данной ситуации?