Брандмауэры и специальное программное обеспечение



Pdf просмотр
страница15/42
Дата15.02.2017
Размер6.16 Mb.
Просмотров2866
Скачиваний0
ТипАнализ
1   ...   11   12   13   14   15   16   17   18   ...   42

Таблица 9.2. Таблица трансляции адресов CIDR
Маска A B C
Сети
Кратно Шестнадцатеричное
.0 /8
/16
/24 1 нет 00
.128 /9
/17
/25 2
128 80
.192 /10
/18
/26 4
64 СО
.224 /11
/19
/27 8
32 ЕО
.240 /12
/20
/28 16 16 FO
.248 /13
/21
/29 32 8
F8
.252 /14
/22
/30 64 4
FC
.254 /15
/23 не используется 128 2
FE
.255 /32 0
FF
Бесклассовая адресация используется не только для того, чтобы организовать работу географически удаленных друг от друга сетей. CIDR позволяет изолировать различные департаменты в крупных организациях для того, чтобы обеспечить более надежную защиту (с использованием внутренних брандмауэров), разбить сеть на несколько сегментов и снизить трафик между ними, уменьшив тем самым количество коллизий и снизив время реакции системы.
Использование ipconfig
Утилита ipconfig используется для настройки любых сетевых интерфейсов, установленных на сетевом узле. Однако помимо настройки интерфейса вы можете использовать эту утилиту для получения дополнительных сведений об интерфейсе. Любую информацию об интерфейсе можно модифицировать, однако вы должны учитывать, что не все драйверы поддерживают изменение любых параметров.
Некоторые важные сведения о безопасности, отображаемые утилитой ipconfig, обсуждаются позднее.
Далее приводится пример вывода этой утилиты, полученный с использованием команды ipconfig -а. Ключ - а заставляет утилиту ipconfig отобразить сведения обо всех интерфейсах, даже о тех, которые не работают.
Вот пример вывода утилиты ipconfig:
eth0 Link encap:Ethernet HWaddr 00:10:5A:8B:OC:FA inet addr:209.127.112.185 Beast:209.127.112.191 Mask=255.255.255.192
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:!
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:12 collisions:0 txqueuelen:100

Interrupt:9 Base address:0x300
eth0:l Link encap:Ethernet HWaddr 00:10:5A:8B:OC:FA inet addr:207.199.127.84 Beast:207.199.127.255 Mask-.255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
Interrupt:9 Base address:0x300 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:3615 errors:0 dropped:0 overruns:0 frame:0
TX packets:3615 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 pppO Link encap:Point-to-Point Protocol inet addr:208.143.150.16 P-t-P:208.143.150.9 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:3237 errors:5 dropped:0 overruns:0 frame:5
TX packets:3354 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen: 10 ppp1 Link encap:Point-to-Point Protocol inet addr:192.168.10.10 P-t-P:192.168.10.11 Mask:255.255.255.255
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10
Vmnet0 Link encap:Ethernet HWaddr 00:50:56:80:00:00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen
:100 vm netl Link encap:Ethernet HWaddr 00:50:56:8A:00:00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100

Проанализировав информацию об интерфейсах, вы можете заметить, что интерфейс ethO является интерфейсом инкапсуляции линии связи (Link encap) типа Ethernet. Аппаратный адрес (HWaddr) — это
МАС-адрес, о котором мы уже говорили ранее. Аппаратный адрес жестко записан внутри сетевой карты
Ethernet, однако при желании вы можете переопределить его из командной строки. Таким образом, если вы знаете IP-адрес и МАС-адрес некоторой системы, вы можете настроить свой компьютер так, чтобы он исполнял роль этой самой системы. Такая необходимость, как правило, возникает в случае сбоев или когда требуется выполнить тестирование. Однако при этом клиенты не должны заимствовать адрес сервера.
Чтобы узнать МАС-адрес удаленной системы, можно заглянуть в кэш ARP. Содержимое кэша ARP выводится на экран при помощи команды arp -а. Если вы не видите в кэше информации об интересующей вас системе, попробуйте соединиться с ней при помощи утилиты ping, а затем снова воспользуйтесь командой аrр -а. Дело в том, что по истечении некоторого времени записи, к которым за это время не было ни одного обращения, удаляются из кэша ARP. Если вы обратитесь к удаленной системе, соответствующая ей запись вновь появится в кэше. Однако данный прием определения МАС-адреса работает только для локальных сетевых узлов.
Во второй строке, относящейся к интерфейсу ethO, в точечной десятичной нотации отображаются IP- адрес, сетевая маска и широковещательный адрес. Со всеми этими параметрами мы с вами уже хорошо знакомы. Третья строка представляет больший интерес. Прежде всего обратите внимание на запись
PROMISC. Это значение указывает на то, что карта Ethernet работает в режиме прослушивания сети, который иногда называют также смешанным режимом (promiscuous mode). Сетевой интерфейс, работающий в режиме прослушивания, принимает абсолютно всю информацию, которая передается в пределах локального сегмента Ethernet между входящими в этот сегмент сетевыми узлами. Данный интерфейс напоминает человека, который читает чужие письма. В обычном состоянии сетевой интерфейс принимает только те пакеты, которые адресованы непосредственно ему, то есть посланы на соответствующий интерфейсу IP-адрес. Однако карта Ethernet, работающая в режиме прослушивания, принимает абсолютно все пакеты, передаваемые по кабелю Ethernet, то есть даже те, которые ей не адресованы. Переключение карты в такой режим осуществляется специальными программами, например tcpdump. Если интерфейс отмечен меткой PROMISC, значит, в системе работает «подслушивающая» программа. Если вы планируете использовать подобное программное обеспечение в сети, вы должны быть очень осторожны. Некоторые системы до сих пор подвержены таким атакам, как атака «big ping». Если сетевая карта работает в смешанном режиме и через сеть передается сообщение big ping, даже если это
сообщение не адресовано системе, оно будет принято системой, и если система подвержена атаке такого типа, она зависнет. Некоторые системы зависают, даже если только самый последний фрагмент сообщения big ping принимается ими. Более подробно об этом рассказывается в главе 16.
Большая часть всех остальных сведений об интерфейсе является статистическими данными. Однако обратите внимание на последнюю строку в разделе, посвященном интерфейсу ethO. В ней указывается базовый аппаратный адрес и канал прерывания IRQ. Имейте в виду, что если драйвер поддерживает такую возможность, вы можете изменить адрес I/O и номер IRQ, однако на практике в этом редко когда возникает необходимость.
Второй раздел, отображаемый командой ipconfig, соответствует интерфейсу ethO:l. Это псевдоним интерфейса ethO. Иными словами, интерфейсу ethO соответствуют два IP-адреса. Запись, соответствующая псевдониму интерфейса, выглядит в точности как и сам интерфейс, однако статистические данные в ее составе не отображаются, так как вся статистика указывается только для основного интерфейса.
Третьим разделом является раздел lо. Этот раздел соответствует адресу localhost (локальный сетевой узел). Любая система обладает записью localhost, которой соответствует IP-адрес 127.0.0.1. В реальности каждая система обладает диапазоном адресов класса А с адресами от 127.0.0.0 до 127.255.255.255. Таким образом, если по какой-либо причине вы запускаете в сети «подслушивающую» программу (sniffer) и обнаруживаете адрес 127.0.0.0/8, имейте в виду, что кто-то выставляет свою систему за какой-то другой сетевой узел. Иными словами, он намеренно изменил свой адрес так, чтобы создавалось впечатление, что данные передаются откуда-либо из другого места (в данном случае с узла localhost). Благодаря этому у него появляется возможность получить права на доступ, которыми он не обладает. Часто это выглядит как атака на брандмауэр, когда некто с другой стороны брандмауэра маскируется под адресом, принадлежащим адресному пространству по эту сторону брандмауэра. Более подробно об этом рассказывается в главе, посвященной сетевым фильтрам.
Утилита ifconfig сообщает нам о существовании двух интерфейсов рррХ. Это означает, что компьютер оснащен одним или двумя модемами. Обратите внимание, что интерфейс ррр0 активен, а интерфейс ррр1 — нет. На подобные записи следует обращать внимание в случае, если внутренняя политика запрещает неав-торизированные подключения к Интернету и если бы при этом данный компьютер не был бы авторизирован для установки соединений через телефонную связь.
Два интерфейса vmnet интересны тем, что на самом деле они не существуют. При этом вы можете видеть, что каждому из них соответствует МАС-адрес, а также остальные атрибуты, свойственные любой
Ethernet-карте. В настоящий момент ни одному из этих интерфейсов не поставлен в соответствие IP-адрес, однако как только они становятся активными, они получают свой собственный IP-адрес при помощи протокола DHCP (Dynamic Host Configuration Protocol). Такие виртуальные интерфейсы существуют только в виде программного кода и принадлежат некоторому программному пакету. С точки зрения всей остальной внешней сети, когда эти интерфейсы становятся активными, они выглядят как отдельные системы (обратите внимание, что, как правило, существует еще два виртуальных интерфейса таким образом, чтобы общее их количество равнялось четырем, однако я сократил листинг для краткости).
В системе могут существовать также и другие интерфейсы, например iрррХ для ISDN РРР и trX для
Token Ring. Однако для всех подобных интерфейсов утилита ifconfig отображает приблизительно один и тот же набор сведений.
Использование route
С точки зрения безопасности утилита route не представляет особого интереса, однако, как правило, она используется совместно с ifconfig, поэтому здесь я скажу об этой утилите пару слов. По умолчанию route отображает на экране сведения из таблицы маршрутизации с указанием символьных имен, однако в большинстве случаев IP-адреса оказываются более информативными, поэтому чаще совместно с route используется ключ -n.
Destination
Gateway
Genmask
Flags Metric Ref
Use Iface
208.143.150.9 0.0.0.0 255.255.255.255
UH
0 0
0 ppp0 127.0.0.0 0.0.0.0 255.0.0.0
U
0 0
0 lo
0.0.0.0 208.143.150.9 0.0.0.0
UG
0 0
0 pppO
Наиболее интересной колонкой является колонка Flags, в которой отображается состояние маршрута.
Буква U указывает на то, что маршрут активен (Up). Буква Н указывает на сетевой узел (Host), а буква G — на шлюз (Gateway). Реже в этой колонке можно видеть буквы R, D и М, они обозначают
«восстановленный» (Reinstate), «динамический» (Dynamic) и «модифицированный» (Modified) соответственно. Изредка в этой колонке можно увидеть символ восклицательного знака «!», который означает «отказ» (Reject). Это вовсе не означает, что на маршруте установлен брандмауэр. Символом восклицательного знака обозначается маршрут, через который не проходят пакеты. Таким образом, если вы
посылаете пакеты с локального узла узлу или сети, напротив которых стоит символ воcклицательного знака, вы получите сообщение о том, что маршрут неактивен (Down). Однако это не означает, что по этому маршруту пакеты не могут передаваться в обратном направлении. Вы сможете принимать оттуда поступающие к вам пакеты UDP. По маршруту нельзя переправлять исходящие пакеты UDP, а также нельзя создать соединение TCP.
Заключение
В данной главе я очень коротко рассказал о сетях и некоторых аспектах сетевой безопасности. Вы узнали о том, как именно системы взаимодействуют друг с другом. Вы также узнали немного об утилите ifconfig и о параметрах, связанных с безопасностью.

10
Стандартные службы


В данной главе рассматриваются следующие вопросы:
- что такое службы;
-
- утилита netstat.

Службы являются фундаментальной составляющей сетевой рабочей среды. Если бы не было служб, на любом компьютере можно было бы запускать не более одной программы, к которой клиенты могли бы подключаться через сеть по одному за один раз. Работа служб основана на концепции портов — специальной добавки к IP-адресу, позволяющей более точно идентифицировать метод взаимодействия клиента с сервером. Большинство пользователей знакомы с портами лишь поверхностно, так как при работе с сетью в большинстве случаев достаточно указать лишь имя или IP-адрес узла, а номер порта можно не указывать. Происходит это потому, что при подключении клиентов к серверам почти всегда используются номера портов по умолчанию. Таким образом, пользователь может не беспокоиться о выборе подходящего порта — необходимый порт выбирается автоматически. Однако знание о том, что такое порты и что такое службы, чрезвычайно важно для понимания основных концепций сетевой безопасности.
Что такое службы
Представьте себе некоторую организацию, размещенную в одном большом здании. Пусть эта организация обладает единым телефонным номером, специально предназначенным для обслуживания входящих звонков. Данный телефонный номер способен обслуживать множество поступающих звонков одновременно. Внутри организации поддерживается множество внутренних добавочных телефонных номеров — все они распределены между сотрудниками организации в индивидуальном порядке. Когда кто- нибудь звонит по единому телефонному номеру этой организации, голос автоответчика предлагает сообщить внутренний добавочный номер. После того как звонящий указывает этот внутренний номер, он автоматически соединяется с соответствующим сотрудником организации или с секретарем (если же введенный добавочный номер оказывается некорректным, автоматический автоответчик сообщает звонящему, что введенный им добавочный номер некорректен). Клиентское программное обеспечение работает приблизительно также. Общий единый телефонный номер организации подобен IP-адресу серверного компьютера, а внутренний добавочный номер — это номер порта. На сервере может работать множество серверных программ, каждой из которых соответствует свой собственный порт. Когда вы соединяетесь с сервером по указанному вами IP-адресу (или с использованием доменного имени, что почти одно и то же), ваша клиентская программа сообщает серверу номер порта, с которым она хотела бы соединиться. Номер порта по умолчанию хранится внутри клиентской программы, поэтому пользователю не приходится вводить его самостоятельно. Именно по этой причине многие пользователи и не подозревают о существовании портов.
Итак, для того чтобы установить соединение с сервером, необходимо указать IP-адрес этого сервера и порт, через который будет установлено соединение. Как правило, эти параметры указываются в формате:
IP-адрес:Порт. Каждая из серверных программ настроена на использование определенного порта по умолчанию. Клиентская программа, предназначенная для взаимодействия с определенной серверной
программой, хранит внутри себя номер порта по умолчанию для связи с серверной программой. Клиент пытается подключиться к серверу с использованием порта по умолчанию, и если сервер поддерживает подключение через указанный порт, начинается начальная стадия взаимодействия. На этой стадии сервер может потребовать от клиента аутентификации. Если клиент не может аутентифи-цировать себя или аутентифицирует себя неправильно, сервер может разорвать соединение. Однако следует учитывать то, что выполнение аутентификации без установки соединения невозможно. Иными словами, на момент выполнения аутентификации соединение между клиентом и сервером уже установлено.
Благодаря механизму портов вы можете запустить на одном серверном компьютере несколько серверных приложений (служб). Каждому из этих приложений будет соответствовать отдельный порт.
Например, вы можете запустить FTP, telnet, HTTP и т. п. в одно и то же время. Если бы портов не было, на каждом компьютере можно было бы запустить только одну службу.
На рис. 10.1 графически показана работа этого механизма.
Когда вы хотите получить от компании какую-либо информацию, вы звоните в компанию. Используя рассмотренную аналогию, вы указываете добавочный телефонный номер отдела, с которым вы хотите связаться. Если вы хотите обсудить покупку продукта, вы соединяетесь с отделом продаж, но не с отделом технического обслуживания. Однако если у вас есть вопрос, связанный с техническим обслуживанием, вы звоните в отдел технического обслуживания, но не в отдел продаж. Каждое подразделение организации выполняет определенную функцию. Сотрудники одного отдела компании могут вообще ничего не знать о каком-либо другом отделе. Возможно, в разговоре по телефону сотрудники разных отделов будут использовать разный жаргон. Та же самая концепция действует и в отношении разных серверных приложений, однако в случае серверных приложений жаргоном является протокол, при помощи которого происходит обмен данными с клиентом.

В отношении компьютеров происходит то же самое. Вы сидите перед компьютером (который выполняет функции клиента), запускаете web-браузер и вводите имя компании, от которой вы хотите получить некоторую информацию. Предположим, вы ввели www.calderasystems.com. Клиент начинает поиск адреса web-узла компании Caldera Systems. В данном случае это будет IP-адрес. Когда IP-адрес обнаружен, браузер пытается установить связь с этим сетевым узлом. Для этого необходимо указать порт, через который будет установлена связь. Известно, что по умолчанию любой web-сервер использует порт
80. Это значение по умолчанию используется всеми серверами Web, так как служба WWW является общеизвестной службой (Well Known Service, WKS) и, как для любой другой общеизвестной службы, ей поставлен в соответствие конкретный стандартный номер порта. Для упрощения процедуры подключения номер порта 80 хранится внутри программы web-браузера и используется по умолчанию, поэтому вам не потребуется вводить его вручную. Вы также не сможете использовать web-клиент (то есть браузер) для соединения с сервером telnet или почтовым сервером, так как эти серверы используют совершенно другой протокол и совершенно другой набор правил коммуникации. Таким образом, коммуникация между web- клиентом и сервером telnet невозможна (позже будет показано, что это утверждение не совсем истинно).
Это все равно, как если бы вы соединились с отделом продаж и попытались бы с помощью сотрудников этого отдела решить возникшую у вас техническую проблему. Подобный обмен данными вряд ли был бы полезным для вас.
Теперь, должно быть, вы понимаете, что порт является столь же важной частью коммуникационного процесса, как и IP-адрес. Давайте заглянем внутрь файла /etc/ services, в котором перечислены некоторые общеизвестные службы:

# SNetBSD: services,v 1.18 1996/03/26 00:07:58 mrg Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from
RFC 1340, "Assigned Numbers" (July 1992). Not all ports
# are included, only the more common ones.
#
# from: @(#)services 5.8 (Berkeley) 5/9/91
# tcpmux
1/tcp
# TCP port service multiplexer echo 7/tcp echo
7/udp discard
9/tcp sink null discard
9/udp sink null systat
11/tcp users daytime
13/tcp daytime 13/udp netstat 15/tcp qotd
17/tcp quote msp
18/tcp
# message send protocol msp
18/udp
# message send protocol chargen
19/tcp ttytst source chargen
19/udp ttytst source ftp-data
20/tcp
# default ftp data port ftp 21/tcp ssh 22/tcp ssh 22/udp telnet 23/tcp
#
24 - private smtp
25/tcp mail
#
26 - unassigned time
37/tcp timserver time
37/udp timserver rlp
39/udp resource
# resource location nameserver
42/tcp name
# IEN 116 whois
43/tcp nicname domain
53/tcp nameserver # name-domain server domain
53/udp nameserver mtp 57/tcp
# deprecated bootps
67/tcp
# BOOTP server bootps 67/udp bootpc
68/tcp
# BOOTP client bootpc 68/udp tftp 69/udp gopher
70/tcp
# Internet Gopher gopher 70/udp finger 79/tcp www
80/tcp http
# WorldWideWeb HTTP www
80/udp
# HyperText Transfer Protocol link
87/tcp ttylink kerberos
88/tcp krb5
# Kerberos v5 kerberos
88/udp
#
100 - reserved hostnames 101/tcp hostname # usually from sri-nic rtelnet
107/tcp
# Remote Telnet rtelnet
107/udp pop2 109/tcp pop-2 postoffice
# POP version 2 pop2 109/udp рорЗ
110/tcp pop-3
# POP version 3 рорЗ
110/udp sunrpc
111/tcp sunrpc
111/udp auth
113/tcp authentication tap ident sftp
115/tcp uucp-path 117/tcp nntp
119/tcp readnews untp # USENET News Transfer Protocol ntp
123/tcp ntp
123/udp
# Network Time Protocol netbios-ns 137/tcp
# NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp
# NETBIOS Datagram Service
netbios-dgm 138/udp netbios-ssn 139/tcp
# NETBIOS session service netbios-ssn 139/udp imap2 143/tcp imap
# Interim Mail Access Proto v2 imap2 143/udp snmp
161/udp
# Simple Net Mgmt Proto snmp-trap 162/udp snmptrap # Traps for SNMP xdmcp
177/tcp
# X Display Mgr. Control Proto xdmcp
177/udp bgp
179/tcp
# Border Gateway Proto. bgp
179/udp irc
194/tcp
# Internet Relay Chat irc
194/udp at-rtmp
201/tcp
# AppleTalk routing at-rtmp
201/udp at-nbp
202/tcp
# AppleTalk name binding at-nbp
202/udp at-echo
204/tcp
# AppleTalk echo at -echo
204/udp at-zis
206/tcp
# AppleTalk zone information at-zis
206/udp z3950 210/tcp wais
# NISO 239.50 database z3950 210/udp wais wais ipx 213/tcp
# IPX ipx
213/udp imap3 220/tcp
# Interactive Mail Access imap3 220/udp
# Protocol v3
#
# UNIX specific services
# exec
512/tcp biff
512/udp comsat login
513/tcp who
513/udp whod shell
514/tcp cmd
# no passwords used syslog
514/udp printer
515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route
520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat
# temporary entry (not officially registered by the Samba Team!) swat
901/tcp
# Samba Web Administration Tool
#
# AppleTalk
OOP entries (OOP: Datagram Delivery Protocol)
# rtmp
1/ddp
# Routing Table Maintenance Protocol nbp
2/ddp
# Name Binding Protocol echo
4/ddp
# AppleTalk Echo Protocol zip 6/ddp
# Zone Information Protocol
Чтобы не загромождать книгу, я несколько сократил файл services. Вы должны использовать файл services, который входит в состав используемого вами комплекта поставки Linux. Наиболее свежий перечень общеизвестных служб содержится в документе RFC 1340, однако в будущем этот документ наверняка будет заменен более новой версией.
ССЫЛКА
На прилагаемом к книге компакт-диске в подкаталоге col/security размещается программа под названием rfc,
которую можно использовать для того, чтобы найти наиболее свежую версию интересующего вас документа RFC.
Вы можете добавлять в файл services новые службы и новые уникальные номера портов, однако при этом не следует добавлять в этот файл службы, которые уже в нем существуют. Например, вы можете захотеть использовать для службы www порт 8080, однако если вы добавите соответствующую запись в конец файла services, ничего не изменится, так как служба www уже связана с портом 80. Когда система
Linux ищет соответствие между именем службы и номером порта, она просматривает этот файл с самого начала в направлении к концу и использует самую первую подходящую запись. Все последующие записи, содержащие подходящее имя службы, игнорируются.

ВНИМАНИЕ
Не следует удалять записи о WKS (Well Known Services) из файла /etc/services. Если вы удалите или закомментируете
какую-либо строку, программы, нуждающиеся в соответствующей службе, не смогут к ней обратиться.
Удаление WKS из файла /etc/services — тоже плохая идея. Файл sercices содержит важную информацию о соответствии имен и портов служб, и многие программы и утилиты обращаются к этому файлу. Если вы измените имя или номер порта WKS, вы можете нарушить работоспособность соответствующих служб. Однако вы можете добавлять новые службы и ставить им в соответствие не использующиеся номера портов. Во-первых, благодаря этому утилиты наподобие netstat смогут преобразовывать номера портов в символьные имена служб, а во-вторых, некоторые службы не могут работать в случае, если в файле /etc/services не будет соответствующей записи.
Относительно служб следует сделать важное замечание: в операционной среде Linux все порты с номерами ниже 1024 рассматриваются как привилегированные. Только учетная запись root (UID 0) может выполнить связывание служб с этими портами. Любые неиспользуемые порты с номерами выше 1024 могут использоваться кем угодно. Вообще некоторые «неофициальные» общеизвестные порты есть и в диапазоне выше 1024. Такие порты используются по всеобщему соглашению, а не в рамках жестко заданного стандарта, определенного в RFC, поэтому официальный документ RFC не содержит сведений об этих портах. Одним из таких портов является порт 8080, который часто используется в качестве пользовательского порта web-сервера. Существует также несколько исключений из данного правила.
Например, протокол X, тот самый, который используется для функционирования графического интерфейса
GUI вашей системы, использует порты с номерами 6000-6010. Это происходит потому, что протокол X не является защищенным, и поэтому для него нет необходимости выделять один из портов из диапазона 0-
1024.
Всего доступно для использования 65 536 портов. Номера портов выше 65 535 использовать не следует. Это связано с тем, что для портов существует такая же проблема «зацикливания», как и для идентификаторов UID. Иными словами, для хранения номера порта используется 16 бит. В переменной размером 16 бит можно хранить число от 0 до 65 535. Если вы попытаетесь записать в эту переменную число большее, чем 65 535, то на самом деле в нее запишется число из начала диапазона номеров портов.
Например, при попытке записать в переменную число 65 700 на самом деле в переменную запишется число, равное разнице: 65 700 минус 65 536, то есть 164, а это номер из диапазона привилегированных портов. Конечно же, для осуществления подобного обхода системы защиты требуется модификация исполняемого кода системы, однако это известный трюк, который иногда срабатывает.
ПРИМЕЧАНИЕ
Раз мы заговорили об атаках, хочу рассказать вам о том, что некоторые номера портов используются взломщиками
в качестве «ключевых слов», или «маркеров». Например, очень часто приходится сталкиваться с портами 31337 или
31173 или какими-либо подобными комбинациями. Попробуйте заменить в этих числах цифру 3 на букву «е», цифру 1
на букву «I» или «i», а цифру 7 на букву «t». Вы увидите вариацию слова «elite» — элита. Если вы обнаружите, что
ваша система открыла один из этих портов для обслуживания удаленных клиентов, можете быть уверены в том,
что ваша система подверглась атаке и оказалась взломанной.
Некоторые читатели могут подумать, что 65 000 портов — это чрезмерно много. Однако на самом деле это не так. Вспомним описание формирования соединения TCP на основе последовательности SYN-
ACK. Клиент обращается к серверу с запросом, сервер сообщает ему случайно выбранный номер порта с номером выше 1024, через который информация будет пересылаться обратно клиенту. Более подробно об этом рассказывается в следующем разделе «Утилита netstat». Таким образом, каждое соединение TCP на самом деле использует два порта. Например, если вы имеете дело с 30-ю одновременными подключениями к службе www вашей системы, фактически в системе будет задействован 31 порт: 30 из них будут случайно выбранными портами с номерами выше 1024, а один — порт 80, назначенный службе www по умолчанию.
Именно благодаря случайно выбранным портам и порядковым номерам пакетов система получает возможность отслеживать 30 соединений в одно и то же время и обеспечивать их раздельное функционирование. Если вы видите в этом уязвимое место, значит, вы начинаете думать как взломщик — именно так, ставя себя на их место, и следует бороться со злоумышленниками.
Идентифицировать адреса IP и порты, используемые для соединения между двумя системами, — это не такая уж и сложная задача, однако чтобы получить возможность «вставить» себя между двумя системами, взломщик должен угадать код последовательности. Для большинства систем Unix это чрезвычайно сложная задача. Однако некоторые системы для генерации изначального порядкового номера пакета используют функцию, основанную на времени. В этом случае подобрать нужный порядковый номер существенно проще. Атаки такого характера называют man in the middle (человек между). К счастью, реализовать подобное на практике удается далеко не каждому, поэтому среднестатистический дилетант с
замашками компьютерного хакера на подобное, скорее всего, не способен.


Поделитесь с Вашими друзьями:
1   ...   11   12   13   14   15   16   17   18   ...   42


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал