Linux глазами хакера - Михаил Флёнов
Шрифт:
Интервал:
Закладка:
□ at.deny — в этом файле перечисляются пользователи, которым явно запрещен доступ к команде at.
Подобные файлы есть и для сервиса cron:
□ cron.allow — здесь описываются пользователи, которые могут работать с заданиями в cron;
□ cron.deny — в этом файле указываются пользователи, которым недоступен сервис cron.
Я не раз говорил и буду повторять, что все настройки должны идти от запрещения. Сначала необходимо все закрыть, а потом позволить только то и лишь тем пользователям, которым посчитаете нужным. Именно поэтому не стоит пытаться внести всех пользователей в список at.deny. Намного корректнее создать файл at.allow и для начала прописать там только свою учетную запись (будет лучше, если это не root-пользователь). Если вслед за этим вы услышите жалобы пользователей о нехватке команды at, то сначала убедитесь, что им действительно она нужна, и только после этого прописывайте их учетные записи в файл at.allow.
Ни один лишний пользователь не должен работать с командой at. Иногда лучше забыть выполнить команду, чем потерять контроль над системой.
Если вы не запускаете планировщики at и cron, то я рекомендую убрать сервис crond из автозапуска, а лучше даже удалить. Вы не сможете контролировать то, чем не пользуетесь.
В директории /etc есть файл crontab, в котором находятся все настройки сервиса cron. Я рекомендую внести в начало этого файла следующую директиву:
CRONLOG=YES
Это позволит записывать в журнал команды, которые выполнялись в cron. Журнал сервиса находится в файле /var/cron/log.
3.6. Настройка сети
После установки ОС Linux легко определяет сетевые карты. В этом у меня еще не было проблем. Но для работы в сети этого недостаточно. Во время инсталляции вы уже могли указать основные параметры подключения, но иногда появляется необходимость изменить настройки, и не будете же вы переустанавливать систему, когда нужно выполнить всего пару команд.
Для передачи данных по сети необходимо установить и настроить протокол — правила, по которым два удаленных устройства будут обмениваться информацией. Правила описывают, нужно ли устанавливать соединение, как происходит проверка целостности переданных данных, требуется ли подтверждение доставки и т.д. Все это реализовано в протоколе, а ваша задача его правильно настроить.
3.6.1. Адресация в Linux
Основным для Linux является ставший стандартом для Интернета протокол TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол Интернета), который уже установлен, и достаточно его только настроить. Если вы еще не встречались с этим протоколом, то советую прочитать соответствующую книгу по этой теме. Мы не сможем здесь затронуть все нюансы TCP/IP, а остановимся только на базовых понятиях.
Для того чтобы сеть работала, нам необходимо, как минимум, настроить следующие параметры:
1. Указать адрес. Каждое устройство в сети должно иметь свой адрес. Без этого связь невозможна. Представьте себе, если бы дома не имели своего адреса, как бы тогда почтальоны доставляли письма? Имена компьютеров для этого не годятся, и об этом мы поговорим в гл. 11.
Вся адресация в сети происходит по IP-адресу, который состоит из четырех октетов десятичных чисел (для самой распространенной сейчас 4 версии IP-протокола), разделенных точками. Каждое число не может быть более 255. Если вы подключены к Интернету, то для такого интерфейса может быть установлен адрес, который выдал вам провайдер.
Для подключения по локальной сети адреса задаются самостоятельно. Я рекомендую для примера ограничиться адресами вида 192.168.1.x, где x — это число от 1 до 254 (значения 0 и 255 имеют специальное назначение). Каждому компьютеру должен быть присвоен свой адрес, отличающийся последней цифрой. Третий октет может быть любым, но обязательно одинаковым для всех компьютеров вашей сети. Я у себя использую число 77, т.е. адреса машин имеют вид 192.168.77.x.
2. Установить маску подсети. В сочетании с IP-адресом используется номер, называемый маской подсети, позволяющий разбить сеть на более мелкие сегменты (узлы). Из чего состоит ваш домашний адрес? Это город, улица и дом. Сеть имеет только две характеристики — номер сети и номер компьютера внутри нее. Маска определяет, какая часть в IP-адресе относится к сети, а что характеризует компьютер.
Чтобы понять назначение маски, необходимо каждое число перевести в двоичную систему. Для примера рассмотрим маску 255.255.255.0, она в бинарном виде выглядит так:
11111111.11111111.11111111.00000000
Теперь переведем в двоичную систему IP-адрес 192.168.001.001:
11000000.10101000.00000001.00000001
Нужно сопоставить IP-адрес и маску. Там, где стоят единицы — это адрес сети, а нули выделяют адрес компьютера в сети. В маске единицы обязательно должны идти слева, а нули — справа. Нельзя чередовать единицы с нулями. Следующая маска является корректной:
11111111.11111111.00000000.00000000
А вот такая будет ошибочной:
11111111.11111111.00000000.11111111
Справа от нулей не может быть единиц.
Получается, что первые три октета в IP-адресе при маске 255.255.255.0 — это адрес сети, а последний — номер компьютера в этой сети, а т.к. под него в данном случае отведено одно число, максимальное значение которого 255, то нетрудно догадаться, какое количество компьютеров может быть в вашей сети.
Рассмотрим еще пример:
192.168.001.001 — IP-адрес
255.255.000.000 — маска подсети
В данном случае первые два октета — это номер сети, а оставшиеся два — номер компьютера в сети. Число, которое можно задать двумя группами, гораздо больше, чем 255, а значит, и сеть будет масштабнее.
Теперь можно сделать одно заключение. Компьютеры, имеющие один адрес сети (совпадают три первые числа), могут общаться между собой. Машины в разных сетях не видят друг друга. Чтобы они смогли взаимодействовать, необходимо специальное устройство (маршрутизатор), которое объединяет разнородные сети и может передавать пакеты между ними.
3.6.2. Информация о сетевых подключениях
Для получения информации о текущей настройке сетевых карт и протокола TCP/IP необходимо выполнить команду ifconfig. Пример ответа можно увидеть в листинге 3.4.
Листинг 3.4. Информация о конфигурации и состоянии сетиeth0 Link encap:Ethernet HWaddr 00:03:FF:06:A4:6C
inet addr:192.168.77.1 Bcast:192.168.77.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:108 errors:0 dropped:0 overruns:0 frame:0
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:7687 (7.5 Kb) TX bytes:14932 (14.5 Kb)
Interrupt:11 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:122 errors:0 dropped:0 overruns:0 frame:0
TX packets:122 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9268 (9.0 Kb) TX bytes:9268 (9.0 Kb)
Как видите, в листинге 3.4 показано два интерфейса: eth0 и lo. Первый из них — это реальная сетевая карта, имя которой в общем виде имеет вид ethX, где X — число, означающее номер устройства связи в системе. Нумерация начинается с нуля. Если у вас в компьютере две сетевые карты, то их имена будут eth0 и eth1.
Второй интерфейс всегда имеет имя lo (loopback), IP-адрес 127.0.0.1 и маску 255.0.0.0. Этот интерфейс существует в любой системе с сетевой картой и имеет именно этот IP. В принципе, этот адрес ни на что не указывает и не входит ни в какую сеть. Его используют для тестирования и отладки сетевых приложений. Данный интерфейс часто называют петлей, потому что он замыкает на себя. Все пакеты, которые отправляются на этот адрес, посылаются вашему компьютеру.
Помимо сведений о конфигурации сетевых интерфейсов, команда выдает еще много полезной информации, например, количество отправленных и полученных пакетов (параметры RX и TX).
Есть еще один интересный адрес, который можно увидеть у сетевой карты eth0, — параметр Hwaddr (Hardware Address, аппаратный адрес). Его еще часто называют MAC-адресом (Media Access Control, управление доступом к среде). Это 48-разрядный серийный номер сетевого адаптера, присваиваемый производителем. Он уникален, потому что у каждого изготовителя свой диапазон адресов. Так как интерфейс lo создан программно (реально не существует), у него не может быть аппаратного адреса.
3.6.3. Изменение параметров сетевого подключения
С помощью ifconfig можно не только просматривать параметры сетевых подключений, но и изменять их. Для этого нужно указать два параметра:
□ сетевой интерфейс, параметры которого нужно изменить;
□ параметры.
Общий вид команды выглядит так:
ifconfig ethX параметры