Проектирование и создание FTP-сервера на базе ОС Linux
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
тклонены, если такое имя пользователя существует. Если не существует, то такие запросы будут считаться как попытки зайти гостем (guest account).to guest = bad user
определяет будет ли демон nmbd делать запрос к DNS, если WINS не смог разрешить NetBIOS имяproxy = no
параметр заставляет синхронизировать пароль UNIX с паролем SMB при изменении зашифрованного пароля SMB в файле smbpasswd. При включении этого параметра (yes) от пользователя ROOT вызывается программа, определенная в параметре passwd program, что позволяет установить новый пароль UNIX без доступа к старому паролю UNIXpassword sync = yes
имя программы, которую можно использовать для смены паролей UNIX, любые вхождения %u будут заменены именем пользователяprogram = /usr/bin/passwd %u
механизм для хранения информации о пользователяхbackend = tdbsam
уровень отладки журналов событий, которые будут записываться в системный syslog, 0 - события LOG_ERR, 1 - LOG_WARNING, 2 - LOG_NOTICE, 3 - LOG_INFO.= 0
режим работы Samba:- уровень ресурсов,- уровень пользователей, доступ по логин-паролю,- домен,- сервер паролей,- Active directory= user
не аутентифицированные пользователи получают доступ к общим ресурсам пользователейallow guests = yesaction = /usr/share/samba/panic-action %dlevel = 20
если включено, для смены паролей будет использован PAM, вместо программы указанной в параметре passwd programpassword change = yes
разрешаем доступ для всех со своей подсетки и локалхостаallow = 192.168.10. 127.
пользователь с root-правамиusers = user1
выступать сервером времениserver = yes
Основные настройки сделаны. Теперь расшарим нужные папки.
Расшариваем домашние папки пользователей
[HOMES]
комментарий= Home directories
путь к папке, %U = имя пользователя= /home/samba/homes/%U
только для чтения?only = no
вход с паролем?= no
запись разрешена?= yes
права создаваемых файлов и папокmask = 0600mask = 0700
отображать в списке ресурсов в сетевом окружении?= no
Далее расшариваем нужные папки. Для каждой папки можно определить свои параметры доступа. Для этого дописываем в конец конфиг-файла smb.conf разделы как представлено в примере ниже.
Пример:
создадим расшаренную папку files
[files]
комментарий к создаваемой папке= Media files
путь к папке= /home/user1/files
будем разрешать доступ только по паролю= yes
не видно в сетевом окружении всем кроме владельцев= no
запрещаем запись всем= no
и разрешаем запись для user1 и пользователям из группы admlist = user1 @adm
По аналогии создаются все остальные шары.
Для добавления пользователей в Samba делается следующее: smbpasswd -a username
Будет предложено ввести пароль, пользователь будет добавлен в базу, теперь необходимо включить этого пользователя. smbpasswd -e username
Для проверки правильности сделанных настроек выполняем команду testparm
если testparm сообщает об отсутствии проблем, то smbd правильно загрузит файл настроек.
Перезапускаем Samba после изменения конфиг-файла. sudo /etc/init.d/samba restart
Если расшаривать внешние устройства, нтфс диски и т. д., следует добавить пользователя в группу plugdev.
Установка протокола передачи файлов
Папки на сервере расшарили теперь по сети обмениваться файлами. Удобно и быстро. Но файлы и папки доступны только в локальной сети, т. е. физически нужно быть подключенным к серверу у себя на ПК. А если срочно что-то понадобиться из вне? На этот случай поднимается FTP-сервер. Тогда будет доступ к своим файлам из любой точки планеты, где есть интернет. Еще и можно обмениваться файлами не пользуясь файлообменниками.
В качестве FTP-сервера была выбрана vsftpd. Разработчик позиционирует его как very security, т. е. очень безопасный. Безопасность лишней не бывает. sudo apt-get install vsftpd
Настройки vsftpd сервера находятся в файле /etc/vsftpd.conf
Первым делом создается резервная копия sudo cp /etc/vsftpd.conf/ etc/vsftpd.conf_original
/etc/vsftpd.conf">Потом очищается содержимое файла cat /dev/null > /etc/vsftpd.conf
И откраваем его для редактирования sudo nano /etc/vsftpd.conf
Сервер будет работать следующим образом. Для анонимных пользователей разрешен доступ на скачивание из папки /home/ftp. Эта папка является домашней для пользователя ftp (он же anonymous). Любое изменение файлов, включая загрузку, запрещено. Подключаться анонимусы будут без пароля.
Анонимный доступ я открываем для обмена файлами. А для себя делаются следующие настройки. На сервере есть локальные пользователи. Открываем для них доступ с полными правами в определенную папку, т. е. файлы и папки можно не только скачивать, но и загружать, переименовывать, удалять и т.д. Настройки самого сервера в примере конфиг файла. Файл настроек vsftpd сервера имеет следующую структуру: опция=параметр. Параметр может быть значением YES или NO, числом, строковым значением. Строки начинающиеся с символа # являются комментариями и на настройки не влияют.
Пример настройки: vsftpd будет загружаться в автономном режиме и сам позаботится о прослушивании и перехвате входящих соединений. inetd использоваться не будет listen=YES работать в фоновом режиме background=YES если на сервере несколько сетевых интерфейсов, можно прямо прописать какой из них прослушивать listen_address=192.168.1.100 максимальное количество подключений max_clients=20 максимальное количество подключений с одного ip max_per_ip=10 разрешить доступ анонимным пользователям anonymous_enable=YES папка анонимусов anon_root=/home/ftp не спрашивать пароль no_anon_password=YES разрешить доступ локальным пользователям local_enable=YES папка локальных пользователей local_root=/media/files включить команду "async ABOR" для "плохих" клиентов async_abor_enable=YES разрешить изменение файлов write_enable=YES скачивать и загружать данные в режиме ASCII ascii_download_enable=YES ascii_upload_enable=YES вся пользовательская и груповая информация в списке директорий, выводится как &qu