Запуск ftp-репозитория для Astra Linux «Смоленск»
Инструкция по быстрому развёртыванию ftp-репозитория ОС специального назначения Astra Linux Special Edition «Смоленск» на примере версии 1.6. Это — ещё одна важная настройка, которая упрощает установку и/или обновление пакетов, а также самой ОС, и освобождает от необходимости вставлять установочный диск на каждую машину. Особенно важно, если в локальной сети много машин с такой же ОС.
В первую очередь на сервере с репозиториями необходимо куда-нибудь скопировать с диска пакет vsftpd_3.0.3-8_amd64.deb, например в домашнюю директорию.
После этого переходим в эту директорию
и запустим установку vsFTPd
# sudo dpkg -i ./vsftpd_3.0.3-8_amd64.deb
После установки пакет можно удалить
Затем создадим каталоги для хранения репозитория и образов дисков
# sudo mkdir -p /srv/ftp// # sudo mkdir /srv/ftp/repo/smolensk/
и скопируем iso образа Смоленска в директорию /srv/ftp/iso.
Теперь откроем файл /etc/fstab
и в самый конец добавим строчку:
/srv/ftp/iso/smolensk_image.iso /srv/ftp/repo/smolensk iso9660 auto 0 0
Это позволит монтировать образ диска каждый раз после перезагрузки машины.
Далее запускаем команду для монтирования всех устройств, прописанных в файле /etc/fstab
и убедимся, что директория /srv/ftp/repo/smolensk/ не пустая.
После этого открываем файл конфигурации службы vsFTPd
и исправим строчки на такие значения:
listen=YES listen_ipv6=NO anonymous_enable="YES"
Теперь можно перезапустить службу vsftpd
# sudo systemctl restart vsftpd
Далее откроем основной файл репозиториев
# sudo nano /etc/apt/sources.list
закомментируем единственную в ней строчку:
# deb cdrom:[OS Astra Linux smolensk DVD ]/ smolensk contrib main non-free
deb ftp://192.168.100.1/repo/smolensk smolensk contrib main non-free
Теперь обновляем список репозиториев
и в консоли должны появиться такие сообщения:
Пол:1 ftp://192.168.100.1/repo/smolensk smolensk InRelease Игн:1 ftp://192.168.100.1/repo/smolensk smolensk InRelease Пол:2 ftp://192.168.100.1/repo/smolensk smolensk Release [5 014 B] Пол:3 ftp://192.168.100.1/repo/smolensk smolensk Release.gpg [833 B] Пол:4 ftp://192.168.100.1/repo/smolensk smolensk/contrib amd64 Packages [2 088 B] Пол:5 ftp://192.168.100.1/repo/smolensk smolensk/main amd64 Packages [1 088 kB] Пол:6 ftp://192.168.100.1/repo/smolensk smolensk/non-free amd64 Packages [48,7 kB] Получено 1 145 kБ за 0с (1 510 kБ/c) Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Все пакеты имеют последние версии.
Это значит, что список репозиториев у нас настроен корректно.
Что касается настройки на клиентских машинах, то на них достаточно отредактировать файл /etc/apt/sources.list точно также, как описано выше, и запустить команду обновления репозиториев
Теперь можно устанавливать и/или обновлять пакеты при помощи локального репозитория, либо в локальной сети.
Похожие посты:
Установка и настройка vsFTPd на Ubuntu или Astra
Обновлено: 17.04.2023 Опубликовано: 30.03.2017
Термины по теме: FTP, Ubuntu vsFTPd и proFTPd — одни из самых простых способов поднять сервер FTP на Linux. В данной инструкции пойдет речь о vsFTPd и Ubuntu (на примере версий 20 и 22), а также Debian и Astra Linux.
Установка и настройка
* write_enable — разрешить копировать файлы на сервер; chroot_local_user — использовать для пользователей изолированное окружение. И дописываем следующее:
- 20 — основной порт FTP для передачи.
- 21 — для активного режима. Используется для передачи команд.
- 60000-65535 — диапазон динамических портов, который нами был определен в конфигурационном файле. Используется для пассивного режима.
iptables -I INPUT -p tcp —match multiport —dports 20,21,60000:65535 -j ACCEPT
Для сохранения правил можно использовать утилиту:
apt install iptables-persistent
Разрешаем и перезапускаем сервис:
Добавление пользователя
По умолчанию, авторизация выполняется с использованием локальных пользователей. Чтобы использовать специальную учетную запись, для подключения к FTP, создаем пользователя следующей командой:
useradd ftpuser -d /ftp -s /bin/false -m
* где ftpuser — имя учетной записи; /ftp — домашний каталог (в него будем попадать при подключении); /bin/false — запрет пользователю на локальный вход в систему.
Открываем на редактирование следующий файл:
* мы добавили /bin/false в список разрешенных оболочек. В противном случае, может вернуться ошибка 530 Login incorrect.
Проверка
Для проверки подключения можно воспользоваться FTP-клиентом на другом компьютере (например, FileZilla или Total Commander).
Также можно установить FTP-клиент на сервер:
И для подключения используем следующую команду:
Система запросит логин и пароль.
Настройка SSL/TLS
TLS позволяет настроить безопасный FTP, передача данных через который осуществляется по шифрованному каналу.
Для данной цели можно использовать самоподписанный сертификат. Чтобы его создать, вводим команду:
openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/certs/vsftpd.pem -keyout /etc/ssl/private/vsftpd.key -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=ftp.dmosk.local/CN=ftp»
* в данном примере мы создаем самоподписанный сертификат на 4 года для URL ftp.dmosk.local или ftp. Открытый ключ будет сохранен в файле /etc/ssl/certs/vsftpd.pem, закрытый — /etc/ssl/private/vsftpd.key. При желании, мы можем использовать купленный сертификат или получить его бесплатно у Let’s Encrypt.
Открываем на редактирование конфигурационный файл vsFTPd:
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_enable=YES
* где ssl_enable разрешает использование шифрования; rsa_cert_file — путь к открытому ключу; rsa_private_key_file — путь к закрытому ключу.
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_ciphers=HIGH
- allow_anon_ssl разрешает использовать SSL анонимным пользователям;
- force_local_data_ssl требует использования шифрования, и если установить YES, клиенты без шифрования не смогут подключиться;
- force_local_logins_ssl также требует подключение по SSL;
- ssl_tlsv1 — использовать TLS версии 1;
- ssl_sslv2 и ssl_sslv3 — использовать SSL версии 1 и 2;
- ssl_ciphers — выбор шифра. В данном примере мы говорим использовать максимально безопасный.
Виртуальные пользователи
Устанавливаем pam-модуль, позволяющий аутентифицировать пользователей с помощью passwd-like файлов:
apt install libpam-pwdfile
Открываем конфигурационный файл vsftpd и добавляем следующее:
user_config_dir=/etc/vsftpd_virtuser_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
nopriv_user=vsftpd
guest_username=vsftpd
- user_config_dir — каталог для хранения настроек пользователя.
- guest_enable — разрешаем гостевой вход.
- virtual_use_local_privs — виртуальные пользователи используют привилегии, как локальные, а не анонимные.
- pam_service_name — имя pam-сервиса.
- nopriv_user — под каким пользователем работает сервер, когда ему не нужны привилегии.
- guest_username — имя гостевого пользователя.
Для возможности использовать утилиту htpasswd ставим следующий пакет:
Создаем каталог для хранения файла виртуальных пользователей и двух пользователей:
htpasswd -cd /etc/vsftpd/ftpd.passwd virt1
htpasswd -d /etc/vsftpd/ftpd.passwd virt2
* обратите внимание, опция -c команды htpasswd используется только при создании файла (при первом вводе команды). Мы создаем два пользователя — virt1 и virt2.
Архивируем имеющийся pam-сервис для vsftpd:
mv /etc/pam.d/vsftpd /etc/pam.d/back_vsftpd
Создаем новый со следующим содержимым:
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
В самой системе создаем пользователя, которого используем как гостевого:
useradd vsftpd -d /home/vsftpd -g nogroup -m -s /bin/false
* с домашней директорией /home/vsftpd, основной группой nogroup и без возможности входа в систему (-s /bin/false).
Создаем каталог хранения настроек виртуальных пользователей:
и создаем настройку для первого:
* local_root — домашняя директория для FTP пользователя virt1.
Создаем домашний каталог для нашего пользователя virt1 и задаем правильные права:
chown vsftpd:nogroup /var/www/virt1
systemctl restart vsftpd || service vsftpd restart