# Лабораторная 1. Веб-сервер, TFTP

Цель:<br><br>
Получить базовые навыки работы для работы с файловым сервером, и веб-сервером<br><br>
Задачи:<br>
1.	Подключится к виртуальной машине на облачной платформе СПбГУТ
2.	Установить и настроить tftp сервер
3.	Проверить tftp сервер
4.	Настроить веб-сервер
5.	Проверить веб-сервер путем подключения
Схема виртуального стенда:
 <div drawio-diagram="100"><img src="https://docs.resds.ru/uploads/images/drawio/2022-02/dlP6fT5CWmC9cY8m-drawing-3-1645529260.png"></div>
 
#### Задание 1. TFTP.
Подключиться к `labnode1`, логин - `labuser`, пароль - `labpass1!`
Для начала необходимо установить пакеты tftp  сервера, клиента, и xinetd
```sh
sudo yum install tftp tftp-server xinetd
```
После того как мы установили tftp сервер, нам необходимо настроить в первую очередь демона tftp для работы с подсистемой запуска xinetd, для этого нам необходимо отредактировать конфигурационный файл xineted
```sh
sudo vi /etc/xinetd.d/tftp
```
В нем необходимо модифицировать два параметра server_args и disable. Аргумент server_args отвечает за те аргументы, которые будут передаваться серверу при его старте, а параметр disable позволяет изменять состояние заранее прописанных сервисов, без комментирования\удаления их из конфигурационных файлов
```
server_args = -c -p -u tftpd -U 111 -s /var/lib/tftpboot
disable = no
```
После того как мы отредактировали конфигурационный файл, нам необходимо создать отдельного пользователя tftp:
```sh
sudo useradd --no-create-home -s /sbin/nologin tftpd 
```
Параметр –no-create-home, означает, что при создании пользователя нет необходимости нет необходимости создавать домашнюю директорию, этот параметр часто применяется если необходимо создать сервисного пользователя.
После этого нам необходимо изменить владельца папки tftpboot
```sh
sudo chown tftpd:tftpd /var/lib/tftpboot 
```
Далее выставляем разрешения на папку
```sh
sudo chmod 777 /var/lib/tftpboot
```
После того как мы применили прошлые настройки нам необходимо перезапустить xinetd
```sh
sudo systemctl restart xinetd
```
Так же необходимо добавить демоны в автозагрузку, для этого нужно выполнить команду:
```sh
sudo systemctl enable xinetd
sudo systemctl enable tftp
```
#### Задание 2. Веб сервер

Веб-сервер – это программа, работающая в режиме ожидания запросов от пользовательских программ. Взаимодействие сервера с клиентом происходит чаще всего по протоколу HTTP. В качестве веб сервера мы будем использовать Apache. В CentOS пакет Apache называется httpd в первую очередь нам будет необходимо установить его.
```sh
sudo yum install httpd
```
После установки нам необходимо сразу запустить и добавить веб-сервер в автозагрузку.
```sh
sudo systemctl start httpd
sudo systemctl enable httpd
 ```
Для проверки работы Apache можно использовать команду
```sh
sudo systemctl status httpd
```
При правильной работе вы получите аналогичное состояние работы сервиса
[![Рисунок1.png](https://docs.resds.ru/uploads/images/gallery/2022-02/scaled-1680-/8k1qLGzUDzTrmHn4-risunok1.png)](https://docs.resds.ru/uploads/images/gallery/2022-02/8k1qLGzUDzTrmHn4-risunok1.png)


#### Задание 3. Тестовая HTML страница

После этого создадим папку, которую будем использовать в дальнейших своих работах 
```sh
sudo mkdir /var/www/deploy
```
В этой папке создаем проверочную страницу
```sh
sudo vi /var/www/deploy/test
```
Заполняем его простым текстом
```
Бригада №
Фамилия 1 человека в бригаде
Фамилия 2 человека в бригаде
```
Создаем новый конфигурационный файл
```sh
sudo vi /etc/httpd/conf.d/default.conf
 ```
И заполняем его по примеру
```nginx 
<VirtualHost *:80>
    DocumentRoot /var/www/deploy
    <Directory /var/www/deploy>
        AllowOverride None
	    Require all granted
    </Directory>
</VirtualHost>
 ```
После этого необходимо изменять владельца всех файлов в папке /var/deploy на Apache
```sh
sudo chown -R apache:apache /var/www/deploy
```
Перезапускаем веб-сервер
```sh
sudo systemctl restart httpd
```
После этого с помощью консольной программы curl проверяем работу веб сервера
```sh
curl http://192.168.0.10/test
```
После этого нам в выводе будет показан текст который мы записали ранее в /var/www/deploy/test