Как я диагностирую сети на Debian

Необходимо будет определить то, что серверный процесс на сервере выполняет 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.

7
01.07.2016, 03:39
3 ответа

соединяемся: Сеть недоступна указывает на отсутствующий маршрут к этой сети (маршрут по умолчанию в данном случае).

Используйте:

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>
2
27.01.2020, 20:19

Я бы (все это команды как root) ifconfig -a , чтобы проверить, имеет ли интерфейс IP-адрес, если он не нашел вашу проблему, если Это делает, то я бы Netstat -rn , чтобы проверить, правильно ли маршруты. Если они есть, я бы iptables -l , чтобы проверить, есть ли правило брандмауэра, которое меня не отпускает. Если они все в порядке, то, возможно, ваш IP-адрес не принадлежит сети маршрутизатора.

3
27.01.2020, 20:19

Выпуск вот в том, что ваш проводной интерфейс (ETH0) не включен не включен , имеет адрес IPv4. Вы вручную добавили маршрут IPv4, но, не имея адрес IPv4, трафик не может быть маршрутирован, так как он не может назначить IP-адрес для IP-адреса (вашей системы) IP.

Не зная больше информации о вашей среде (вы используете DSL-соединение? Вы находитесь в корпоративной сети? Кто должен предоставить вам IP-адрес?) Я думаю, что перед перезагрузкой у вас есть статический настроен IP-адрес или рабочий DHCP-сервер. Если у вас был статический настроен адрес (который ваша конфигурация не показывает), она была потеряна после перезагрузки.

Вы видите адрес IPv6, потому что этот адрес «Auto-Confived». Поскольку вы не настроили его, проводной интерфейс просто создает тот, который можно использовать для связи с локальной сетью.

От предоставленной вами информации IFCONFIG, кажется, что ваша сетевая карта получает пакеты Ethernet, но не отправляя. Как ни странно, это также показывает много сброшенных пакетов.

Для начала я бы предложил вам следующее:

  1. Получить информацию о вашей схеме IP-адреса сети. Попросите своего сетевого администратора или проверьте информацию, предоставленную вашим провайдером. В качестве альтернативы, (если вы смелые), вы можете слушать сетевой трафик в сети, запустив TCPDUMP -NI ETH0 и попробуйте угадать вашу внутреннюю сетевую адресацию на основе пакетов, которые принимает вашу систему.

    Отныне давайте предположим, что ваша сеть находится в частном диапазоне IP-адреса, поскольку это довольно распространено. В настоящее время многие сети предварительно настроены в пространстве 192.168.1.0/24, что означает, что IP-адреса начинаются в 192.168.1.1 и заканчиваются в 192.168.1.254

  2. Настройте свой сетевой интерфейс со статическим IP-адресом и шлюзом, используя либо Диспетчер сети (т.е. через рабочий стол) или настроить / etc / ettem / интерфейсы . Это полностью описано здесь в Debian Wiki .

    Примечание. Вы также можете настроить его вручную IP Addr Add 192.168.1.15 dev eth0; Маршрут IP добавляет по умолчанию через 192.168.1.1 . Но это будет не не пережить перезагрузку системы.

  3. Постарайтесь посмотреть, доберетесь ли вы ворота, отправив его пакеты. Это может быть сделано просто, предполагая, что ваш шлюз 192.168.1.1 за счет бега Ping-C 10 192.168.1.1 . Если команда возвращает, что все 10 тестов работали хорошо, вы можете увидеть ваш шлюз.

  4. Затем попробуйте получить доступ к известному общедоступному IP-адресу. Например, сервер Google DNS, выполняющий Ping-C 10 8,8,8,8 . Если это не работает, то попробуйте запустить тест на отслеживание, используя Traceroute Traceroute -N 8,8,8,8 , чтобы увидеть, где выпадаются ваши пакеты.

  5. Наконец, убедитесь, что вы можете правильно выполнить разрешение DNS, запустив Host www.google.com или Ping-C 10 www.google.com

Если все идет хорошо 5 Я бы предположил, что для диагностики будущих проблем вы устанавливаете пакет IFUPDown-Etra . Это устанавливает инструмент Network-Test инструмент , который делает много сетевых тестов, перечисленных выше (и более), чтобы диагностировать, если есть проблема с сетью или неправильная настройка.

Как только вы можете подключиться с помощью статического IP-адреса. Постарайтесь вернуться с тем, что вы ранее имели, что, вероятно, была динамической конфигурацией IP с использованием DHCP.

Для этого:

  1. Реконфигурирование интерфейса для использования динамического IP-адреса.

  2. Дождитесь работы сетевого менеджера. Вы увидите в своей среде настольных компьютеров, если она не удается (или нет), но вы также можете получить подробную информацию в системных журналах. Более конкретно / var / log / syslog. Фильтрация для журналов Manager Network сообщит вам довольно много информации, просто запустите GREP Networkmanager / var / log / syslog и просмотрите вывод.

  3. Запустить Тест на сетевой тест , чтобы увидеть, если вы подключены правильно

  4. , если вы не подключены к сети, попробуйте вручную вручную просить IP-адрес DHClient Eth0 и см. Если это дает вам IP-адрес.

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

0
27.01.2020, 20:19

Теги

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