1196
.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
«Нижегородский государственный архитектурно-строительный университет»
А. И. Домрачев
АДМИНИСТРИРОВАНИЕ СЕРВЕРОВ НА ПЛАТФОРМЕ "UNIX"
Учебно-методическое пособие
по выполнению лабораторных работ для обучающихся по дисциплине «АДМИНИСТРИРОВАНИЕ СЕРВЕРОВ НА
ПЛАТФОРМЕ "UNIX"»
по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля
Нижний Новгород
2016
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
«Нижегородский государственный архитектурно-строительный университет»
А. И. Домрачев
АДМИНИСТРИРОВАНИЕ СЕРВЕРОВ НА ПЛАТФОРМЕ "UNIX"
Учебно-методическое пособие
по выполнению лабораторных работ для обучающихся по дисциплине «АДМИНИСТРИРОВАНИЕ СЕРВЕРОВ НА
ПЛАТФОРМЕ "UNIX"»
по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля
Нижний Новгород ННГАСУ
2016
УДК 681.3(075)
Домрачев А. И./ АДМИНИСТРИРОВАНИЕ СЕРВЕРОВ НА ПЛАТФОРМЕ "UNIX" [Электронный ресурс]: учеб. – метод. пос./ А. И. Домрачев; Нижегор. гос. архитектур. – строит. ун-т – Н. Новгород: ННГАСУ, 2016. - 12 с. 1 электрон. опт.
диск (CD-R)
Приводятся цели, задания и порядок выполнения лабораторных работ, а также контрольные вопросы в конце каждой лабораторной работы.
Предназначено для обучающихся в ННГАСУ по дисциплине «АДМИНИСТРИРОВАНИЕ СЕРВЕРОВ НА ПЛАТФОРМЕ "UNIX"» по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля.
© А. И. Домрачев © ННГАСУ. 2016.
Лабораторная работа № 1. Основные команды Linux
Цель работы: изучить основные команды Linux.
Задание: выполнить следующие команды.
Файлы и каталоги.
|
Команда, параметры |
|
Назначение |
Ключи |
|
|
|
|
|
|
|
|
sudo -s |
|
Получение прав суперпользователя |
|
|
|
|
|
|
|
|
|
man команда |
|
Показывет справку по команду |
|
|
|
|
|
|
|
|
|
pwd |
|
Показывает текущий каталог |
|
|
|
|
|
|
|
|
|
cd путь_к_каталогу |
|
Делает каталог текущим |
|
|
|
|
|
|
|
|
|
ls путь_к_каталогу |
|
Просмотр содержимого |
-l показывает сведения о файлах в |
|
|
|
|
каталога |
каталоге |
|
|
|
|
|
|
|
|
cp путь_к_файлу |
|
Копирует файл |
-r копирует каталог |
|
|
путь_куда_копирвать |
|
|
|
|
|
|
|
|
|
|
|
ln путь_к_файлу |
|
Создаёт ссылку на файл |
-s символическая ссылка (аналог |
|
|
путь_к_ссылке |
|
|
ярлыка в Windows) |
|
|
|
|
|
|
|
|
rm путь_к_файлу |
|
Удаляет файл |
-r удаляет каталог |
|
|
|
|
|
|
|
|
cat путь_к_файлу |
|
Выводит содержимое файла |
|
|
|
|
|
|
|
|
|
du путь_к_каталогу |
|
Выводит размер каталога dir |
-h выводит размеры в понятном виде |
|
|
|
|
|
|
|
|
head путь_к_файлу |
|
Выводит начало файла |
-n N первые N строк (N-число) |
|
|
|
|
|
|
|
|
tail путь_к_файлу |
|
Выводит конец файла |
-n N последние N строк (N-число) |
|
|
|
|
|
|
|
|
touch путь_к_файлу |
|
Создаёт файл или изменяет время доступа к существующему файлу |
|
|
|
|
|
|
|
|
|
grep шаблон путь_к_файлу |
|
Выводит строки файла, |
-r — для всех файлов в каталоге |
|
|
|
|
содержащие шаблон |
|
|
|
|
|
|
|
|
|
echo строка |
|
Выводит на экран строку |
|
|
|
|
|
|
|
|
|
Команда > путь_к_файлу |
|
Записывает результат команды в файл (>> - в конец файла) |
|
|
|
|
|
|
|
|
|
mkdir путь_к_каталогу |
|
Создаёт каталог |
|
|
|
|
|
|
|
|
|
Пользователи и права |
|
|
|
|
|
|
|
|
||
useradd vasya |
Создать пользователя vasya |
|
|
||
|
|
|
|
||
userdel vasya |
Удалить пользователя vasya |
|
|
||
|
|
|
|||
passwd vasya |
Задать пароль пользователю vasya (пароль при вводе не отображается) |
|
|||
|
|
|
|||
sudo -u vasya команда |
Выполнение команды от пользователя vasya |
|
|||
|
|
|
|||
who или w |
Просмотр вошедших в систему пользователей |
|
|||
|
|
|
|||
chown vasya 1.txt |
Сделать vasya пользователем-владельцем файла 1.txt |
|
|||
|
|
|
|||
chgrp users 1.txt |
Сделать users группой-владельцем файла 1.txt |
|
|||
|
|
|
|||
chmod u+x 1.txt |
Дать пользователю-владельцу право на выполнение файла 1.txt |
|
|||
|
|
|
|||
chmod g-w 1.txt |
Отнять у группы-владельца право на чтение файла 1.txt |
|
|||
|
|
|
|
|
|
3
|
Процессы |
|
|
|
|
ps |
|
Вывод процессов. -l – развёрнутая информация, -A – для всех пользователей |
|
|
|
top |
|
Вывод информации о загруженности сервера и наиболее активных процессов |
|
|
|
kill |
|
Отправка процессу сигнала (обычно это приводит к завершению процесса). |
|
|
-k 9 — жёсткое завершение процесса. |
|
|
|
nice |
|
Изменяет приоритет процесса. |
|
|
|
|
Сеть, сервисы |
|
|
|
|
netstat |
|
Состояние сетевых подключений |
|
|
|
ssh |
|
Подключение к удалённому серверу |
|
|
|
scp |
|
Копирование файлов по сети |
|
|
|
service |
|
Запуск, останов сервисов |
|
|
|
ping |
|
Проверка связи с другими компьютерами |
|
|
|
Вопросы по работе:
Знать все перечисленные команды.
4
Лабораторная работа №2. Настройка сети в Linux.
Цель работы: изучить настройку сети в Linux.
В этой работе рассмотрим настройку классической схемы подключения Linux сервера к интернету через Linux маршрутизатор.
Сервер-1
Интернет --- Маршрутизатор --- коммутатор --- Сервер-2
Сервер-3
Такая схема позволяет использовать 1 IP адрес для подключения к интернету нескольких серверов и управлять доступом к ним через маршрутизатор. В работе необходимо подключиться к серверу за маршрутизатором и настроить на нём параметры сети. В качестве основного шлюза необходимо указать доступный интерфейс маршрутизатора.
На маршрутизаторе необходимо включить маршрутизацию и задать правила для преобразования проходящих через него пакетов. Первое правило - общее для всех серверов - для настройки трансляции адресов из внутренней сети во внешнюю. Второе правило — для каждого сервера в отдельности — правило перенаправления пакетов из внешней сети во внутреннюю. Сервис, для которого будет производиться перенаправление — сервис удалённого управления SSH, который ожидает подключения на 22-м порту TCP.
Команда или файл |
Описание |
|
|
/proc/sys/net/ipv4/ip_forward |
Для включения маршрутизации должен содержать 1 |
|
|
/etc/network/interfaces |
Файл, в котором хранятся сетевые настройки |
|
|
ssh пользователь@IP-адрес |
Подключение по протоколу SSH |
|
|
reboot |
Перезагрузка компьютера |
|
|
route |
Просмотр таблицы маршрутизации |
|
|
ifconfig |
Просмотр сетевых настроек |
|
|
iptables -A POSTROUTING –t nat -s адрес-сети- |
Правило трансляции адресов |
серверов/маска -o имя-внешнего-интерфейса- |
|
маршрутизатора -j SNAT --to-source адрес- |
|
внешнего-интерфейса-маршрутизатора |
|
|
|
iptables -A PREROUTING –t nat -i имя-внешнего- |
Правило перенаправления порта с внешнего интерфейса |
интерфейса-маршрутизатора -p tcp --dport порт- |
маршрутизатора на сервер. |
на-внешнем-интерфейсе -j DNAT --to-destination |
|
адрес-сервера:порт |
|
|
|
netstat -tna |
Просмотр открытых TCP портов, ожидающих |
|
подключения и установленных соединений. |
|
|
|
5 |
iptables-save |
Вывод правил Iptables |
|
|
sudo команда |
Выполнение команды с правами root |
|
|
iptables -t nat -D POSTROUTING 2 |
Удалить правило №2 из таблицы nat POSTROUTING |
|
|
iptables-restore |
Восстановление правил Iptables |
|
|
/etc/rc.local |
Команды из этого файла выполняются после загрузки |
|
системы с правами root |
|
|
Задания поработе: |
|
1.Подключиться к серверу за маршрутизатором и настроить на нём сеть. Проверить, что сетевые настройки сохранились после перезагрузки.
2.На маршрутизаторе настроить трансляцию адресов. Проверить связь сервера с каким-нибудь компьютером внешней сети.
3.Настроить перенаправление какого-либо порта на внешнем интерфейсе маршрутизатора на порт для удалённого управления сервера. Подключиться из внешней сети к своему серверу.
Вопросы по работе:
1.Что нужно сделать, чтобы в указанной сети с сервера был доступен интернет?
2.Что нужно сделать, чтобы из интернета был доступен сервер?
3.Для чего настраиваются трансляция адресов и перенаправление портов, приведите примеры.
6
Лаборатораная работа №3. Настройка веб сервера и сервера БД.
Веб сервер будем устанавливать на серверы за маршрутизатором. Поскольку устанавливать программы будем из интернета, то необходимо указать DNS сервер.
Команда, файл или конфигурация |
Описание |
|
|
ifquery имя-интерфейса |
Проверка файла настроек интерфейса |
|
|
dns-nameservers адрес-сервера-ДНС |
Настройка ДНС в файле конфигурации сети (interfaces) |
|
|
dig имя-сервера-интернет |
Проверка работы ДНС |
|
|
dpkg -l| |
Список установленных программ |
|
|
apt-get install имя-программы |
Установка программы |
|
|
/etc/apache2/sites-enabled/000-default.conf |
Файл настройки сайта-по-уполчанию |
|
|
DocumentRoot |
Директива настройки сайта. Путь к HTML-файлам |
|
|
service имя-программы-сервера status |
Проверка запущен ли сервер |
|
|
service имя-программы-сервера restart |
Перезапуск программы-сервера |
|
|
netstat –tan |
Просмотр открытых TCP портов |
|
|
<?php phpinfo(); ?> |
Содержимое файла index.php, который покажет настройки php |
|
|
mysql -u имя_пользователя -p |
Подключиться к серверу Mysql из командной строки |
|
|
create database имя_БД ; |
Создание базы данных |
|
|
GRANT ALL PRIVILEGES ON имя_базы_данных.* |
Создание пользователя mysql |
TO 'имя_пользователя'@'адрес_компьютера' |
|
IDENTIFIED BY 'пароль' WITH GRANT OPTION; |
|
|
|
Задания по лабораторной работе: |
|
1.Настроить DNS на своём сервере и проверить его работу.
2.Установить веб сервер ( программа apache2).
3.Сделать веб сервер доступным из сети ННГАСУ путём перенаправления порта с внешнего интерфейса маршрутизатора.
4.Подключиться к своему веб серверу. Для этого в браузере отключить использование прокси и перейти по адресу: IP-маршрутизатора:порт-проброшенный-на-ваш-сервер.
5.Установить поддержку PHP в apache2 (программа php5). После установки веб сервер перезапустить.
6.Проверить поддерживает ли веб сервер язык PHP, для чего создать файл index.php, который отобразит настройки PHP.
7.Установить сервер MySql (программа mysql-server)
8.Подключитесь к серверу mysql из командной строки и создайте базу данных
9.Создайте пользователя mysql с возможностью подключения к созданной БД только со своего компьютера (адрес компьютера localhost) и второго пользователя с возможностью подключения к БД из своей подсети (адрес подсети 192.168.0.%).
10.Установите программу поддержки mysql для языка php ( php5-mysql) и перезапустите веб сервер.
11.Скачайте по ссылке http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.10/phpMyAdmin-4.2.10-all- languages.tar.bz2 программу Phpmyamin, распакуйте архив и переместите содержимое в каталог веб-сайтов. Зайдите в phpmyadmin и подключитесь к созданной вами базе.
12.Создайте в базе данных любую таблицу и заполните её любыми данными.
7
Вопросы по работе:
1.Для чего нужен ДНС сервер и как его настроить?
2.Как установить программу?
3.Как проверить установлена ли программа?
4.В какой папке хранятся настройки веб сервера?
5.Как узнать, в какой папке веб сервер хранит HTML и PHP файлы.
6.Какие нужно произвести действия для того, чтобы создать базу дынных Mysql?
7.Как управлять базой данных?
8
Лабораторная работа 4. Протокол SSH.
Протокол SSH предназначен для создания шифрованного соединения между компьютерами. Это соединение может использоваться для управления компьютером или передачи файлов. Сервер SSH ожидает подключений на порту 22 TCP.
Описание |
Команда, файл или параметр настройки |
|
|
Клиент SSH для передачи файлов |
scp пользователь@адрес:путь папка_назначения |
|
|
Создание пары криптографических ключей |
ssh-keygen |
|
|
Каталог, где хранятся закрытые ключи |
Домашний_каталог/.ssh/ |
|
|
Файл, где хранятся открытые ключи |
Домашний_каталог/.ssh/authorized_keys |
|
|
Файл, в котором хранятся периодические задачи |
/etc/crontab |
|
|
Текущая дата |
date +формат |
|
|
Занести результат команды в переменную |
DATA=`date +формат` (без пробелов) |
|
|
Использование переменной |
FILENAME=/backup/имя_файла_{$DATA} |
|
|
tar –czf имя_архива.tar.gz файлы_и_каталоги |
Создать архив файлов и каталогов |
|
|
mysqldump –uпользователь -pпароль имя_базы > |
Создать архив базы данных |
файл_архив.sql |
|
|
|
Для того чтобы не вводить пароль при авторизации или копировании файлов, можно воспользоваться авторизацией с помощью криптографического алгоритма с открытым ключом (RSA). Для этого нужно сгенерировать открытый и закрытый ключи, а затем поместить открытый ключ на узел, к которому нужно организовать доступ в файл открытых ключей (текст из файла открытого ключа поместить в файл открытых ключей).
Для того, чтобы создать задачу по расписанию нужно внести изменения в файл /etc/crontab. Формат файла следующий:
Минуты часы число месяц день_недели пользователь путь_к_файлу_задачи
Все параметры, обозначающие время запуска задаются числом или знаком *, или */число. * означает каждую минуту, час или день. */15 означает раз в 15 минут, часов или дней.
Файл задачи – это сценарий, каждая строка которого представляет собой команду. После создания файла не забывайте дать права на выполнение. Для запуска используйте полный путь к файлу, иначе система будет искать его в каталогах, в которых хранятся исполняемые файлы команд. Путь к текущему каталогу может быть заменён символом точка.
Задания:
1.Сделать так, чтобы с одного узла можно было подключаться к другому узлу, не вводя пароль.
2.Создайте сценарий ежедневного копирования сайта и базы данных с вашего компьютера на другой компьютер в файл /backup/имя_файла_дата
9