Настройка vsftpd

Приветствую всех. Сегодня я расскажу о настройке простого и в то же время безопасного фтп сервера vsftpd. vsftpd - это распространяемый под лицензией GPL FTP сервер, работающий на UNIX системах, включая Linux. Он является безопасным и быстрым в работе, так же стоит отметить его стабильность. Особенности:
  • поддержка виртуальных хостов
  • возможность создания виртуальных пользователей
  • может работать как самостоятельный демон или совместно с inted
  • гибкая конфигурация
  • поддержка ограничения скорости канала
  • поддержка IPv6
  • поддержка SSL
  • и многое другое
vsftpd используется такими популярными проектами, как FreeBSD, GNU, KDE, полный список. Теперь ближе к делу... Лезем в порты и ставим сервер:
  1. # cd /usr/ports/ftp/vsftpd
  2. make install clean
По окончанию установки правим конфиг, у меня он получился таким:
  1. # Разрешить анонимным пользователям вход на FTP сервер?
  2. anonymous_enable=NO
  3. #
  4. # Разрешить локальным пользователям входить на сервер.
  5. local_enable=YES
  6. #
  7. # Разрешить любые FTP команды записи.
  8. write_enable=YES
  9. #
  10. # Маска для новых файлов
  11. local_umask=027
  12. #
  13. # Разрешить анонимным пользователям заливать файлы на сервер. 
  14. # Не забудьте создать директорию с правами на запись, принадлежащую
  15. # пользователю FTP.
  16. anon_upload_enable=NO
  17. #
  18. # Разрешить анонимным пользователям создавать новые директории.
  19. anon_mkdir_write_enable=NO
  20. #
  21. # Активировать сообщения в директориях. 
  22. dirmessage_enable=YES
  23. #
  24. # Включить лог закачки/скачки.
  25. xferlog_enable=YES
  26. #
  27. # Передавать данные через 20 порт (ftp-data)?
  28. connect_from_port_20=NO
  29. #
  30. # Если вы хотите сделать так, чтобы загруженными файлами анонимных
  31. # пользователей владел другой пользователь, то включите эту опцию.
  32. # Не рекомендуются использовать для этих целей пользователя - root.
  33. #chown_uploads=YES
  34. #chown_username=whoever
  35. #
  36. # Файл для ведения логов
  37. #xferlog_file=/var/log/vsftpd.log
  38. #
  39. # Использовать стандартный ftpd xferlog формат.
  40. # Учтите, что в этом случае для ведения логов будет использоваться файл /var/log/xferlog.
  41. #xferlog_std_format=YES
  42. #
  43. # Время простоя сессии (в секундах).
  44. idle_session_timeout=600
  45. #
  46. # Время простоя при передачи данных.
  47. data_connection_timeout=120
  48. #
  49. # Здесь рекомендуется указывать непривилегированного пользователя в системе
  50. nopriv_user=nobody
  51. #
  52. # Включить, чтобы сервер обрабатывал асинхронные ABOR запросы.
  53. # Не рекомендуется по соображениям безопасности.
  54. async_abor_enable=NO
  55. #
  56. # Разрешить скачку/закачку в ASCII режиме. На некоторых ftp серверах
  57. # через подобнуу фичу можно вызвать отказ в обслуживании (DoS),
  58. # используя команду "SIZE /big/file" в ASCII режиме.
  59. # vsftp может определить подобную атаку и предотвратить.
  60. ascii_upload_enable=NO
  61. ascii_download_enable=NO
  62. #
  63. # Приветственное сообщение:
  64. ftpd_banner=Welcome to FTP server.
  65. #
  66. # Вы можете указать запрещенные email адреса для входа анонимным пользователям.
  67. #deny_email_enable=YES
  68. # (default follows)
  69. #banned_email_file=/etc/vsftpd.banned_emails
  70. #
  71. # chroot,ить локальных пользователей в домашнюю папку?
  72. # Так же вы можете указать список пользователей, которых нужно chroot,ить.
  73. # Если chroot_local_user включено, тогда пользователи в том списке
  74. # не будут запираться в домашней папке.
  75. chroot_local_user=YES
  76. chroot_list_enable=NO
  77. # (default follows)
  78. #chroot_list_file=/etc/vsftpd.chroot_list
  79. #
  80. # Включить обработку опции "-R" в команде ls. Эта фишка отключена по умолчанию,
  81. # для исключения ситуации, при которой удаленные пользователи могут вызвать 
  82. # большое количество операций ввода/вывода.
  83. ls_recurse_enable=YES
  84. #
  85. # При включенной опции, vsftpd работает в режиме демона.
  86. # Эта опция не может совместно использоваться с listen_ipv6.
  87. listen=NO
  88. #
  89. # Подключать клиентов через IPv6 сокеты. Для подключения клиентов через IPv4 и IPv6
  90. # сокеты, вы должны запускать два демона vsftpd, то есть использовать два конф. файла.
  91. # Одна из опций listen всегда должна быть закомментирована!!
  92. #listen_ipv6=YES
  93. secure_chroot_dir=/usr/local/share/vsftpd/empty
  94.  
  95. # Для использования vsftpd в режиме демона, раскомментируйте следующие две строки:
  96. # listen=YES
  97. # background=YES
  98.  
  99. # The  maximum  port  to allocate for PASV style data connections.
  100. # Can be used to specify a  narrow  port  range  to  assist  fire-
  101. # walling.
  102. pasv_max_port=65000
  103. # The  minimum  port  to allocate for PASV style data connections.
  104. # Can be used to specify a  narrow  port  range  to  assist  fire-
  105. # walling.
  106. pasv_min_port=60000
Теперь, когда конфиг готов, запустим установленный сервис. У меня он будет работать через inted, поэтому в файл /etc/inetd.conf я добавил следующую строку:
  1. ftp     stream  tcp     nowait  root    /usr/local/libexec/vsftpd vsftpd /usr/local/etc/vsftpd.conf
Заставляем inetd перечитать конфиг:
  1. # service inetd reload
Проверим, висит ли сервис на нужном порту:
  1. # sockstat -4 | grep 21
  2. root     inetd      1220  5  tcp4   *:21                  *:*
Если сервис работает, то на этом настройка FTP сервера закончена. Если же нет, то читайте логи и проверяйте конфиг.

Добавить комментарий

Filtered text

CAPTCHA
Этот вопрос предназначен для предотвращения автоматизированной обработки форм.
Fill in the blank.