Опубликован: 04.07.2008 | Уровень: специалист | Доступ: свободно | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 4:

Сетевые соединения: наблюдение и исправление неполадок

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

Работоспособность сети

Проверка настроек: ifconfig

Если вы не уверены, работает ли и верно ли настроен сетевой интерфейс вашего компьютера, потребуйте эту информацию от ifconfig:

ifconfig –a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
elxl0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.5.33 netmask ffffff00 broadcast 192.168.5.255
ether 0:60:8:cb:3b:c0
elxl0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 194.200.0.1 netmask ffffff00 broadcast 194.200.0.255

Обратите внимание: псевдонимы интерфейсов и интерфейсы, не являющиеся сетевыми адаптерами Ethernet, не имеют MAC-адреса.

Сетевые интерфейсы, от которых ожидается работа в данный момент, должны присутствовать, иметь корректные IP-адреса, маски и верные MAC-адреса (00:00:00:00:00 в поле MAC-адреса вывода ifconfig говорит о том, что драйвер сетевого адаптера не считал адрес или не нашел адаптер). Кроме этого, работающий интерфейс обязан находиться в состоянии UP.

Не забывайте давать команду

ifconfig имя_устройства plumb

для активизации интерфейса, если интерфейс добавлен вручную. Эта команда создает необходимые для работы драйвера сетевого адаптера потоки для работы с TCP/IP и открывает доступ к устройству. До того, как будет дана эта команда, интерфейс не будет показан в выводе ifconfig –a, даже если драйвер и сетевой адаптер работают нормально.

Как узнать, работает ли ваша сеть? Попробуйте зайти по адресу www.playboy.com и сразу узнаете, есть ли доступ в Интернет. Лично я использую для проверки, есть ли связь с Сетью, менее одиозные сайты, например, домашнюю страницу главной финской сети FUNET. Это не так отвлекает от работы. В частности, потому, что на www.funet.fi почти все написано по-фински, а финский язык я знаю в объеме приветствий на вокзале. Может быть, стоит попробовать www.playboy.fi?

Проверка связи: ping

Для того, чтобы выяснить, работает ли сеть в офисе, достаточно обратиться к соседнему компьютеру. А что, если вдруг на нем нет веб-сайта? Тогда на помощь приходит маленькая, но важная программа ping:

ping IP-address

Вместо IP-адреса можно использовать имя компьютера:

ping geba.urupinsk.ru

Программа ping посылает маленький (обычно – 56 байт) пакет указанному компьютеру, а тот должен ответить таким же пакетом. Наш компьютер измеряет время прохождения пакетов туда и обратно и показывает его. Некоторые версии ping, в том числе и ping в Solaris 9, по умолчанию сообщают не время прохождения пакета, а сам факт ответа ("host is alive"). Если все же требуется время прохождения, вызывайте ping с ключом s:

ping -s ftp.chg.ru
PING ftp.chg.ru: 56 data bytes
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=0. time=63. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=1. time=51. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=2. time=26. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=3. time=18. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=4. time=42. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=5. time=18. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=6. time=19. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=7. time=95. ms
64 bytes from ftp.chg.ru (193.233.9.194): icmp_seq=8. time=48. ms
^C
----ftp.chg.ru PING Statistics----
9 packets transmitted, 9 packets received, 0% packet loss
round-trip (ms) min/avg/max = 18/42/95

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

Диагностика host is down говорит о том, что маршрутизация пакетов до искомого компьютера работает, а сам компьютер – нет. Возможно, его выключили, отключили от компьютерной сети или перевели в однопользовательский режим для профилактики.

Диагностика no route to host показывает, что маршрутизация пакетов до адресата не работает. Возможной причиной может быть сбой в таблице маршрутизации вашего компьютера (например, отсутствует запись об основном шлюзе).

Проверка соответствия адресов: arp

Если попытка "пинговать" тот или иной адрес в локальной сети дает странные результаты, может пригодиться программа arp, которая показывает локальную таблицу соответствий MAC-адресов и IP-адресов в сети:

arp -a
Net to Media Table: IPv4
Device IP Address Mask Flags Phys Addr
------ ---------------- ---------------- ----- ---------------
elxl0 hp5l 255.255.255.255 00:50:ba:03:b6:47
elxl0 baclan.q.spb.ru 255.255.255.255 00:60:b0:3c:99:05
elxl0 ip-119.q.spb.ru 255.255.255.255 00:10:5a:72:dd:9c
elxl0 192.168.5.72 255.255.255.255 00:e0:29:9b:79:cd
elxl0 lib.q.spb.ru 255.255.255.255 00:e0:29:9e:f3:3b
elxl0 sunny 255.255.255.255 SP 00:60:08:cb:3b:c0
elxl0 192.168.5.11 255.255.255.255 00:e0:29:44:66:08
elxl0 mask.q.spb.ru 255.255.255.255 00:e0:29:48:63:64
elxl0 192.168.1.29 255.255.255.255 00:e0:b0:5a:66:90
elxl0 192.168.5.225 255.255.255.255 00:10:5a:73:6c:6b
elxl0 192.168.5.208 255.255.255.255 00:e0:29:64:9e:e7
elxl0 192.168.5.183 255.255.255.255 00:e0:29:61:29:42
elxl0 192.168.5.158 255.255.255.255 00:e0:29:64:8f:b9
elxl0 BASE-ADDRESS.MCAST.NET 240.0.0.0 SM 01:00:5e:00:00:00

Если сбой в arp-таблице произошел на компьютере, который является основным шлюзом для многих компьютеров в сети, то выход из сети наружу может оказаться заблокированным для всех пакетов, которые пытаются выйти из сети наружу.

Проверка фактических маршрутов: traceroute и route

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

Она прослеживает весь путь пакета, но по умолчанию инспектируются и показываются не более чем тридцать " hop 'ов". Hop (читается "хоп") – это один переход от одного сетевого интерфейса до другого. Если говорят, что до получателя – один hop, это значит, что в дороге пакет не пройдет ни через один маршрутизатор, выполнит только один переход – от отправителя к получателю.

traceroute to ftp.chg.ru (193.233.9.194), 64 hops max, 40 byte packets
1 gw-lost.nw.ru (195.19.204.65) 1.138 ms 1.083 ms 1.153 ms
2 vo-lergo.nw.ru (195.19.203.71) 1.589 ms 2.071 ms 1.734 ms
3 ing-e0.nw.ru (195.19.194.68) 1.173 ms 0.920 ms 0.939 ms
4 msk-ix.nw.ru (193.232.244.225) 11.615 ms 12.053 ms 12.310 ms
5 rbnet-ian.nw.ru (195.19.194.2) 13.991 ms 13.800 ms 11.989 ms
6 MSK-M9-RBNet-4.RBNet.ru (195.209.14.157) 12.579 ms 13.382 ms
12.549 ms
7 Moscow-BNS045-ATM4-0-2.free.net (147.45.20.33) 14.262 ms 14.077 ms
12.622 ms
8 Moscow-BNS042-Gig0-1-21.free.net (147.45.21.2) 13.695 ms 15.291 ms
13.944 ms
9 ftp.chg.ru (193.233.9.194) 19.936 ms 20.208 ms 18.559 ms

Идея traceroute такова: программа отправляет пакеты с адресом получателя, путь до которого мы хотим проследить. В поле TTL1TTL time to live – время жизни пакета, измеряется в секундах. Это время определяет, какое максимальное время пакет может провести в очередях маршрутизаторов на отправку. В большинстве маршрутизаторов пакет не задерживается дольше, чем на одну секунду, но согласно RFC791 маршрутизатор должен уменьшить TTL проходящего через него пакета не менее, чем на одну секунду, поэтому поле TTL фактически определяет максимально допустимое число пересылок пакета от одного маршрутизатора к другому. Такая пересылка называется "hop". IP-пакета для начала ставится число 1. В поле номера порта ставится номер заведомо неиспользуемого порта (обычно – это большое число). Естественно, первый же маршрутизатор на пути пакета сообщает, что TTL пакета истекло. Ответ маршрутизатора учитывается и выводится на экран, а затем посылается пакет с TTL, р авным двум. Ответ про истечение времени присылает следующий маршрутизатор по пути следования пакета, и так происходит до тех пор, пока пакет не дойдет до получателя.

Когда это случится, сообщение об ошибке будет иным: "порт не обслуживается" (ведь порт специально задан таким, чтобы он не обслуживался).

Программа traceroute посылает три пакета с каждым из значений TTL, чтобы подсчитать среднее время прохождения пакета до каждого из промежуточных маршрутизаторов. Если ответ от какого-нибудь маршрутизатора не пришел за пять секунд, traceroute выводит звездочку ( * ) вместо времени ответа маршрутизатора, и это символизирует превышение тайм-аута.

Анализ маршрута пакета с помощью traceroute не всегда возможен, так как в некоторых сетях пересылка пакетов на нестандартные порты запрещена, а в некоторых – запрещена пересылка пакетов ICMP, в которые пакуются ответы маршрутизаторов типа "истекло TTL вашего пакета". Кроме того, пакеты разных типов могут проходить через маршрутизаторы по разным путям. Одинаковые пакеты могут быть направлены разными путями, в зависимости от загрузки сети. Поэтому маршрут пакета, показанный с помощью traceroute, верен только на момент выполнения этой программы. Вы можете применять traceroute и для проверки маршрутизации вашей сети. Например, если пакеты, предназначенные внешней сети, не отправляются на основной шлюз, а ищут другой путь (это будет видно traceroute при попытке отследить путь пакета), то это верный признак сбоя в настройках.

Программа traceroute имеет ряд ключей для изменения параметров пересылаемых пакетов – смотрите man traceroute.

Для анализа и модификации локальной таблицы маршрутизации применяется программа route. Выше, в "лекции 3" , обсуждались ее синтаксис и воздействие на таблицу маршрутов в ядре. Используйте программу route для добавления статических маршрутов и внесения оперативных изменений в маршрутизацию через ваш компьютер, когда это необходимо.

Безопасность системы в компьютерной сети

Безопасность в сети – это тема для отдельной книги или даже целого многотомника, поэтому здесь мы рассмотрим только основные аспекты, связанные с обеспечением безопасности систем Solaris в сети.

Безопасность системы в сети основывается на том, что:

  • все сетевые службы (демоны) в системе представляют собой корректно работающие программы, реализующие стандартные протоколы работы;
  • система предоставляет доступ к ограниченному набору сетевых служб, этот доступ жестко контролируется посредством аутентификации и авторизации обращающихся, сообщение о разрешении доступа сохраняется в файле протокола;
  • при работе в сети используются безопасные протоколы передачи данных, там, где это применимо, данные передаются зашифрованными надежными (на данный момент) алгоритмами шифрования;
  • администратор(ы) и пользователи системы всегда используют свои собственные пароли и никогда не сообщают их другим лицам;

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

Что надо сделать, чтобы приблизиться к идеалу?

Для того, чтобы все программы работали так, как вы ожидаете, следует:

  1. регулярно следить за сообщениями о найденных в ПО уязвимостях. Для этого существует ряд списков рассылки, на которые вы можете подписаться совершенно бесплатно. Наиболее толковый вариант, по-моему, рассылка от CERT (Computer Emergency Response Team) – зайдите на www.cert.org и проверьте сами!
  2. всегда устанавливать рекомендованные рассылкой от CERT или производителем системы заплатки и обновления системы или отдельных программ; об установке программ в Solaris рассказывает "лекция 2" ;
  3. строго следовать рекомендациям производителей программ, например, если сказано, что демона squid не следует запускать от имени привилегированного пользователя root, то и не надо этого делать!

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

Для того, чтобы использовать только безопасные протоколы в сети:

  1. вместо telnet всегда применяйте secure shell (ssh) ;
  2. работайте с https вместо http там, где через web-интерфейс передаются конфиденциальные данные;
  3. запрещайте на сервере протоколы, позволяющие узнавать информацию о вашей сети (например, finger );
  4. пользуйтесь только теми программами, назначение которых вам известно.

Запретите всем пользователям системы (себе – тоже!):

  1. передавать важные пароли открытым текстом через сеть;
  2. сообщать кому-либо свой пароль в системе;
  3. реагировать на провокационные сообщения по e-mail (мошенники уже пытались убедить вас в том, что вам нужно где-то перерегистрироваться и сообщить им свой пароль?);
  4. оставлять свой пароль записанным на видном месте;
  5. придумывать примитивные пароли.

Список глупостей можно продолжить, но мы ограничимся призывом вести себя осторожно: от нас зависит безопасность сетей в большом числе организаций!

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Равиль Латыпов
Равиль Латыпов
Россия, Казань, Казанский Национальный Исследовательский Технический Университет