Connection closed by foreign host telnet как исправить

telnet. Сканирую сеть на наличие открытых портов. Нахожу порт, пробую соединиться к ip через открытый порт, появляется telnet 46.158.5.204 4899 Trying 46.158.5.204. Connected to 46.158.5.204. Escape character is ‘^]’. Connection closed by foreign host. Такое всегда, со всеми айпи, со всеми портами. Бывает после надписи коннектед терминал просто встает и ни на что не […]

Содержание

  1. telnet.
  2. NetBeans 8.1 Remote Connections SFTP Error: Connection closed by foreign host
  3. Phpstorm. Can’t access to mysql server through SSH tunnel (connection is closed by foreign host)
  4. 4 Answers 4
  5. Telnet connection had been closed by a foreign host
  6. 4 Answers 4
  7. others-how to solve ‘Connection reset by peer’ or ‘Connection closed by foreign host’ when connecting to docker container ?
  8. 1. Purpose
  9. 2. Environment
  10. 3. The code and the problem
  11. 3.1 The RESTful web service inside the container
  12. 3.2 The Dockerfile
  13. 3.3 Build and run the docker image
  14. 3.4 The connection problem
  15. 4. Debug
  16. 4.1 Stop the old container
  17. 4.2 Start the docker container with network host
  18. 4.3 Test the connection
  19. 5. The Solution
  20. 5.1 Change the network bound policy

telnet.

Сканирую сеть на наличие открытых портов. Нахожу порт, пробую соединиться к ip через открытый порт, появляется

telnet 46.158.5.204 4899 Trying 46.158.5.204. Connected to 46.158.5.204. Escape character is ‘^]’.

Connection closed by foreign host.

Такое всегда, со всеми айпи, со всеми портами. Бывает после надписи коннектед терминал просто встает и ни на что не реагирует.Пробывал также и к локальному пк, итог тот же. В чем вообще может быть проблема?

Порт 4899, по умолчанию, закреплен за богомерзким виндовым radmin, телнет висит на 23-им порту.

я это знаю. Просто пример привел. Любые порты включая 23 приводят к тому же итогу.

Значит .bash_profile кривой на твоем пользователе.

коннекться радмином, пароли обычно вполне тривиальные (123456789 и тд)

мне нужен не радмин, а просто подключаться через телнет. данный порт просто пример.

недавно установил, сижу с root пользователя. как это можно исправить или что делать?

.bash_profile нужно смотреть на сервере это он обрубает соединение,твоя машина не причём, и не работай под рутом, это плохо.

# This script file is executed by bash(1) for login shells. By default, # it does nothing, as

/.bashrc is already sourced by /etc/profile. # # [JNZ] Modified 23-Sep-2004 # # Written by John Zaitseff and released into the public domain.

> В чем вообще может быть проблема?

в твоем непонимании отсутствия проблемы.

Сотри его нафиг и попробуй зайти.

тогда почему не заходит ни на один адресс?

ничего не изменилось

Ещё версия: таймаут на соединение в конфиге сервера прописан очень маленький, ваш IP в hosts или dns (если поднят на сервере) не добавлен, есть большая задержка между инициализацией входа и запросом имени и пароля, когда вы набираете логин или пароль сервер сбрасывает соединение по таймауту.

а в чем проблема? вы чего-то ожидавете, но результат вас не устраивает?

пишет, что соединено, а ответа от сервера ни на какую команду нет, либо сразу закрытие соединения.

опять не понял ничего. а вы что от него ожидаете? давайте конкретнее: на какой порт подключаетесь, какой сервис, как вы думаете, должен обслуживать этот порт и какие команды вы этому сервису передаете. а потом будм смотреть.

> сижу с root пользователя
ССЗБ. Жду треда «Всё сломалось, ничего не работает :(»

о это что-то новенькое! script-kiddy на моём лоре! =)

/me пошёл за чипсами

Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2011-11-08 23:39 GST Nmap scan report for 46.158.72.36 Host is up (0.23s latency). Not shown: 994 closed ports PORT STATE SERVICE 21/tcp open ftp 23/tcp open telnet 80/tcp open http 139/tcp open netbios-ssn 1720/tcp filtered H.323/Q.931 5431/tcp open park-agent Nmap done: 1 IP address (1 host up) scanned in 17.94 seconds

# telnet 46.158.72.36 23

Trying 46.158.72.36. Connected to 46.158.72.36. Escape character is ‘^]’. Connection closed by foreign host.

это нормально. смотри, ты посылаешь, скажем, серверу иксов какие-то байты, те, что ты набираешь на клавиатуре. а он ожидает поток байтов во вполне определенной последовательности, согласно тому протоколу, по которому он общается. логично, что когда он вместо принятой у него «речи» видит какую-то билиберду, он закрывает коннекшн. короче, ты просто не понимаешь что ты делаешь.

тогда как соединяться через telnet, если в любом случае ошибка?

Источник

NetBeans 8.1 Remote Connections SFTP Error: Connection closed by foreign host

I’m developing a website on a server using NetBean’s HTML5, CSS3, JavaScript and PHP support. I am trying to set up the remote connection so I don’t have to use something like Filezilla every time to transfer my files to the server. However, NetBeans is unable to connect to my server over SFTP.

I’m unable to share screenshots with the actual information because this is for work and must be kept confidential.

Host Name is in the form: subdomain.domain.com

Username is just the plain username, it’s NOT in the form username@subdomain.domain.com.

I am using a password, not a key.

I am behind my work’s proxy but I don’t think that could be the cause because NetBeans connecting to my server is the only thing that isn’t working. Filezilla works, Putty (SSH) works, Aptana remote connections (SFTP) works, all my browsers work. Even testing the proxy settings in the NetBeans general options works in NetBeans:

After entering in all of the server’s information, I click «Test Connection». After 30 seconds (the timeout), this error pops up:

I tried looking in the NetBeans log to gather more information but it doesn’t appear to be logging this error. Is there a certain debug flag I need to enable?

Like I said earlier, Filezilla and Aptana Studio can both connect to my server using the same login credentials.

Источник

Phpstorm. Can’t access to mysql server through SSH tunnel (connection is closed by foreign host)

Sorry for the mistakes I’ve made, I’m not Englishman.

I use vagrant to deploy remote virtual machine as my web server which is configured to use :private_network, ip: «192.168.10.10» . On the machine is installed Nginx, PHP, MariaDB etc.

Recently, I start to use phpstorm as my main IDE. Now I’m trying to configure access to remote database server, but I fail. Please, see the screens for additional information.

To check the ssh and mysql server access I tried the following:

MariaDB configuration file seems to be ok. I only changed bind-address in /etc/mysql/my.cnf to 0.0.0.0 .

I tried to set different configuration data, like: localhost:8080 instead of 169.168.10.10:80, double check password in SSH tunnel window, but nothing. Please, help me..

4 Answers 4

In my case I had to enable TCP forwarding in the ssh configuration of the remote host:

And also I had to grant all privileges on users connection from 127.0.0.1 (instead of just from ‘locahost’):

You don’t have to use the Vagrantfile for port forwarding, vagrant will take care of it itself. In this case, once the VM is up and running (using vagrant up) use the command vagrant ssh-config to ascertain which SSH port you should use, as running multiple VMs will mean port clashes (which vagrant takes care of, but you may not be aware of which port to use).

In PHPStorm 6 to connect to a vagrant hosted VM’s MariaDB/MySQL, open the Database Window (View > Tool Windows > Database) and add a MySQL connection using the wizard. The trick is what to put in where.

If it helps, permit me to explain in full how I connect, using an identity file (also shown in the vagrant ssh-config utility):

  1. Ensure that the VM has AllowTCPForwarding (as mentioned above) set up in /etc/ssh/sshd_config and that the ssh service has been restarted, or the VM rebooted since that change was made
  2. Once the VM is up and running, run vagrant ssh-config
  3. Note the Port number
  4. Note the IdentityFile being used

Once you have that, start PHPStorm, open your project and then the database window (View > Tool Windows > Database). You’ve probably already got a connection listed, but if not, click on the + icon, then Data Source > MySQL.

When the Data Sources and Drivers dialogue box opens, complete as outlined below:

General Tab

  • Host : 127.0.0.1
  • Port : 3306
  • Database : Name of database required to connect to
  • User : the MariaDB/MySQL user you’d normally connect with
  • Password : the MariaDB/MySQL users password

SSH/SSL Tab

  • Use SSH tunnel : enabled
  • Proxy host : 127.0.0.1 (typically it’s 127.0.0.1 but you can confirm this as it’s outlined in ssh-config’s HostName)
  • Port : (as outlined in ssh-config’s Port)
  • Proxy user : (the name of the account that you’d normally use to SSH into the VM with. Typically this is «vagrant» for vagrant boxes)
  • Auth type: Key pair (OpenSSH)
  • Private key file : (the path ssh-config’s IdentityFile)

If you understand that the SSH connection is handled first, and then the database connection, then the settings start to make a little more sense. For example, you’ll note that nowhere do you have to type in the IP of the vagrant box itself, that’s all handled through vagrant’s (automatic) port forwarding.

Источник

Telnet connection had been closed by a foreign host

The client PC IP: 10.49.46.5/24 and the server PC IP: 10.49.46.2/24 are two computers linked to the same network. When I try to create an interactive communication between these two computers using the command telnet , I get the following:

The server xinetd.conf are as follows:

The server telnet.config are as follows:

The TCPWrapper hosts.allow are:

The TCPWrapper hosts.deny are:

  1. I checked ssh and it is running on port 22 .
  2. I checked /var/log/message and had found that the command xinetd starts and then exits the telnet immediately.
  3. I checked that iptables do not drop telnet package using the command: iptables -L

Would you please help me figure out what is the problem and how can I fix it?

4 Answers 4

This means that you have successfully established a TCP connection to the remote daemon. What daemon? The xinetd one which serves as a hub. Now that you are connected, xinetd attempts to launch the specific service ( telnet ).

This means that launching the telnet service failed. You may want to add debugging options to the telnetd command line and read xinetd logs to see what exactly failed.

You appear to be running the BusyBox version of telnetd . Contrary to classic versions of telnetd , the one provided with Busybox is a standalone daemon which needs a -i option to interface with inetd (services launched by inetd have a specific interface incompatible with a standalone daemon: they must not open and listen to sockets, they must communicate with the client through stdin/stdout).

Источник

others-how to solve ‘Connection reset by peer’ or ‘Connection closed by foreign host’ when connecting to docker container ?

1. Purpose

In this post, I would demo how to solve the connection errors when connecting to docker container.

2. Environment

  • Docker Server Version: 20.10.2
  • Kernel Version: 4.15.0-128-generic Operating System: Ubuntu 18.04.5 LTS OSType: linux Architecture: x86_64

3. The code and the problem

3.1 The RESTful web service inside the container

I am developing a simple flask web service(RESTful) for test purpose, this little app just do the following two things:

  • Exporting a web service at localhost’s port 8080
  • When user access the url ‘http://localhost:8080’, it should return a hello world json string

The core code is as follows:

app1.py

If you don’t know flask-restful, here is the simple introduction:

Flask-RESTful is an extension for Flask that adds support for quickly building REST APIs. It is a lightweight abstraction that works with your existing ORM/libraries. Flask-RESTful encourages best practices with minimal setup. If you are familiar with Flask, Flask-RESTful should be easy to pick up.

Just install it as follows:

More information about flask-restful can be found here.

When I run it as follows:

I got this result, it indicates that the app is running.

Then we test the service via curl command:

3.2 The Dockerfile

Now I want to package the app as a docker image, and then run it as a docker container, so I must write a dockerfile to construct the docker image.

First, we define a file named requirements.txt to define the dependency requirements for pip command , which would be used inside the container.

requirements.txt

Dockerfile

In the above Dockerfile, we have done these steps:

  • This docker image is based on python:3.6-buster, which is an offical python image
  • The ‘WORKDIR’ defines our working directory inside the docker container, docker would create a directory named /app inside the docker container, and all the files copied would be put to this directory
  • Then we copy the requirements.txt and do the ‘pip install -r …’ to install the python dependencies for the app, the ‘-r’ option of pip is explained as follows:
  • Then we copy the app1.py to our working directory
  • At last, we execute the python command to start our application

3.3 Build and run the docker image

Run the ‘docker build ‘ command in the project’s root directory:

The above command build a docker image named ‘app1’.

Then we run the docker image :

The above docker command runs the image ‘app1’, create a container named ‘app1’, exported the network port 8080 to host port 8080.

3.4 The connection problem

After running the docker container, we can verify it’s running:

Check the logs of the service inside the container:

Now we use ‘curl’ to connect to the docker container:

We get this error or exception:

Or if we try to telnet the service’s port, we get this :

Why did this happen? I think it should run, but it does not work!

4. Debug

I am suspecting that the docker network caused the problem, so I’d like to change the docker network to ‘host’ , by default, docker use the ‘bridge’ network :

  • bridge : The default network driver. If you don’t specify a driver, this is the type of network you are creating. Bridge networks are usually used when your applications run in standalone containers that need to communicate. See bridge networks.
  • host : For standalone containers, remove network isolation between the container and the Docker host, and use the host’s networking directly. See use the host network.

If we switch to ‘host’ network, the service is bound to the host’s network interface directly.

4.1 Stop the old container

We stop the old container as follows:

4.2 Start the docker container with network host

4.3 Test the connection

It works, so the problem is identifed, the service is working on its own, but it can not be accessed from outside(docker network bridge), so ,we should change our app, it should bind to ‘0.0.0.0’ instead of ‘localhost’.

0.0.0.0 has a couple of different meanings, but in this context, when a server is told to listen on 0.0.0.0 that means “listen on every available network interface”. The loopback adapter with IP address 127.0.0.1 from the perspective of the server process looks just like any other network adapter on the machine, so a server told to listen on 0.0.0.0 will accept connections on that interface too.

5. The Solution

5.1 Change the network bound policy

Now we should bind to the network interface ‘0.0.0.0’.

Источник

return

30 октября 2012, 16:52

like

19
views
20663
message
61



Сегодня мы обратимся к части немного скучной, но важной для начинающих: как подключиться, поставить или сбросить пароль, войти по telnet. Также рассмотрим существующие программы — эмуляторы ciscо и интерфейс оборудования.

Как и обещали, в этот раз всё по-взрослому: с видео.

Под катом то же в текстовой и чуть более подробной форме.

Итак, вот они приехали — заветные коробки с надписью Cisco на борту.

Среда

Начнём с того, в какой среде будем работать.

В данный момент есть два известных пакета программ, позволяющих моделировать сеть, построенную на оборудовании Cisco:

  • Цисковский же продукт Packet Tracer, который по идее свободно не распространяется. Это эмулятор и имеет лишь некоторые функции Cisco IOS. Вообще говоря, он сильно ограничен и многие вещи в нём реализованы лишь отчасти. Никаких тонких настроек. С другой стороны к настоящему моменту версия 5.3.2 поддерживает создание GRE-туннелей, протоколов динамической маршрутизации (и в их числе даже BGP!). Притом он очень прост в освоении и имеет в своём арсенале сервера (FTP, TFTP, DHCP, DNS, HTTP, NTP, RADIUS, SMTP, POP3), рабочие станции и свичи. Сейчас уже есть под Linux, хотя в былые времени он прекрасно запускался и из-под Wine.
  • Распространяемый по лицензии GNU GPL симулятор GNS3. В этом пакете необходимо загружать настоящие образы Cisco IOS. С одной стороны это плюс – вы работаете с настоящим интерфейсом cisco и ограничены лишь своей фантазией, существующими стандартами и производительностью рабочей станции, с другой, во-первых, эти IOS ещё нужно суметь достать, во-вторых, это более сложный продукт для понимания, и в-третьих, в нём есть только маршрутизаторы и «типа» коммутаторы.

Я считаю, что для знакомства с принципами лучше начать всё же с Packet Tracer’a, а потом переходить на тяжёлую артиллерию по мере надобности. Все мы не дети малые, где взять то, что нам нужно, рассказывать не будем.

Способы подключения

В Packet Tracer’e управлять оборудованием можно следующими способами:

  • GUI
  • CLI в окне управления
  • Терминальное подключение с рабочей станции через консольный кабель
  • telnet

Интерфейс последних трёх идентичный – отличается лишь способ подключения. Разумеется, GUI – не наш метод.

В реальной же жизни доступны:

  • Telnet/ssh
  • Терминальное подключение с рабочей станции через консольный кабель
  • Web-интерфейс (Cisco SDM).

Последний вариант даже не упоминайте в приличном обществе. Даже если вы адепт мыши и браузера, очень не советую.

На своём примере при работе с другим оборудованием я сталкивался с тем, что настроенное через веб не работает. Хоть ты тресни, но не работает. А у того же длинка вообще был баг в одной версии прошивки для свичей: если изменить настройки VLAN в веб-интерфейсе из под линукс, то свич становится недоступным для управления. Это официально признанная проблема).

Телнет – стандартная, всем известная утилита, как и ssh. Для доступа к cisco по этим протоколам нужно настроить пароли доступа, об этом позже. Возможность использования ssh зависит от лицензии IOS.

Управление по консоли

Ну вот принесли вы маршрутизатор, распечатали, питание на него дали. Он томно зашумел кулерами, подмигивает вам светодиодами своих портов. А чего дальше-то делать?

Воспользуемся один из древнейших и нестареющих способов управления практически любым умным устройством: консоль. Для этого вам нужен компьютер, само устройство и подходящий кабель. Тут каждый вендор на что горазд. Какие только разъёмы они не используют: RJ-45, DB-9 папа, DB-9 мама, DB-9 с нестандартной распиновкой, DB-25.

У циски используется разъём RJ-45 на стороне устройства и DB-9 мама (для подключения к COM-порту) на стороне ПК.

Консольный порт выглядит так: Консольный порт cisco Консольный порт cisco Всегда выделен голубым цветом. С недавних пор стало возможным управление по USB.

А это консольный кабель cisco: Консольный кабель cisco Раньше он поставлялся в каждой коробке, теперь зачастую стоит отдельных денег. В принципе подходит аналогичный кабель от HP.

Проблема в том, что современные ПК зачастую не имеют COM-порта. На выручку приходят часто используемые конвертеры USB-to-COM: Либо редко используемые для этих целей конвертеры RS232-Ethernet После того, как вы воткнули кабель, определили номер COM-порта, для подключения можно использовать Hyperterminal или Putty в Виндоус и Minicom в Линукс.

Управление через консоль доступно сразу, а вот для телнета нужно установить пароль. Как это сделать?

Обратимся к PT.

Начнём с создания маршрутизатора: выбираем его на панели внизу и переносим на рабочее пространство. Даём какое-нибудь название c2811 Что бы вы делали, если бы это был самый взаправдашний железный маршрутизатор? Взяли бы консольный кабель и подключились им в него и в компьютер. То же самое сделаем и тут: Packet tracer console Packet tracer console Кликом по компьютеру вызываем окно настройки, в котором нас интересует вкладка Desktop. Далее выбираем Terminal, где нам даётся выбор параметров Впрочем, все параметры по умолчанию нас устраивают, и менять их особо смысла нет.

Если в энергонезависимой памяти устройства отсутствует конфигурационный файл (startup-config), а так оно и будет при первом включении нового железа, нас встретит Initial Configuration Dialog prompt: cisco interface Вкратце, это такой визард, позволяющий шаг за шагом настроить основные параметры устройства (hostname, пароли, интерфейсы). Но это неинтересно, поэтому отвечаем no и видим приглашение

Router>

Это стандартное совершенно для любой линейки cisco приглашение, которое характеризует пользовательский режим, в котором можно просматривать некоторую статистику и проводить самые простые операции вроде пинга. Ввод знака вопроса покажет список доступных команд: Грубо говоря, это режим для сетевого оператора, инженера первой линии техподдержки, чтобы он ничего там не повредил, не напортачил и лишнего не узнал.

Гораздо большие возможности предоставляет режим с говорящим названием привилегированный. Попасть в него можно, введя команду >enable. Теперь приглашение выглядит так:

Router#

Здесь список операций гораздо обширнее, например, можно выполнить одну из наиболее часто используемых команд, демонстрирующую текущие настройки устройства ака “конфиг” #show running-config. В привилегированном режиме вы можете просмотреть всю информацию об устройстве.

Прежде, чем приступать к настройке, упомянем несколько полезностей при работе с cisco CLI, которые могут сильно упростить жизнь:

  • Все команды в консоли можно сокращать. Главное, чтобы сокращение однозначно указывало на команду. Например, show running-config сокращается до sh run. Почему не до s r? Потому, что s (в пользовательском режиме) может означать как команду show, так и команду ssh, и мы получим сообщение об ошибке % Ambiguous command: «s r» (неоднозначная команда).
  • Используйте клавишу Tab и знак вопроса. По нажатию Tab сокращенная команда дописывается до полной, а знак вопроса, следующий за командой, выводит список дальнейших возможностей и небольшую справку по ним (попробуйте сами в PT).
  • Используйте горячие клавиши в консоли:

    Ctrl+A — Передвинуть курсор на начало строки

    Ctrl+E — Передвинуть курсор на конец строки

    Курсорные Up, Down — Перемещение по истории команд

    Ctrl+W — Стереть предыдущее слово

    Ctrl+U — Стереть всю линию

    Ctrl+C — Выход из режима конфигурирования

    Ctrl+Z — Применить текущую команду и выйти из режима конфигурирования

    Ctrl+Shift+6 — Остановка длительных процессов (так называемый escape sequence)

  • Используйте фильтрацию вывода команды. Бывает, что команда выводит много информации, в которой нужно долго копаться, чтобы найти определённое слово, например. Облегчаем работу с помощью фильтрации: после команды ставим |, пишем вид фильтрации и, собственно, искомое слово(или его часть). Виды фильтрации (ака модификаторы вывода):

    begin — вывод всех строк, начиная с той, где нашлось слово,

    section — вывод секций конфигурационного файла, в которых встречается слово,

    include — вывод строк, где встречается слово,

    exclude — вывод строк, где НЕ встречается слово.

Но вернемся к режимам. Третий главный режим, наряду с пользовательским и привилегированным: режим глобальной конфигурации. Как понятно из названия, он позволяет нам вносить изменения в настройки устройства. Активируется командой #configure terminal из привилегированного режима и демонстрирует такое приглашение:

Router(config)#

В режиме глобальной конфигурации не выполняются довольно нужные порой команды других режимов (тот же show running-config, ping, etc.). Но есть такая полезная штука, как do. Благодаря ей мы можем, не выходя из режима конфигурирования, выполнять эти самые команды, просто добавляя перед ними do. Примерно так:

Router(config)#do show running-config

Настройка доступа по Telnet

Из этого-то режима мы и настроим интерфейс для подключения компьютера через telnet:

Команда для перехода в режим конфигурации интерфейса FastEthernet 0/0:

Router(config)# interface fa0/0

По умолчанию все интерфейсы отключены (состояние administratively down). Включаем интерфейс:

Router(config-if)#no shutdown

Настроим IP-адрес:

Router(config-if)#ip address 192.168.1.1 255.255.255.0

shutdown — означает “выключить интерфейс”. Соответственно, если вы хотите отменить действие команды, то используйте слово no перед ней. Это правило общее для CLI и применимо к большинству команд.

Подключаемся. Для этого надо использовать кроссоверный кабель. (Хотя в реальной жизни это зачастую уже необязательно – все карточки умеют понимать приём/передачу, однако встречаются ещё маршрутизаторы, порты которых не поднимаются при использовании неправильного типа кабеля — так что будьте внимательны) crossover cable Настраиваем IP-адрес компьютера через Desktop. IP адрес И пробуем подключиться, выбрав Command Prompt в панели Desktop: Packet Tracer telnet Как и ожидалось, циска не пускает без пароля. В реальной жизни обычно выдаёт фразу “Password required, but none set”

Пароли

Подключение по telnet или ssh называется виртуальным терминалом (vt) и настраивается следующим образом:

Router(config)#line vty 0 4 Router(config-line)#password cisco

Router(config-line)#login

0 4 — это 5 пользовательских виртуальных терминалов=telnet сессий.

Этого уже достаточно, чтобы попасть в пользовательский режим, но недостаточно для привилегированного: Packet Tracer telnet Настроим пароль для enable-режима:

Router(config)#enable secret test

Packet Tracer Чем отличается secret от password? Примерно тем же, чем ssh от telnet. При настройке secret пароль хранится в зашифрованном виде в конфигурационном файле, а password – в открытом. Поэтому рекомендуется использование secret.

Если вы всё-таки задаёте пароль командой password, то следует применить так же service password-encryption, тогда ваш пароль в конфигурационном файле будет зашифрован:

line vty 0 4 password 7 08255F4A0F0A0111

Один мой знакомый рассказал мне историю:

Стоял он как-то курил возле одного из своих узлов, находящемся в жилом доме. С сумкой для инструментов, ноутбук в руках. Вдруг подходит двое алкашей с пакетом и предлагают купить, раскрывая пакет и показывая какой-то свич. Просят 500 рублей. Ну он купил. По меткам и модели свича парень сделал вывод какому провайдеру он принадлежит. Пришёл домой, начал ковырять — телнет закрыт, консоль запаролена. Слил конфиг по snmp. Пароли в открытом виде хранятся, имя с головой выдаёт провайдера. С их админом он знаком лично, позвонил ему вместо “Здрасьти” выдал логин и пароль в трубку. Слышно было, как скрипел мозг первые секунд 20: везде аксес-листы, авторизация, привязка к мак-адресу. Как?! В общем, всё хорошо, что хорошо кончается.

Немного об этом можно почитать здесь. Ну или чуть более по-русски, тут.

Хотим обратить ваше внимание:

сейчас принятно настраивать доступы не через виртуальные терминалы, а командами #username и #aaa new-model. В версии PT 5.3.2 они уже есть и вполне работают.

Для этого нужно выполнить:

Router(config)#aaa new-model

Router(config)#username admin password 1234

Первая команда служит для активации новой модели ААА (Authentication, Authorization, Accounting). Это нужно для того, чтобы была возможность использовать для аунтетификации на устройстве RADIUS или TACACS сервер. Если отдельно это не настроено, то будет использоваться локальная база пользователей, задаваемая командой username.

Будьте внимательны: приоритет команды aaa new-model выше, чем команд виртуальных терминалов и поэтому даже несмотря на то, что у вас настроен password в режиме line vty, если у вас не будет пользователей в локальной базе, зайти на устройство удалённо уже не получится.

Теперь при подключении маршрутизатор запросит имя пользователя и соответствующий ему пароль.

При более глубокой настройке line vty существует одна опасность.

Есть такой параметр: access-class. Его настройка позволяет ограничить IP-адреса, с которых возможно подключение. И вот однажды я, как умная маша, решил заняться безопасностью в сети и на всём почти оборудование понаставил эти аксес-листы, чтобы комар не пролетел. В один прекрасный момент пришлось выехать в поле и в тот день я проклял свою аккуратность – никуда не мог достучаться – малейшей лазейки не оставил. В общем будьте с этой командой внимательны или оставляйте для себя лазейки.

При работе с access-list’ами и прочими опасными вещами, неправильная настройка которых может лишить вас доступа к устройству, можно использовать замечательную команду reload in min, где min время в минутах. Эта команда перезагрузит устройство по истечении указанного времени, если ее не прервать командой reload cancel. Т.е. схема работы такова: вы удаленно копаете что-то, что может в теории (закон Мерфи не забываем) прервать ваш сеанс связи с устройством. Сохраняем текущий (рабочий) конфиг в startup-config (он используется при загрузке), ставим reload in 15, вводим ключевую команду, относительно которой у нас сомнения ;-), и получаем обрыв связи, худшие опасения оправдались. Ждем 15 минут, устройство перегружается с рабочим конфигом, коннект — вуаля, связь есть. Либо (если связь не прервалась) проверяем, что все работает, и делаем reload cancel.

Если вы хотите ограничить паролем доступ через консольный порт, вам понадобятся команды

Router(config)#line console 0

Router(config-line)#login

Router(config-line)#password cisco

Privilege Level

Ещё один важный момент, которому в статьях уделяют мало внимания: privelege level.

Как понятно из латинского звучания — это уровень прав пользователя. Всего существует 16 уровней: 0-15.

privilege level 0 — это команды disable, enable, exit, help и logout, которые работают во всех режимах

privilege level 1 — Это команды пользовательского режима, то есть как только вы попадаете на циску и увидите приглашение Router> вы имеете уровень 1.

privilege level 15 — Это команды привилегированного режима, вроде, как root в Unix’ах

Пример1

Router(config)#line vty 0 4

Router(config-line)privilege level 15

После входа на маршрутизатор при такой настройке вы сразу увидите Router# со всеми вытекающими правами.

Все уровни со 2 по 14 настраиваются вручную. То есть, например, вы можете дать добро пользователю с privelege level 2 на выполнение команды show running-config

Пример2

Настроить права для конкретного пользователя поможет уже упомянутая прежде команда username

Router(config)#username pooruser privilege 2 secret poorpass

Router(config)#privilege exec level 2 show running-config

Router(config)#enable secret level 2 l2poorpass

В первой строке назначаем уровень прав пользователю, во второй команду, разрешенную для этого уровня, в третьей задаём пароль для входа в привилегированный режим с этим уровнем.

После этого из пользовательского режима вы можете выполнить команду enable 2 и введя пароль l2poorpass попасть в привилегированный режим, в котором будут доступны все команды уровня 1 + команды уровня 2. Для чего это может быть нужно? В российских реалиях практически ни для чего, потому что обычно на устройство нужно заходить инженерам сразу с полными правами. Ну разве что 15-й уровень ставят, чтобы двойную аутентификацию не проходить. А все другие уровни опять же для того, чтобы персонал младшего состава (техподдержка, например) мог зайти и промониторить какие-то параметры или настроить некритичную функцию.

SSH

Нельзя не упомянуть о том, что telnet — протокол незащищённый и передаёт пароль и данные в открытом виде. С помощью любого анализатора пакетов можно вычислить пароль. Поэтому крайне рекомендуем использовать ssh — любые устройства cisco с не самой урезанной прошивкой способны выступать ssh-сервером.

Следующий набор команд позволит вам включить ssh и отключить доступ по telnet:

Router(config)#hostname R0

R0(config)#ip domain-name cisco-dmn

R0(config)#crypto key generate rsa

R0(config)#line vty 0 4

R0(config-line)#transport input ssh

Имя хоста должно отличаться от Router, обязательно должно быть задано имя домена. Третьей строкой генерируется ключ и далее разрешается только ssh. Длина ключа должна быть более 768 бит, если вы желаете использовать ssh версии 2, а вы желаете этого. Всё.

Ещё одно финальное внимание новичкам: не забывайте о команде write memory — это сохранение текущей конфигурации. Впрочем, достаточно два раза обжечься, забыв сохранить, чтобы навсегда заработать иммунитет к этому — кто кодил по ночам или писал курсовую, тот поймёт.

Используя PT, мы будем настраивать оборудование не через терминал или телнет, а непосредственно через CLI устройства, которое вызывается кликом по иконке роутера — так удобнее: CLI

Ну и на сладенькое: сброс пароля

Так, а что же делать, если на стол легла вам бушная циска с неизвестным паролем или вы очень невовремя забыли его? Вообще-то это многократно описано и легко гуглится, но повторить это необходимо. Практически на любом сетевом устройстве есть возможность сбросить пароль, имея физический доступ. Если сделать это невозможно или это отдельная платная услуга, то скорее всего в ваших руках находится какая-то русская поделка (не в обиду, конечно, нашим производителям, но дважды я такие строки читал в документации:))

Итак, cisco:

  1. Подключаетесь к устройству консольным кабелем,
  2. Отправляете его в ребут (хоть по питанию, хоть командой #reload)
  3. Когда на экране побежит такая строчка ########…###, означающая загрузку образа (40-60 секунд после включения), необходимо отправить сигнал Break. Как это сделать в разных программах читать тут. Вы попадаете в режим ROMMON.
  4. В этом режиме введите команду: confreg 0x2142, она заставит устройство игнорировать startup-config при загрузке.
  5. Введите reset для перезагрузки
  6. После загрузки running-config будет девственно чистым, а startup-config содержит по-прежнему последнюю сохранённую конфигурацию. Сейчас самое время поменять пароль или слить конфиг.
  7. Самое важное: верните обратно регистры:

    Router(config)#config-register 0x2102

    Если вы этого не сделаете, то вся ваша конфигурация будет актуальна до первого ребута) И хорошо, если это устройство стоит рядом, и вы вспомните, что накосячили. Мне не повезло)

В следующей статье мы обратимся к вланам и локальной сети. Обязательно к прочтению: OSI, VLAN.

Незарегистрированные читатели Хабрахабра могут задать свои вопросы в ЖЖ.


Благодарности

Хочу поблагодарить Максима aka gluck за помощь в написании этой статьи.


Автор
eucariot — Марат Сибгатулин (inst, tg, in)


Оставайтесь на связи

Пишите нам: info@linkmeup.ru
Канал в телеграме: t.me/linkmeup_podcast
Канал на youtube: youtube.com/c/linkmeup-podcast
Подкаст доступен в iTunes, Google Подкастах, Яндекс Музыке, Castbox
Сообщество в вк: vk.com/linkmeup
Группа в фб: www.facebook.com/linkmeup.sdsm
Добавить RSS в подкаст-плеер.
Пообщаться в общем чате в тг: https://t.me/linkmeup_chat

Поддержите проект:

like

19
views
20663
message
61

61 коментарий

Ещё статьи

Задача №8.9

Схема: Условие: ЛинкМиАп использует статические маршруты к провайдерам (не BGP).Конфигурация. Маршрутизаторы провайдеров также не используют BGP.Задание:Настроить маршрутизацию таким образом, чтобы HTTP-трафик из локальной сети 10.0.1.0 шел через Балаган Телеком, а …

linkmeup и Клиппер. Собес. #2. Junior engineer в Ent

Уже в ближайшее воскресенье будет первый собес с Клиппером. И он начинает отбор кандидатов на другую позицию: Junior engineer в Ent. Ориентировочно интервью состоится 25.02. Если вы чувствуете в себе …

Анонс подкаста. Выпуск 43

Когда: 18.09.2016 15:00 МСК. Кто: Олег Фиксель. Про что: Configuration Deployment, Ansible, SDN. Онлайн Трансляция Чатик переехал в телеграм — спрашиваем и обсуждаем теперь здесь: telegram.me/linkmeup_chat

like

0

6033


7

11 сентября 2016

https://technicalconfessions.com/images/postimages/postimages/_387_1_Conneciton closed by foreign port.png

You can see that the connection is available (this is also apparent when the VM is ping’d). When telneting,
you can see that the connection to the VM was successful however maintaining that connection on 7001 was unsuccessful,
thus closing the foreign port. The telnet response message connection on 7001 is Connection closed by foreign host.

telnet 172.16.101.155 7001
Trying 172.16.101.155
Connected to 172.16.101.155.
Escape character
Connection closed by foreign host.

This is caused when trying to bind to port 7001, it means something has to use such port. If nothing is using such port then you cannot connect to it, which in this case it’s weblogic admin server.

The likely issue

You can investigate the issue by running following command within terminal, netstat -nat | grep LISTEN

# netstat -nat | grep LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:38972               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 ::ffff:127.0.0.1:7001       :::*                        LISTEN  (Available Locally!)    
tcp        0      0 ::1:7001                    :::*                        LISTEN  (Available Locally!)
tcp        0      0 ::1:25                      :::*                        LISTEN      
tcp        0      0 :::23                       :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN   

You can see that there’s 2 lines that are listening on 7001 though both are on a localhost address (127.0.0.1). In order to bind to the port, you need your private IP and 7001 to be available.

SOLUTION

You need to alter the iptables to allow port 7001 to be accepted. In order to alter the iptables, you need to log into terminal as root.
Once logged in, perform the following command:

[root@localhost bin]# sudo iptables -I INPUT -p tcp --dport 7001 -j ACCEPT

The command below don’t work unless you enter in the sudo prefix. Then remember to save your changes

[root@localhost bin]# /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Once you’ve done that, you need to either restart the iptables or to restart the VM instance. The command below allows you to restart te iptables services

/etc/init.d/iptables restart

Confirm that there’s a service that’s listening on that port

[oracle@localhost OIM11gR2PS2_domain]$ netstat -anp | grep 7001
tcp        0      0 fe80::20c:29ff:fe5e:26:7001 :::*                        LISTEN      3667/java           
tcp        0      0 ::1:7001                    :::*                        LISTEN      3667/java           
tcp        0      0 ::ffff:127.0.0.1:7001       :::*                        LISTEN      3667/java           
tcp        0      0 ::ffff:172.16.101.155:7001  :::*                        LISTEN      3667/java   

The last line here has not been included, which will now allow external connections on 7001.

When Weblogic console is down…

When Weblogic console is down, the port numbers will not be listening to bind against…

[oracle@localhost OIM11gR2PS2_domain]$ netstat -anp | grep 7001
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
unix  3      [ ]         STREAM     CONNECTED     17001  2479/trashapplet    
[oracle@localhost OIM11gR2PS2_domain]$ 
 

About the author


Daniel is a Technical Manager with over 10 years of consulting expertise in the Identity and Access Management space.
Daniel has built from scratch this blog as well as technicalconfessions.com
Follow Daniel on twitter @nervouswiggles

Comments

Other Posts

February 6, 2020

Created by: Daniel Redfern
AS I was migrating my environment into an S3 environment, I wanted to leverage off the SES services that AWS provide, more specifically, to leverage the off the SMTP functionality by sending an email via PHP
Read More…

February 24, 2019

Created by: Daniel Redfern
The WeMos D1 is a ESP8266 WiFi based board is an extension to the current out-of-the-box library that comes with the Arduino installation. Because of this,
you need to import in the libraries as well as acknowledging the specific board. This process is highly confusion with a number of different individuals talking about a number of different ways to integrate.
Read More…

August 7, 2018

Created by: Daniel Redfern
NameID element must be present as part of the Subject in the Response message, please enable it in the IDP configuration.
Read More…

June 15, 2018

Created by: Daniel Redfern
For what I see, there’s not too many supportive documentations out there that will demonstrate how provision AD group membership with the ICF connector using OpenIDM.
The use of the special ldapGroups attribute is not explained anywhere in the Integrators guides to to the date of this blog. This quick blog identifies the tasks required to provision AD group membership from OpenIDM to AD using the LDAP ICF connector.

However this doesn’t really explain what ldapGroups actually does and there’s no real worked example of how to go from an Assignment to ldapGroups to an assigned group in AD. I wrote up a wiki article for my own reference: AD group memberships automatically to users

This is just my view, others may disagree, but I think the implementation experience could be improved with some more documentation and a more detailed example here.

Read More…

November 8, 2017

Created by: Daniel Redfern
In the past, the similar error occurred though for the Oracle Identity Management solution. invalidcredentialexception remote framework key is invalid
Because they all share the ICF connector framework, the error/solution would be the same.
Read More…

November 8, 2017

Created by: Daniel Redfern
org.forgerock.script.exception.ScriptCompilationException: missing ; before statement
Read More…

September 17, 2017

Created by: Daniel Redfern
ForgeRock IDM — org.forgerock.script.exception.ScriptCompilationException: missing ; before statement
Read More…

September 17, 2017

Created by: Daniel Redfern
When performing the attempt of a reconciliation from ForgeRock IDM to Active Directory, I would get the following error
Read More…

September 17, 2017

Created by: Daniel Redfern
In the past, the similar error occurred though for the Oracle Identity Management solution. invalidcredentialexception remote framework key is invalid
Because they all share the ICF connector framework, the error/solution would be the same.
Read More…

September 12, 2017

Created by: Daniel Redfern
During the reconcilation from OpenIDM to the ICF google apps connector, the following
error response would occur. ERROR Caused by com.google.api.client.auth.oauth2.TokenResponseException 400 Bad Request — invalid_grant
Read More…

    • Forums

      • Advancing Life & Work
      • Alliances
      • Around the Storage Block
      • HPE Ezmeral: Uncut
      • OEM Solutions
      • Servers & Systems: The Right Compute
      • Tech Insights
      • The Cloud Experience Everywhere
      • HPE Blog, Austria, Germany & Switzerland
      • Blog HPE, France
      • HPE Blog, Italy
      • HPE Blog, Japan
      • HPE Blog, Latin America
      • HPE Blog, Poland
      • HPE Blog, Hungary
      • HPE Blog, UK, Ireland, Middle East & Africa
    • Blogs

    • Information

  • Forums

  • Blogs

    • Advancing Life & Work
    • Alliances
    • Around the Storage Block
    • HPE Ezmeral: Uncut
    • OEM Solutions
    • Servers & Systems: The Right Compute
    • Tech Insights
    • The Cloud Experience Everywhere
    • HPE Blog, Austria, Germany & Switzerland
    • Blog HPE, France
    • HPE Blog, Italy
    • HPE Blog, Japan
    • HPE Blog, Latin America
    • HPE Blog, UK, Ireland, Middle East & Africa
    • HPE Blog, Poland
    • HPE Blog, Hungary
  • Information

  • English

Понравилась статья? Поделить с друзьями:
  • Configure error cannot guess build type you must specify one
  • Configure error cannot find required auxiliary files install sh config guess config sub
  • Connection attempt has failed due to server communication error please retry the connection
  • Configure error cannot find php config please use with php config path
  • Connection attempt failed with error 10061 proxifier