Проектирование и создание 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