Необходимо будет определить то, что серверный процесс на сервере выполняет rsh
иначе shell
сервис. Традиционно, это запускается inetd
или xinetd
метадемон, который слушает на shell
Порт TCP (514) и выполнения rshd
команда после входящего соединения.
lsof -i tcp:shell
(как корень), скажет Вам, какой процесс слушает на том порте.
Вы можете strace что с:
strace -tt -ff -o rsh.strace -p "the-PID"
-ff
опция следует за ветвлениями и создает один файл журнала для каждого процесса, который помогает читать.
Файлы журнала назовут rsh.strace.<pid>
где <pid>
идентификатор процесса соответствующего процесса. xinetd
породит новый процесс для выполнения rshd
сервер, который сам может породить другой процесс для выполнения оболочки входа в систему пользователя, который самой возможно породит несколько процессов при интерпретации ~/.bashrc
(да bash
(если это - оболочка входа в систему пользователя), действительно интерпретирует ~/.bashrc
при работании rsh
даже если это не оболочка входа в систему).
Затем можно посмотреть там, кто делает setrlimit
с:
grep setrlimit rsh.strace.*
После того как Вы определили процесс. Можно сделать a
grep execve rsh.strace.<that-pid>
Видеть, выполнил ли тот процесс команду прежде, чем сделать это setrlimit
который скажет Вам, что команда сделала ulimit
. Если тот процесс не сделал execve
затем его родитель или прародитель сделали. Можно узнать родителя путем проверки, который процесс сделал fork
/clone
это привело к этому <pid>
как:
grep -E '(clone|fork).*= <that-pid>' rsh.strace.*
Если процесс inetd
/xinetd
и inetd
служит большому количеству других сервисов около shell
, альтернативно Вы могли изменить его конфигурацию для выполнения strace -tt -ff -o /var/log/rsh.strace in.rshd
вместо in.rshd
для shell
сервис, или делают сценарий обертки вокруг in.rshd
назвать реальное in.rshd
под strace
.
Теперь две вероятных вещи, которые устанавливают ulimit
также PAM
(через pam_limits
модуль и /etc/security/limits.conf
), и вход в систему удаленного пользователя окружает сценарии запуска.
В последнем случае, вместо stracing
rshd
, Вы могли включить трассировку оболочки в оболочке входа в систему. Например, если оболочка входа в систему удаленного пользователя bash
или sh
, sh
будучи символьной ссылкой на bash
, можно измениться /usr/sbin/in.rshd
(или безотносительно местоположения rsh
команда демона) к сценарию обертки, который делает:
#! /bin/sh -
exec /usr/bin/env SHELLOPTS=xtrace "$0.bin" "$@"
Переименовав это к in.rshd.bin
.
соединяемся: Сеть недоступна
указывает на отсутствующий маршрут к этой сети (маршрут по умолчанию в данном случае).
Используйте:
route -n
для отображения текущей таблицы маршрутизации. Должен быть маршрут, который выглядит следующим образом:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 <gateway-ip> 0.0.0.0 UG 0 0 0 eth0
Обратите внимание, что
является ip-адресом вашего маршрутизатора/шлюза. И Iface
также может отличаться, когда в вашей системе имеется несколько сетевых интерфейсов.
Однако, добавьте маршрут по умолчанию вручную с помощью этой команды:
route add default gw <gateway-ip>
Я бы (все это команды как root) ifconfig -a
, чтобы проверить, имеет ли интерфейс IP-адрес, если он не нашел вашу проблему, если Это делает, то я бы Netstat -rn
, чтобы проверить, правильно ли маршруты. Если они есть, я бы iptables -l
, чтобы проверить, есть ли правило брандмауэра, которое меня не отпускает. Если они все в порядке, то, возможно, ваш IP-адрес не принадлежит сети маршрутизатора.
Выпуск вот в том, что ваш проводной интерфейс (ETH0) не включен не включен , имеет адрес IPv4. Вы вручную добавили маршрут IPv4, но, не имея адрес IPv4, трафик не может быть маршрутирован, так как он не может назначить IP-адрес для IP-адреса (вашей системы) IP.
Не зная больше информации о вашей среде (вы используете DSL-соединение? Вы находитесь в корпоративной сети? Кто должен предоставить вам IP-адрес?) Я думаю, что перед перезагрузкой у вас есть статический настроен IP-адрес или рабочий DHCP-сервер. Если у вас был статический настроен адрес (который ваша конфигурация не показывает), она была потеряна после перезагрузки.
Вы видите адрес IPv6, потому что этот адрес «Auto-Confived». Поскольку вы не настроили его, проводной интерфейс просто создает тот, который можно использовать для связи с локальной сетью.
От предоставленной вами информации IFCONFIG, кажется, что ваша сетевая карта получает пакеты Ethernet, но не отправляя. Как ни странно, это также показывает много сброшенных пакетов.
Для начала я бы предложил вам следующее:
Получить информацию о вашей схеме IP-адреса сети. Попросите своего сетевого администратора или проверьте информацию, предоставленную вашим провайдером. В качестве альтернативы, (если вы смелые), вы можете слушать сетевой трафик в сети, запустив TCPDUMP -NI ETH0
и попробуйте угадать вашу внутреннюю сетевую адресацию на основе пакетов, которые принимает вашу систему.
Отныне давайте предположим, что ваша сеть находится в частном диапазоне IP-адреса, поскольку это довольно распространено. В настоящее время многие сети предварительно настроены в пространстве 192.168.1.0/24, что означает, что IP-адреса начинаются в 192.168.1.1 и заканчиваются в 192.168.1.254
Настройте свой сетевой интерфейс со статическим IP-адресом и шлюзом, используя либо Диспетчер сети (т.е. через рабочий стол) или настроить / etc / ettem / интерфейсы
. Это полностью описано здесь в Debian Wiki .
Примечание. Вы также можете настроить его вручную IP Addr Add 192.168.1.15 dev eth0; Маршрут IP добавляет по умолчанию через 192.168.1.1
. Но это будет не не пережить перезагрузку системы.
Постарайтесь посмотреть, доберетесь ли вы ворота, отправив его пакеты. Это может быть сделано просто, предполагая, что ваш шлюз 192.168.1.1 за счет бега Ping-C 10 192.168.1.1
. Если команда возвращает, что все 10 тестов работали хорошо, вы можете увидеть ваш шлюз.
Затем попробуйте получить доступ к известному общедоступному IP-адресу. Например, сервер Google DNS, выполняющий Ping-C 10 8,8,8,8
. Если это не работает, то попробуйте запустить тест на отслеживание, используя Traceroute Traceroute -N 8,8,8,8
, чтобы увидеть, где выпадаются ваши пакеты.
Наконец, убедитесь, что вы можете правильно выполнить разрешение DNS, запустив Host www.google.com
или Ping-C 10 www.google.com
Если все идет хорошо 5 Я бы предположил, что для диагностики будущих проблем вы устанавливаете пакет IFUPDown-Etra . Это устанавливает инструмент Network-Test инструмент , который делает много сетевых тестов, перечисленных выше (и более), чтобы диагностировать, если есть проблема с сетью или неправильная настройка.
Как только вы можете подключиться с помощью статического IP-адреса. Постарайтесь вернуться с тем, что вы ранее имели, что, вероятно, была динамической конфигурацией IP с использованием DHCP.
Для этого:
Реконфигурирование интерфейса для использования динамического IP-адреса.
Дождитесь работы сетевого менеджера. Вы увидите в своей среде настольных компьютеров, если она не удается (или нет), но вы также можете получить подробную информацию в системных журналах. Более конкретно / var / log / syslog. Фильтрация для журналов Manager Network сообщит вам довольно много информации, просто запустите GREP Networkmanager / var / log / syslog
и просмотрите вывод.
Запустить Тест на сетевой тест
, чтобы увидеть, если вы подключены правильно
, если вы не подключены к сети, попробуйте вручную вручную просить IP-адрес DHClient Eth0
и см. Если это дает вам IP-адрес.
На основании вышеупомянутых тестов вы должны иметь лучшие знания о том, что сломалось, и что работает в вашей сети и соответственно настроить вашу систему.