ProFTPD — Server FTP (протокол передачи файлов)

Установка, настройка, эксплуатация.

Модератор: sergey

ProFTPD — Server FTP (протокол передачи файлов)

Сообщение sergey » 09 дек 2019, 19:50

Оглавление


Темы
 Файлы конфигурации ProFTPD 
Дополнительные материалы
Samba — Доступ к сетевым дискам и принтерам по протоколу SMB
Монтирование файловых систем


 Файлы конфигурации ProFTPD 
e /etc/proftpd.conf
Код: выделить все
####################################
# имя ftp сервера что угодно
ServerName                      "sergey.free-adm.ru ProFTPD"
# Директива ServerIdent устанавливает сообщение по умолчанию, отображаемое при
# подключении нового клиента. При отключении этого параметра отобразится сообщение
# «[hostname] FTP-сервер». Если установлено значение on, директива может принимать
# необязательный строковый аргумент, который будет отображаться вместо текста по умолчанию.
ServerIdent                     on "FTP Server ready."
ServerAdmin                     sergey@free-adm.ru
# Сервер по умолчанию
DefaultServer           on
# Директива ServerType позволяет определить режим использования FTP сервера -
# standalone или inetd.
ServerType standalone
# Использование IPv6 отключено.
UseIPv6 off
# Показывать символические ссылки
ShowSymLinks            on
# запрещаем подключать от пользователя root
RootLogin                       off
# надо чтобы пользователи из группы adm могли по серверу шариться а другие нет,
# то надо указать исключение (!) для группы !adm
DefaultRoot                     ~ !adm
# Эта директива позволяет указать имя службы PAM, используемое при аутентификации.
# PAM позволяет указать имя службы, которое будет использоваться при аутентификации.
# Это позволяет вам настроить различные имена служб PAM, которые будут использоваться
# для разных виртуальных хостов.
AuthPAMConfig           proftpd
# Указываем порядок методов авторизации
AuthOrder                       mod_sql.c mod_auth_unix.c
# Разрешаем/запрещаем разрешение DNS-имён
UseReverseDNS           off
IdentLookups            off
# Определяет от имени какого пользователя работает ProFtpD
User                            nobody
Group                           nobody
# максимальное число одновременно запускаемых процессов в режиме standalone
MaxInstances            20
# Директива MaxClientsPerUser настраивает максимальное количество клиентов, которые могут
# быть подключены в любой момент времени с использованием одного и того же имени
# пользователя. Может использоваться необязательное сообщение аргумента, которое будет
# отображаться клиенту, пытающемуся превысить максимальное значение.
# MaxClientsPerUser     1
# Директива UseSendfile контролирует использование функции sendfile, которая является
# оптимизацией для отправки файлов клиентам. Использование функции sendfile позволяет
# избежать отдельных операций чтения и отправки и распределения буфера. Но на некоторых
# платформах или в некоторых файловых системах лучше отключить эту функцию, чтобы избежать
# операционных проблем:
UseSendfile                     off

# Опрелеляем форматы сообщений для LOG
#LogFormat                      default "%h %l %u %t \"%r\" %s %b"
#LogFormat                      write "%h %l %u %t \"%r\" %s %b"
#LogFormat           auth       "%v %t \"%r\" [%h] %s"
#SyslogLevel notice
#SystemLog      /var/log/proftpd/proftpd.log
#ExtendedLog /var/log/proftpd/auth.log AUTH auth
#ExtendedLog /var/log/proftpd/access.log WRITE,READ write
#DebugLevel 9
#==========================================================
# Logging options
#
TransferLog                     /var/log/proftpd/xfer.log
# Some logging formats
#
LogFormat            default "%h %l %u %t \"%r\" %s %b"
LogFormat            auth    "%v [%P] %h %t \"%r\" %s"
LogFormat            write   "%h %l %u %t \"%r\" %s %b"
# Log file/dir access
ExtendedLog                     /var/log/proftpd/access.log    WRITE,READ write
# Record all logins
ExtendedLog                     /var/log/proftpd/auth.log      AUTH auth
# Paranoia logging level....
ExtendedLog                     /var/log/proftpd/paranoid_log  ALL default
#==========================================================
LoadModule mod_sql.c
LoadModule mod_sql_passwd.c
LoadModule mod_sql_mysql.c
LoadModule mod_ctrls_admin.c
LoadModule mod_vroot.c

  <IfModule mod_sql.c>
    SQLBackend mysql

        <IfModule !mod_sql_passwd.c>
                # If mod_sql_passwd is not available, then consider using the OpenSSL
                # SQLAuthType
                SQLAuthTypes OpenSSL Backend
        </IfModule>

        <IfModule mod_sql_passwd.c>
                # If mod_sql_passwd is available, try other SQLAuthTypes, too
                SQLPasswordEngine on

                # MySQL uses lowercase hex-encoded strings for MD5() et al
                SQLPasswordEncoding hex
                #SQLBackend SHA256 SHA1 MD5 Backend
                SQLBackend MD5
        </IfModule>
</IfModule>

# Автоматическое удаление недогруженного файла.
DeleteAbortedStores     on
# Дают возможность докачки
AllowRetrieveRestart on
AllowStoreRestart       on
# Размер буфера комманд
CommandBufferSize   512
# непроверять валидность шелла
RequireValidShell       off
########################################################
# Если вошел, но не начал передачу в течении 300 сек - выход
TimeoutNoTransfer 300
# Устанавливает  тайм-аут  на подвисшую загрузку
TimeoutStalled 600
# Накладываем ограничения
# Если никаких действий после входа в течении 600 сек - выход
TimeoutIdle 600
# Максимальное число `детей` (работает только в standalohe режиме)
# необходимо для защиты от атак типа `отказ в обслуживании` да и
# от перегрузки сервера поможет :)
MaxInstances 30
# На авторизацию отводится 300 сек, иначе разрыв
TimeoutLogin 300
# Задаём размер-очереди
tcpBackLog 5
# Максимальное количество клиентов и ошибку в случае превышения
MaxClients 10 "Слишком много соединений с сервером (%m)"
# Максимальное количество клиентов с одного хоста
MaxClientsPerHost 4 "%m клиента уже подключены с Вашего хоста, больше не разрешено"
# допускаемое число попыток ввести пароль
MaxLoginAttempts 3 "Слишком много попыток войти"

# ???
ModuleControlsACLs      insmod,rmmod allow user root
ModuleControlsACLs      lsmod allow user *
ControlsEngine          on
ControlsACLs            all allow user root
ControlsSocketACL       allow user *
ControlsLog                     /var/log/proftpd/controls.log
<IfModule mod_ctrls_admin.c>
        AdminControlsEngine     on
        AdminControlsACLs       all allow user root
</IfModule>
########################################################
<IfModule mod_vroot.c>
        VRootEngine                     on
</IfModule>
########################################################
include /etc/proftpd.d/ssl.conf
include /etc/proftpd.d/sql.conf
########################################################
<IfDefine DYNAMIC_BAN_LISTS>
  LoadModule            mod_ban.c
  BanEngine                     on
  BanLog                        /var/log/proftpd/ban.log
  BanTable                      /var/run/proftpd/ban.tab
  # If the same client reaches the MaxLoginAttempts limit 2 times
  # within 10 minutes, automatically add a ban for that client that
  # will expire after one hour.
  BanOnEvent            MaxLoginAttempts 2/00:10:00 01:00:00
  # Inform the user that it's not worth persisting
  BanMessage            "Host %a has been banned"
  # Allow the FTP admin to manually add/remove bans
  BanControlsACLs       all allow user ftpadm
</IfDefine>
<IfDefine QOS>
        LoadModule              mod_qos.c
        # RFC791 TOS parameter compatibility
        QoSOptions              dataqos throughput ctrlqos lowdelay
        # For a DSCP environment (may require tweaking)
        #QoSOptions             dataqos CS2 ctrlqos AF41
</IfDefine>
<Global>
SyslogLevel debug
        # В некоторых случаях вам нужно указать диапазон пассивных портов,
        # чтобы обходить ограничения брандмауэра. Для этого можно использовать
        # эфемерные порты, но не стесняйтесь использовать более узкий диапазон.
        PassivePorts 49152 50000
        # Если ваш хост был NATted, этот параметр полезен, чтобы разрешит пассивной передаче
        # работать. Вы должны использовать свой публичный  адрес и открывать пассивные порты,
        # используемые на вашем брандмауэре.
        # MasqueradeAddress             1.2.3.4
        #Umask 027 Маска для новых директорий и файлов (777 - 750 = 027)
        #650 == RW- R-X --- - файлы, 750 == RWX RW- --- - каталог
        Umask   127 027
        # Разрешить пользователям менять права доступа
        <Limit SITE_CHMOD>
                AllowAll
        </Limit>
</Global>
############# Права на каталоги ###########
# Запрещаем запись в корень домашнего каталога
# для всех пользователей кроме serg (реальный пользователь системы)
<Directory ~>
     <Limit WRITE>
                Order Allow,Deny
                AllowUser serg
                DenyAll
     </Limit>
        <Limit READ>                                                                                                                       
                AllowAll                                                                                                                   
        </Limit>
</Directory>

# Запимь в каталог UPLOAD
<Directory /home/serg/FTP/UPLOAD>
        Umask   127 027
        # Разрешаем скачивание, загрузку и удаление
        <Limit READ WRITE>
                AllowAll
        </Limit>
</Directory>

<Directory /var/www/*.free-adm.ru/public_html/>
        Umask   127 027
        # Разрешаем скачивание, загрузку и удаление                                                                                         
        <Limit READ WRITE>
                Order Allow,Deny
                AllowUser admin-www
                DenyAll
        </Limit>
</Directory>



cat /etc/proftpd.d/ssl.conf
Код: выделить все
<IfDefine TLS>
        TLSEngine                                               on
#       TLSRequired                                             on
        TLSRequired                                             off
        # TLSCertificateChainFile       /etc/pki/tls/certs/proftpd-chain.pem
        TLSRSACertificateFile           /etc/pki/tls/certs/proftpd-cert.pem
        TLSRSACertificateKeyFile        /etc/pki/tls/certs/proftpd-key.pem
        #TLSCipherSuite                                 PROFILE=SYSTEM
        # Relax the requirement that the SSL session be re-used for data transfers
        TLSCipherSuite                                  ALL:!ADH:!DES
        #TLSOptions                                             NoCertRequest
        TLSVerifyClient                                 off
        TLSLog                                                  /var/log/proftpd/tls.log
        <IfModule mod_tls_shmcache.c>
                TLSSessionCache                         shm:/file=/var/run/proftpd/sesscache
        </IfModule>
</IfDefine>



cat /etc/proftpd.d/sql.conf
Код: выделить все
#SQLLogFile /var/log/proftpd/sql.log
##############################################
<IfModule mod_sql.c>
        SQLBackend mysql
        #MD5('Password')
        SQLAuthTypes MD5
        SQLConnectInfo proftpd@localhost proftpd tnUQGY4W
        SQLUserInfo ftpuser userid passwd uid gid homedir shell
        SQLGroupInfo ftpgroup groupname gid members
        # Update count every time user logs in
        SQLLog PASS updatecount
        SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
        SQLLog STOR,DELE modified
        SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
</IfModule>
Для желающих отблагодарить
SB: 4274320029755744
QIWI: +79175241450
Аватар пользователя
sergey
Администратор
 
Сообщений: 132
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron