Linux глазами хакера - Михаил Флёнов 14 стр.


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

Теперь рассмотрим несколько примеров.

00 5 * * * /home/flenov/backup1_script

Здесь заполнены только часы и минуты. Так как остальные параметры не указаны, то команда будет выполняться ежедневно в 5, вне зависимости от дня недели, числа или месяца.

00 20 * * 1 /home/flenov/backup2_script

Эта команда выполняет тот же файл сценария каждый понедельник (день недели равен 1) в 20:00.

00 * * * * /home/flenov/backup3_script

Такая команда будет выполняться каждый час ровно в 00 минут.

Внимание!

Если вы запустили программу crontab и, не введя команд, нажмете клавиши <Ctrl>+<D>, то все предыдущие задания сотрутся. Будьте внимательны, для выхода из программы без сохранения используйте только клавиши <Ctrl>+<C>.

Помимо этого, у сервиса cron есть несколько дополнительных директорий, упрощающих создание расписаний. Вот распределение выполняемых сценариев по каталогам:

/etc/cron.hourly - ежечасно;

/etc/cron.daily - ежедневно;

/etc/cron.weekly - еженедельно;

/etc/cron.monthly - ежемесячно.

Вроде все просто, но если сценарий выполняется еженедельно, то в какое время и в какой день недели? Все станет ясно, если посмотреть на конфигурационный для сервиса cron файл /etc/crontab. В нем есть следующие строки:

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

В начале строки указывается время выполнения. Вы можете изменить его так, что сценарии из директории /etc/cron.monthly начнут выполняться ежечасно. Так что, названия чисто символические и только по умолчанию. Они легко меняются.

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

Чтобы просмотреть список существующих заданий, выполните команду crontab с параметром -1. Для редактирования уже созданных записей выполните команду crontab с параметром . В ответ на это запустится текстовый редактор, в котором можно корректировать записи. Кстати, если вы не работали с этим редактором, то могут возникнуть проблемы, потому что он достаточно специфичный. Тогда нажмите клавишу <F1> и воспользуйтесь справкой. Команды тоже вводятся необычно. По выходу из этого редактора изменения вступают в силу мгновенно, а чтобы закончить работу без сохранения изменений, наберите ":q!" и нажмите клавишу <Enter>.

В принципе, все задания cron хранятся в текстовом виде. Для каждого пользователя формируется свой crontab-файл в директории /var/spool/cron/файл. Имя созданного файла совпадает с именем пользователя.

Вот пример содержимого crontab-файла:

#DO NOT EDIT THIS FILE - edit the master and reinstall.

#(- installed on Thu Jan 27 13:55:49 2005)

#(Cron version--$Id:crontab.c,v2.13 1994/01/17 03:20:37 vixie Exp $)

10 * * * * ls

Вы можете редактировать его напрямую, без использования команды crontab -е.

3.5.3. Безопасность работ

Напоследок хочется добавить во все преимущества команды at ложку дегтя. Злоумышленники очень любят использовать эту инструкцию в своих целях. Например, хакер может завести учетную запись с максимальными правами. Затем настроить команду at так, чтобы после выхода она удаляла запись и чистила следы его пребывания в системе.

В каталоге /etc есть два файла, которые вы должны настроить:

□ at.allow - по умолчанию этого файла может и не быть. Если он существует, то только те пользователи, которые в нем прописаны, могут выполнять команду at;

□ 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 параметры

Рассмотрим значения, которые вы можете использовать:

down - остановить интерфейс. Например, для завершения работы сетевой карты eth0 выполните команду: ifconfig eth0 down. Если после этого исполнить директиву ifconfig без параметров, то в результирующем списке сетевого интерфейса eth0 не будет видно;

up - включить интерфейс, если он был остановлен. Например, если вы хотите восстановить работу сетевой карты eth0, выполните команду: ifconfig eth0 up;

□ IP-адрес - если вы хотите изменить IP-адрес, то укажите его повое значение в качестве параметра. Например, если нужно поменять текущий адрес на 192.168.77.3, то выполните команду ifconfig eth0 192.168.77.3. Одной командой можно изменить и маску сети. Для этого выполняем директиву ifconfig eth0 192.168.77.3 netmask 255.255.0.0. Здесь, после ключевого слова netmask, показана новая маска сети.

Если в момент изменения адреса сетевой интерфейс отключен, то его можно сразу же запустить командой ifconfig eth0 192.168.77.3 netmask 255.255.0.0 up.

Это основные возможности директивы ifconfig, с которыми вам придется сталкиваться в реальной жизни. Более подробную информацию можно получить, если выполнить команду man ifconfig.

3.6.4. Базовые настройки сети

С помощью команды hostname можно просмотреть имя компьютера (хоста). Выполните эту команду и перед вами появиться имя, которое вы задали во время установки. Чтобы изменить его, нужно указать новое имя в качестве параметра. Например, следующая команда устанавливает хост "server":

hostname server

Основные настройки сети находятся в файле /etc/sysconfig/network. Давайте посмотрим на его содержимое:

cat /etc/sysconfig/network

В результате на экране появится примерно следующая информация:

NETWORKING=yes

FORWARD_IPv4=true

HOSTNAME=FlenovM

Нет смысла изменять какие-либо из этих параметров вручную, когда есть специализированные утилиты. Этот файл я показал вам только для примера.

3.7. Подключение к сети Интернет

К первоначальным настройкам системы я отношу и подключение к Интернету. Если лет 10 назад это было диковинкой и дорогим удовольствием, то сейчас Интернет стал неотъемлемой частью любого компьютера. Трудно себе представить жизнь без общения и обмена информацией.

Всемирная сеть является громадным хранилищем всевозможных данных. Здесь вы сможете найти различное программное обеспечение или документацию. Впоследствии я дам ссылки в Интернете на программы, которые смогут облегчить жизнь, и их необходимо будет скачать (см. приложение 2). Без доступа в сеть это невозможно.

Я не стану описывать все возможные настройки соединений, потому что конкретные нюансы вы сможете узнать у вашего провайдера. Нас будет интересовать соединение через простой модем.

Если вы установили графическую оболочку, то в ней соединение с Интернетом создать легко. Да и работать с Web-страницами в графическом режиме (в браузерах типа Mozilla) намного проще, удобнее и приятнее. Именно для этого вы обязательно должны настроить графическую оболочку, но пользоваться ею необходимо в крайнем случае и только на рабочей станции, но не на действующем сервере.

На данный момент самой простой и удобной программой для создания интернет-соединения является Kppp. Для ее запуска вызовите главное меню Linux и выберите пункт Интернет/Kppp. Должно открыться окно, как показано на рис. 3.5.

Михаил Флёнов - Linux глазами хакера

Рис. 3.5. Главное окно программы Kppp

Для начала щелкните кнопку Настройка для указания параметров нового соединения. На это действие перед нами открывается диалоговое окно с вариантами настройки: использование мастера или ручной режим. В мастере есть список крупных провайдеров разных стран, и достаточно только выбрать нужную стоку и указать пару дополнительных значений. Если ваш провайдер услуг Интернета отсутствует, то придется делать настройку самостоятельно.

В ручном режиме появляется окно, в котором чаще всего достаточно указать только номер телефона для дозвонки. Остальные параметры в большинстве случаев используют значения по умолчанию.

Настроив соединение, достаточно только ввести имя пользователя и пароль, которые вам дал поставщик услуг, и нажать кнопку Подключиться. Если все указано верно, то через несколько секунд (минут) вы окажетесь во всемирной сети.

Назад Дальше