###### 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) Работает!