Основы настройки и использования сетевых служб в Linux: FTP, Samba.
Life-Hack - Linux/Хакинг/Хакер/ИБ/OsintFTP
FTP – это протокол, который позволяет передавать файлы по сети от одного узла другому. Данный протокол является самым старым протоколом прикладного уровня, который появился намного раньше, чем HTTP или TCP/IP. С помощью протокола FTP могут быть организованы соединения с удаленными серверами для просмотра и передачи необходимых данных.
Установка FTP-сервера:
sudo apt update sudo apt install vsftpd
По окончании установки можно убедиться, что сервис vsftpd уже успешно работает:
systemctl status vsftpd
Далее необходимо произвести некоторые настройки в конфигурационном файле. Для этого откройте при помощи текстового редактора файл vsftpd.conf:
sudo nano /etc/vsftpd.conf
Вот основные изменения, которые необходимо внести для корректной работы FTP-сервера:
listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd allow_writeable_chroot=YES
После внесения изменений в файл настроек необходимо сохранить их и перезапустить службу vsftpd:
sudo systemctl restart vsftpd
Для защиты передачи ваших данных между FTP-клиентом и FTP-сервером в данной инструкции мы будем использовать генерацию самозаверяющего SSL-сертификата. Закрытый ключ и сертификат будут сохранены в одном файле, для чего следует применить команду:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
После установки SSL-сертификата необходимо внести изменения в конфигурационный файл:
sudo nano /etc/vsftpd.conf
А именно, внесите изменения в следующие строки данного файла:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Для авторизации на FTP-сервере необходимо создать учетную запись пользователя. Изначально, подключаться к серверу можно и под локальным пользователем. Но более целесообразно для этих целей использовать специальную учётную запись.
Далее нужно добавить в брандмауэр исключения для TCP-портов 20 и 21.
Корректность произведённых настроек можно проверить через осуществление подключения к FTP-серверу. Для этой цели можно воспользоваться бесплатным FTP-клиентом FileZilla. Или выполнить команду ftp address_host:
ftp 127.0.0.1
Что в случае успешного выполнения даст примерно такой вывод:
Samba
Samba - программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS.
В качестве клиентской части для подключения к файловому серверу Samba может выступать программное обеспечение, работающее по протоколу SMB. В Linux/FreeBSD это samba client, в Windows — проводник. Samba использует 445, 137-139 порты.
Компьютеры под управлением Windows и Ubuntu должны быть членами локального домена или рабочей группы под названием WORKGROUP.
Для старта процесса установки используйте следующую команду:
sudo apt install samba smbclient
Настройки Samba находятся в файле /etc/samba/smb.conf. Этот файл содержит общие настройки для Samba, а также сведения об общих ресурсах.
Мы начнем со свежего чистого файла конфигурации smb.conf, удалив все закоментированные строки. А также сохраним файл конфигурации по умолчанию в качестве резервной копии для справочных целей. Выполните следующие команды linux, чтобы сделать копию существующего файла конфигурации и создать новый файл конфигурации /etc/samba/smb.conf:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup sudo bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf'
У Samba есть собственная система управления пользователями. Однако любой пользователь, существующий в списке пользователей samba, также должен быть системным, то есть существовать в файле /etc/passwd. Если ваш системный пользователь еще не существует и, следовательно, не может быть расположен в файле /etc/passwd, сначала создайте нового пользователя с помощью команды useradd, прежде чем создавать любого нового пользователя Samba.
Возьмем для примера имя buhnasmb, надо внести его в базу данных SMB и назначить пароль для доступа к общим ресурсам, сделаем это командой:
sudo smbpasswd -a buhnasmb
Создадим директорию для хранения расшаренных файлов и папок:
mkdir -p /home/hdd2backup/smb/buhnasmb
Добавьте в конец файла /etc/samba/smb.conf следующие строки. Папка будет открыта для чтения и записи (без пароля).
[BackupWork] comment = Samba Share path = /home/hdd2backup/smb/buhnasmb guest ok = yes browsable =yes writable = yes read only = no force user = buhnasmb force group = buhnasmb
Если изменить 4 строку на "guest ok = no", то папка будет открыта для чтения и записи по паролю.
Не забудьте поставить правильного владельца и права доступа на папку, которую вы расшариваете, например так:
sudo chmod ug+rwx /home/hdd2backup/smb/buhnasmb sudo chown root:"пользователи домена" /home/hdd2backup/smb/buhnasmb
Перезапуск Samba:
sudo systemctl restart smbd.service
Samba обеспечивает широкий функционал по управлению правами доступа к файлам и базам данных с назначением определенных групп пользователей.