TCP/IP. Сетевое администрирование, Крейг Хант
Feb 1, 2017 · 7 minute read · CommentsНедостаточно внимательно прочитал описание и вот результат. Вместо книги о базовых сетевых протоколах прочитал руководство по настройке сети. Хорошошее руководство, надо сказать. Но некоторые главы откровенно устарели, например, про настройку Apache или собственного email сервера. Остальное же актуально и наверное еще долго им останется.
Заметки:
-
Адресная маска работает следующим образом: если бит маски включен, соответствующий ему бит адреса входит в раздел адреса сети, а если бит маски сброшен, соответствующий бит адреса входит в раздел адреса узла. Например, для комбинации адреса 172.22.12.4 и сетевой маски 255.255.255.0, в которой включено 24 бита и сброшено 8 бит, первые 24 бита адреса представляют номер сети, а последние 8 бит - адрес узла. Сочетание адреса и маски позволяет определить, что речь идет об адресе узла 4 сети 172.11.12 Указывать одновременно адрес и маску в десятичном представлении через точку не очень удобно, поэтому есть сокращенное представление. Вместо записи “сеть 172.31.26.32 с маской 255.255.255.254” можно писать просто 172.31.26.32/27. Представление имеет форма адреса/длинна префикса, где длинна префикса - число бит в разделе сети адреса. В отсутствии подобной записи существует большая вероятность, что адрес 172.31.26.32 будет интерпретирован неверно.
-
Новая модель маршрутизации базируется на равенстве наборов автономных систем, называемых доменами маршрутизации Домены маршрутизации обмениваются информацией маршрутизации с другими доменами при помощи протокола граничных шлюзов (Border Gateway Protocol, BGP). Каждый домен маршрутизации обрабатывает информацию, полученную от других доменов.
-
Для отображения таблицы маршрутизации воспользуемся командой
route
с ключом -n. Ключ -n предотвращает преобразование адресов IP в имена узлов, облегчая чтение результата. -
Посмотреть на буфер маршрутизации можно при помощи команды
route
с ключом -C -
/etc/host
- лежит Таблица узлов -
Команда
ifconfig
позволяет устанавливать или определять значения настройки сетевых интерфейсов. -
Сетевые интерфейсы -
dmesg
-
netstat -in
Ключ -i предписывает программе netstat отображать состояние всех настроенных сетевых интерфейсов, а ключ -n - использовать при выводе числовой формат. -
nslookup
– это инструмент отладки, который входит в состав пакета BIND. Программа позволяет пользователю напрямую обращаться к серверу имен с запросами и получать любую информацию, хранимую в распределенной базе данных DNS. Команда nslookup помогает определить факт работоспособности сервера и корректность его настройки, а также запросить информацию, которой владеют удаленные серверы.
При следующей перезагрузке данной системы Red Hat будет запущен вебсервер. Чтобы запустить веб-сервер без перезагрузки, необходимо выполнить сценарий httpd из командной строки: /etc/init.d/httpd start
-
Некоторые администраторы следуют традициям, но чаще всего настройки в полном объеме хранятся в файле httpd.conf. Это предпочтительный подход, именно его мы используем в данной главе. Расположение файла httpd.conf зависит от операционной системы. В системе Solaris он хранится в каталоге /etc/apache; в системе Red Hat – в каталоге /etc/httpd/conf; а в системах Caldera – в каталоге /etc/httpd/apache/conf. Страница руководства, посвященная Apache, должна содержать сведения о том, где в данной системе хранится файл httpd.conf; в противном случае просто обратитесь к сценарию, запускающему httpd при загрузке системы. Расположение файла httpd.conf в этом файле определено переменной сценария либо аргументом ключа -f в командной строке httpd. Разумеется, есть еще один способ найти этот файл – при помощи команды find, как в следующем примере для Caldera Linux:
find / -name httpd.conf -print /etc/httpd/apache/conf/httpd.conf
-
Работая в системе, вы можете непосредственно наблюдать за попадающей в файл журнала информацией посредством команды tail с ключом -f:
$ tail –l 1 –f /var/log/httpd/apache/error_log
Команда tail выводит набор строк из конца файла; в данном случае – из файла /var/log/httpd/apache/error_log. Ключ -l определяет количество выводимых строк. В данном примере -l 1 предписывает tail отобразить (одну) последнюю строку файла. Ключ -f предписывает процессу tail продолжать работу, что позволяет наблюдать записи по мере их добавления в файл. Таким образом, у нас есть возможность наблюдать за файлом в реальном времени. -
Серверы, действующие в качестве промежуточных звеньев между клиентами и веб-серверами, называются прокси-серверами (proxy servers, посредники). При использовании брандмауэра прямой веб-доступ часто блокируется. В этом случае пользователи подключаются к прокси-серверу по локальной сети, тогда как прокси-сервер обладает полномочиями для подключения к удаленному веб-серверу. Прокси-серверы могут хранить копии веб-страниц с удаленных веб-серверов в целях повышения производительности, сокращения объема трафика в территориальной сети и уменьшения нагрузки на популярные веб-сайты.
-
Сам по себе сервер Apache надежен и достаточно защищен. Наибольшей угрозой безопасности сервера является пользовательский код, исполняемый сервером – как правило, речь идет о программах CGI (Common Gateway Interface) и SSI (Server Side Includes).
-
Злоумышленники часто оставляют после себя файлы или сценарии, позволяющие им повторно войти в систему либо получить полномочия администратора. Используйте команду
ls -a | grep
^`.` для поиска файлов с именами, начинающимися с точки (.). Злоумышленникам особенно нравятся такие имена, как .mail, .xx, … (три точки), .. (точка, точка, пробел) или же ..^G (точка, точка,+ ). Если найден файл с таким или подобным именем, вероятен взлом. (Помните, что в каждом каталоге, за исключением корневого, существует один каталог с именем . и один каталог с именем …) Изучите содержимое всех подозрительных файлов и следуйте обычной процедуре доклада информации о происшествии. -
В простейшем случае брандмауэр – это фильтрующий маршрутизатор, который блокирует нежелательный трафик. Используйте возможности маршрутизации многосетевого узла под управлением Linux и функции фильтрации iptables для создания фильтрующего маршрутизатора. Ядро Linux делит трафик маршрутизатора на три категории и применяет для каждой из категорий отдельный набор правил фильтров: INPUT Входящий трафик, адресованный процессу локальной системы, должен пройти через правила фильтра INPUT, прежде чем будет принят системой. OUTPUT Исходящий трафик, источником которого является локальная система, должен пройти через правила фильтра OUTPUT, прежде чем будет отправлен. FORWARD Трафик, исходящий от внешней системы и адресованный другой внешней системе, должен пройти через правила фильтра FORWARD.
-
Примеры команд iptables Если собрать все описанные средства, мы получим брандмауэр, способный защитить сеть. Предположим, что у нас есть Linux-маршрутизатор, подключенный к сетевому периметру с адресом 172.16.12.254 через интерфейс eth0 и к внешней сети с адресом 192.168.6.5 через интерфейс eth1. Кроме того, предположим, что в сетевом периметре лишь два сервера – сервер sendmail и сервер Apache. Вот пример команд iptables, которые мы могли бы выполнить на этой Linux-системе с целью защиты сетевого периметра:
iptable –F INPUT
iptables –F FORWARD
iptables –A INPUT –i eth1 –j DROP
iptables –A FORWARD –i eth1 –s 172.16.0.0/16 –j DROP
iptables –A FORWARD –o eth1 –d 172.16.0.0/16 –j DROP
iptables –A FORWARD –d 172.16.12.1 25 –j ACCEPT
iptables –A FORWARD –d 172.16.12.6 80 –j ACCEPT
iptables –A FORWARD –j DROP
-
Первые две команды при помощи ключа -F очищают наборы правил, с которыми мы намереваемся работать. Третья команда предписывает удалять все пакеты из внешней сети, адресованные процессам Linux-маршрутизатора. Мы не хотим, чтобы к процессам маршрутизатора обращался кто-либо из внешнего мира. Следующие две команды предписывают удалять пакеты, передаваемые во внешний мир с внутреннего адреса. Если пакеты приходят через внешний интерфейс и имеют внутренний адрес, они удаляются. Точно так же, если пакеты, передаваемые через внешний интерфейс, имеют конечный адрес в локальной сети, они удаляются. Эти правила говорят, что если пакеты из внешней сети (проходящие через интерфейс eth1) некорректно используют адреса внутренней сети (172.16), кто-то пытается организовать атаку, основанную на подделке пакетов, и такие пакеты следует удалять. Следующие два правила практически идентичны. Они предписывают принимать пакеты, если пункт назначения и номер порта соответствуют конкретному серверу. Например, порт 25 – это порт SMTP, а 172.16.12.1 – адрес почтового сервера, тогда как порт 80 – это порт HTTP, а 172.16. 12.6 – адрес веб-сервера. Мы принимаем такие входящие соединения, поскольку они адресованы нужным системам. Последнее правило запрещает пропускать любой другой трафик. Эти примеры иллюстрируют мощь встроенных механизмов фильтрации Linux и содержат достаточный объем информации, чтобы вы могли начать самостоятельную работу.
-
Инструменты, перечисленные в каталоге и описанные в этой книге:
ifconfig
- Предоставляет сведения о базовых настройках интерфейса. Полезна для поиска неверных IP-адресов, некорректных масок подсетей, а также неверных широковещательных адресов.arp
- Предоставляет информацию о преобразовании адресов Ethernet/IP. Может использоваться для обнаружения систем локальной сети, при настройке которых использовался неверный IP-адрес.netstat
- Предоставляет самую разнообразную информацию. Повсеместно используется для вывода подробной статистики по каждому из сетевых интерфейсов, по сетевым сокетам, а также таблицам маршрутизации.ping
- Позволяет определить, доступен ли удаленный узел. ping отображает статистику по потерянным пакетам и времени доставки.nslookup
- Предоставляет информацию о службе имен DNS.dig
- Также предоставляет информацию о службе имен. По функциональности схожа с nslookup.traceroute
- Выводит информацию о каждом из транзитных участков маршрута, по которому проходит пакет от вашей системы до удаленной.snoop
- Анализирует отдельные пакеты, которыми обмениваются узлы сети. snoop – это анализатор протоколов TCP/IP, включенный в состав системы Solaris 8. Он позволяет изучать содержимое пакетов, включая заголовки, и наиболее полезен для анализа проблем, связанных с протоколами.tcpdump
– инструмент с аналогичными функциями, он поставляется в системах Linux.