---
# System prepended metadata

title: Linux_Basic-Омаров_Джамалутин-Практика-3
tags: [Linux basic]

---

###### tags: `Linux basic`
# Linux_Basic-Омаров_Джамалутин-Практика-3
*Выполнил Омаров Джамалутин*
## Практическая работа №3.1 Cron

### Часть 1. Основные операции

1.1 Изменить crontab-файл, содержащий инструкции к выполнению запланированных действий.
crontab -e;
![](https://i.imgur.com/iIj75Kd.png)
Если вы хотите изменить crontab-файл другого пользователя, используйте команду crontab -u username -e с правами администратора.

1.2 Удаление.
crontab -r, crontab -i;

1.3 Есть ли crontab файлы;
![](https://i.imgur.com/eyOcz92.png)

### Часть 2. Разница между сron, сrontab и сron Job. Особенности cron

- Daemon (Демон)	‘crond’	Произносится «demon» или «day-mon». Это фоновые системные процессы Linux.
- Table (Таблица)	‘crontab’	Вы записываете строки в эту таблицу при вводе команды crontab. Каждая звездочка «*» представляет отрезок времени и соответствующий столбец в каждой строке.
- Job (Задача)	Cron Job	Конкретная задача, которая должна быть выполнена, описана в строке в сочетании с назначенным ей идентификатором времени

*Утилита обладает рядом особенностей, которые необходимо учитывать при работе с ней и составлении описаний регулярных действий:*

- Минимальное время составляет одну минуту.
- Файл crontab должен всегда заканчиваться пустой строкой
- Условия времени запуска «день недели» и «день месяца» обрабатываются через логическую операцию «ИЛИ», все остальные условия — через логическое «И».
- Выводы запускаемых команд выводятся в виде сообщений пользователю, но если в файле crontab была определена директива MAILTO – сообщение будет отправлено по указанному в этой директиве e-mail.

2.1 Узнать запущен ли cron;
![](https://i.imgur.com/gpUna7u.png)

2.2 Запуск systemctl start cron. Остановка systemctl stop cron.

### Часть 3. Синтаксис Crontab

3.1 crontab [options] * * * * * OR * * * * *

* 1 звездочка - минуты
* 2 звездочка - часы
* 3 звездочка - дни
* 4 звездочка - месяцы
* 5 звездочка - названия дней

3.2 Пример: 0 0 * * 0 -> Выполнять команду в 0:00 каждое воскресенье

3.3 Пример скрипта:
#!/bin/bash                         - указывает, что это скрипт
This is a comment                 - любой комментарий
cat /dev/null > /var/log/cron.log   - удаление текста в cron.log
cat /dev/null > /var/log/cron.txt   - удаление текста в cron.txt
pwd && whoami >> /var/log/cron.log  - последовательное выполнение pwd и whoami с последующей записью в cron.log
w >> /var/log/cron.log              - выполнение команды w с последующей записью в cron.log
ping -c3 ya.ru >> /var/log/cron.txt - выполнение ping -c3 ya.ru с последующей записью в cron.txt
ping -c4 77.88.8.8 >> /var/log/cron.log - выполнение ping -c4 77.88.8.8 с последующей записью в cron.txt

Также необходимо выставить тайминг в crontab;

### Часть 4. Мои запланированные задания

4.1 first.sh
![](https://i.imgur.com/3xgQCSb.png)

Каждые 15 минут -> crontab -e;
![](https://i.imgur.com/Kjwbfe2.png)

Результат:
![](https://i.imgur.com/6N8oGji.png)

4.2 second.sh
![](https://i.imgur.com/TsM8ARx.png)

Один раз в день -> crontab -e;
![](https://i.imgur.com/yLkS6sv.png)

4.3 third.sh
![](https://i.imgur.com/GMMTRDd.png)

В 15:00 в среду -> crontab -e;
![](https://i.imgur.com/dMKSwlD.png)

4.4 fourth.sh
![](https://i.imgur.com/fpfwvyt.png)

В 20:00 каждое воскресенье -> crontab -e;
![](https://i.imgur.com/N0LsGOM.png)

ИТОГ crontab -e:
![](https://i.imgur.com/YkzeBSv.png)

Все создавал в одной директории, чтобы можно было оперативно избавиться от скриптов.
![](https://i.imgur.com/Qc0LkcP.png)

## Практическая работа №3.2 Настройке SFTP и FileZilla

Для того чтобы настроить SFTP нам необходимо указывать группу, которая будет предоставлять доступ определённым образом.

Приступим к настройке:

### Часть 1. Настройка SFTP

1.1 Проверим ssh клиент;
![](https://i.imgur.com/gJ9Wy1T.png)

1.2 Изменим конфигурацию файла sshd_config;
- Match group sftp - все user не смогут выполнять команды с помощью ssh
- ChrootDirectory /home - это директория в которой пользователь будет работать
- X11Forwarding no - чтобы не давать доступ к рабочему окружению
- AllowTCPForwarding no - чтобы пользователь не смог использовать как proxy-сервер
- ForceCommand internal-sftp - использовать только sftp, встроенный в ssh

![](https://i.imgur.com/CMUvw44.png)

1.3 Перезапускаем сервис;
![](https://i.imgur.com/eRyOZW0.png)

1.4 Создадим пользователя;
![](https://i.imgur.com/aQMjJyY.png)

1.5 Проверяем наличие группы sftp;
![](https://i.imgur.com/kNhf3WG.png)
Группы sftp нет, добавим.

1.6 Добавим группу sftp;
![](https://i.imgur.com/U9Nrfvl.png)

1.7 Добавим пользователя в данную группу;
![](https://i.imgur.com/NZi6fFA.png)

1.8 Проверим добавление;
![](https://i.imgur.com/alx0T3Y.png)

1.9 Теперь можем подключиться к нему с помощью winscp. Запускаем и вводим параметры;
![](https://i.imgur.com/24qOINY.png)

Работает!

### Часть 2. Работа в Filezilla и SFTP

2.1 Проверяем ip-адрес linux куда нам надо подключиться;
![](https://i.imgur.com/TwoS3hn.png)

2.2 Далее переходим в linux с которого мы будет подключаться, запускаем filezilla;
![](https://i.imgur.com/EZkkymq.png)

2.3 Вводим параметры для входа;
![](https://i.imgur.com/dbzTm4S.png)

2.4 Попробуем подключиться к Kali, на котором была изменена конфигурация ранее;
![](https://i.imgur.com/iwOYkNq.png)

2.5 А удаленное подключение по sftp работает;
![](https://i.imgur.com/HDNYTeJ.png)

2.6 Команда ls;
![](https://i.imgur.com/9Xxl9rp.png)

2.7 Можно положить файлик;
![](https://i.imgur.com/azcK6zw.png)

2.8 И скачать что-нибудь;
![](https://i.imgur.com/9osclMJ.png)

2.9 На linux запускаем wireshark и на windows подключаемся через filezilla и смотрим вывод wireshark;

![](https://i.imgur.com/9Q8cPiA.png)
![](https://i.imgur.com/6FALBLI.png)

Происходит взаимодействие между клиентом и сервером. Образуется зашифрованный тунель. Как видим на скрине, используется SSH протокол.
ТCP SYN и ACK вначале - для установления связи. Клиент посылает SYN с указанием номера порта сервера, который предлагается использовать для организации канала связи.
SSHv2 вначале происходит аутентификация, в нашем случае по паролю и логину в зашифрованном виде.
Так же в Wireshark наблюдаем Encrypted packet, означает, что передаваемые пакеты зашифрованы.

## Практическая работа №3.3 Сервисы в Linux

### Часть 1. Сервисы или службы

Это программы, которые работают в фоновом режиме. Запускаются при загрузке системы.

1.1 Посмотрим какие сервисы работают;
![](https://i.imgur.com/MsRniiW.png)

"+" означает, что они включены

### Часть 2. Apache2

2.1 Проверим apache2;
![](https://i.imgur.com/GdZHrU0.png)

2.2 Запустим его;
![](https://i.imgur.com/dysaqjn.png)

2.3 Посмотрим его в списке сервисов, появится +;
![](https://i.imgur.com/aPj43Tu.png)

2.4 Зайдем на страницу apache2;
![](https://i.imgur.com/xNdorUW.png)

2.5 Отключим веб-сервер apache2;
![](https://i.imgur.com/4aGuxEe.png)

2.6 Рассмотрим аналоги работы с сервисами;
![](https://i.imgur.com/cxjxtuX.png)

2.7 Теперь включим apache2;
![](https://i.imgur.com/gThM66x.png)

2.8 Выключим;
![](https://i.imgur.com/DeDCeT8.png)

2.9 Для того чтобы отключить сервис при автозагрузке выполним команду;
![](https://i.imgur.com/MlhApcj.png)

### Часть 3. TELNET

Данный сервис актуален для пентеста, но не для администрирования.

3.1 Установим;
![](https://i.imgur.com/o6QZaUh.png)

3.2 У Telnet есть режимы работы, например Тестирование. Обрабатывает только текст, например;
![](https://i.imgur.com/3b3YJNM.png)

3.3 Есть на хосте ssh сервер;
![](https://i.imgur.com/uXCr23M.png)
У меня ssh сервер стоит на debian на порту 2222, поэтому проверил этот порт.

3.4 На удаленной машине установим сервер telnet;
![](https://i.imgur.com/pP7i4b0.png)

3.5 После чего проверим, есть ли telnet на 23 порту;
![](https://i.imgur.com/eXHpFPk.png)

3.6 Заходим на удаленный сервер;
![](https://i.imgur.com/sCcj07B.png)

### Часть 4. SSH

**Возможности SSH**

- Позволяет удаленно работать на компьютере через командную оболочку.
- Позволяет осуществлять шифрование с помощью различных алгоритмов.
- Так как SSH позволяет безопасно передавать практически любой сетевой протокол, это позволяет передавать по шифрованному каналу звуковые и видео файлы.
- Производит сжатие файлов для их последующего шифрования и передачи.
- Защищает передачу данных по каналу и предотвращает возможность включения в установленную сессию и перехватить данные.
- 
4.1 Серверс установлен и активен;
![](https://i.imgur.com/mSWeu9k.png)

4.2 Зайдем в конфигурацию;
![](https://i.imgur.com/mTOBg9c.png)

4.3 Данная команда не возвращает текст и ошибок, как просили;
![](https://i.imgur.com/SmhueyC.png)

4.4 Перезапуск сервиса;
![](https://i.imgur.com/OeEkEzA.png)

4.5 Остановка сервиса;
![](https://i.imgur.com/5GRHAeY.png)

4.6 Запуск сервиса;
![](https://i.imgur.com/qCC8Q7u.png)

### Часть 5. FTP

Протокол прикладного уровня для передачи файлов. Протокол FTP, также как и HTTP для адресации файлов использует url. URL состоит из 3 частей: идентификатора протокола, имя сервера или ip, путь к файлу.

5.1 Установим. sudo apt install vsftpd;
![](https://i.imgur.com/RFlUYv8.png)

5.2 Заходим в файл конфигурации;
![](https://i.imgur.com/swjanZm.png)

5.3 Listen:
![](https://i.imgur.com/Zav7GWG.png)
Если опция включена сервер стартует в независимом от inetd/xinetd режиме "standalone mode".

5.4 Listen_ipv4:
![](https://i.imgur.com/i3OGhmp.png)
Тоже самое что listen, за исключением того что vsftpd слушает IPv6 протокол включительно.

5.5 anonymous_enable:
![](https://i.imgur.com/89DVBhv.png)
Разрешает или запрещает вход анонимных пользователей. Если разрешено, пользователи с именами ftp и anonymous распознаются как анонимные пользователи

5.6 local_enable:
![](https://i.imgur.com/y6VHIEI.png)
Разрешить анонимный вход под локальными логинами или нет? Если включено, то для авторизации могут использоваться обычные нормальные учётные записи пользователей из «/etc/passwd».

5.7 dirmessage_enable:
![](https://i.imgur.com/PZFfV14.png)
Если включено, то пользователям FTP-сервера можно показывать сообщения, когда они переходят в каталог.

5.8 use_localtime:
![](https://i.imgur.com/JeXBfCN.png)
Если параметр установлен в «YES», то vsftpd будет отображать время в вашей локальной временной зоне в списке содержимого в каталоге.

5.9 xferlog_enable:
![](https://i.imgur.com/mutJA4k.png)
Если параметр установлен в «YES», то лог-файл будет содержать детальную информацию о загрузках на vsftpd и закачках с vsftpd.

5.10 connect_from_port_20:
![](https://i.imgur.com/mOmRLau.png)
Включение этого параметра указывает исходящим с сервера соединениям использовать 20 порт (ftp-data).

5.11 secure_chroot_dir:
![](https://i.imgur.com/kivWKGO.png)
Параметр должен содержать имя пустого каталога. Так же этот каталог не должен быть доступен для записи ftp-пользователем

5.12 rsa_cert_file:
![](https://i.imgur.com/xKBSEIF.png)
Параметр содержит путь в файловой системе до сертификата RSA для использования в шифрованных SSL-соединениях.

5.13 Теперь давайте выполним дополнительную конфигурацию по дополнению сервиса в автозагрузку:
![](https://i.imgur.com/CAgMCiE.png)

5.14 Посмотрим статус сервиса;
![](https://i.imgur.com/Y1HwTqh.png)

5.15 Теперь я установлю сервис FTP на Kali;
![](https://i.imgur.com/XutmjWp.png)

5.16 Запущу его;
![](https://i.imgur.com/e8U5Tih.png)

![](https://i.imgur.com/IUm8gQZ.png)

![](https://i.imgur.com/ZIyamUJ.png)

5.17 Для того чтобы увидеть всю файловую систему на сервисе необходимо в файле конфигурации снять комментарий и изменить YES на NO;
![](https://i.imgur.com/Qnp0czZ.png)

5.18 Демонстрация работы ftp через filezilla;
![](https://i.imgur.com/t2Ppvrq.png)

5.19 Демонстрация работы ftp через браузер;
![](https://i.imgur.com/2kwSzI5.png)

![](https://i.imgur.com/dgaE3xP.png)

![](https://i.imgur.com/Wg64moZ.png)

![](https://i.imgur.com/4mUPyix.png)

![](https://i.imgur.com/zEnP2dh.png)


5.19 Демонстрация того, что трафик не шифруется;
![](https://i.imgur.com/SBPAtOp.png)

Видим логин;
![](https://i.imgur.com/N8E85y7.png)

Видим пароль;
![](https://i.imgur.com/AS4Z1i5.png)

Таким образом можно перехватить трафик FTP.

### Часть 6. Samba

При помощи Samba компьютеры могут обмениваться файлами или управлять заданиями на печать как файл-серверы или серверы печати под Windows.

**C помощью Samba можно реализовать следующие наиболее распространенные:**

- Давать доступ к дискам Linux Windows-машинам.
- Получать доступ к дискам Windows для машин под Linux.
- Давать доступ к принтерам Linux для Windows-машин.
- Получать доступ к принтерам Windows из Linux-систем.

6.1 Установим;
![](https://i.imgur.com/23vkEWf.png)

6.2 Заходим в конфигурационный файл. sudo vim.tiny /etc/samba/smb.conf;
![](https://i.imgur.com/hYvJJQo.png)

6.3 sudo testparm позволяет убедиться о конфигурации samba и что она работает нормально;
![](https://i.imgur.com/Di0pNnZ.png)

6.4 Настроим samba;
![](https://i.imgur.com/EqgYMff.png)
- [shared] — имя общей папки, которое увидят пользователи, подключившись к серверу.
- comment — комментарий для удобства.
- path — путь на сервере, где будут храниться данные.
- public — для общего доступа. Установите в yes, если хотите, чтобы все могли работать с ресурсом.
- writable — разрешает запись на сетевой ресурс.
- read only — только для чтения. Установите no, если у пользователей должна быть возможность создавать папки и файлы.
- guest ok — разрешает доступ к папке гостевой учетной записи.
- create mask, directory mask, force create mode, force directory mode — при создании новой папки или файла назначаются полные права.

6.5 Добавляем сервис в автозагрузку и включаем его;
![](https://i.imgur.com/coGj6Gp.png)

![](https://i.imgur.com/gOL6z64.png)

6.6 Заходим на шару;
![](https://i.imgur.com/r6XHQqw.png)

6.7 Созздаем файл;
![](https://i.imgur.com/jA7eFns.png)

6.8 Проверяем его наличие в папке /tmp на Kali;
![](https://i.imgur.com/1FBDCZl.png)
Работает!

