Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-03-16 18:24:22

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Proftpd + MySQL - Wolne otwieranie katalogów

Mam problem z moim serwerem proftpd połączony z bazą danych MySQL.
Polega on na tym, że czasem na otworzenie katalogu trzeba czekać nawet 1-3min! Nie wiem co tutaj może być źle. Przez sftpd (konta root) wszystko działa prawidłowo, tylko na tym proftpd coś nie.

[b]proftpd.conf[/b]:

Kod:

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
# 

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6                off
# If set on you can experience a longer connection delay in many cases.
IdentLookups            off

ServerName            "Debian"
ServerType            standalone
DeferWelcome            off

MultilineRFC2228        on
DefaultServer            on
ShowSymlinks            on

TimeoutNoTransfer        600
TimeoutStalled            600
TimeoutIdle            1200

DisplayLogin                    welcome.msg
DisplayChdir                   .message true
ListOptions                    "-l"

DenyFilter            \*.*/
PathDenyFilter "(\.ftpaccess)$"

UseReverseDNS off

# Use this to jail all users in their homes 
# DefaultRoot            ~

# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell        off

# Port 21 is the standard FTP port.
Port                21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts                  49152 65534

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress        1.2.3.4

# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances            30

# Set the user and group that the server normally runs at.
User                proftpd
Group                nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask                022  022
# Normally, we want files to be overwriteable.
AllowOverwrite            on

# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd        off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder            mod_auth_pam.c* mod_auth_unix.c

# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile            off

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

#<IfModule mod_quotatab.c>
#QuotaEngine off
#</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default. 
<IfModule mod_delay.c>
DelayEngine off
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf

#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.con

DefaultRoot ~

SQLBackend              mysql
# The passwords in MySQL are encrypted using CRYPT
SQLAuthTypes            Plaintext Crypt
SQLAuthenticate         users


# used to connect to the database
# databasename@host database_user user_password
SQLConnectInfo  baza@ip user pass


# Here we tell ProFTPd the names of the database columns in the "usertable"
# we want it to interact with. Match the names with those in the db
SQLUserInfo     ftpuser userid passwd uid gid "CONCAT('/home/', homedir) AS homedir" shell
SQLUserWhereClause "status=1"

# Here we tell ProFTPd the names of the database columns in the "grouptable"
# we want it to interact with. Again the names match with those in the db
SQLGroupInfo    ftpgroup groupname gid members

# set min UID and GID - otherwise these are 999 each
SQLMinID        500

# create a user's home directory on demand if it doesn't exist
CreateHome off

# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

# Update modified everytime user uploads or deletes a file
SQLLog  STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

# User quotas
# ===========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

RootLogin off
RequireValidShell off

TransferRate RETR 3840.0
TransferRate STOR 6400.0

[b]modules.conf[/b]:

Kod:

#
# This file is used to manage DSO modules and features.
#

# This is the directory where DSO modules reside

ModulePath /usr/lib/proftpd

# Allow only user root to load and unload modules, but allow everyone
# to see which modules have been loaded

ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *

LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c

# Install one of proftpd-mod-mysql, proftpd-mod-pgsql or any other
# SQL backend engine to use this module and the required backend.
# This module must be mandatory loaded before anyone of
# the existent SQL backeds.
LoadModule mod_sql.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_ldap.c

#
# 'SQLBackend mysql' or 'SQLBackend postgres' (or any other valid backend) directives 
# are required to have SQL authorization working. You can also comment out the
# unused module here, in alternative.
#

# Install proftpd-mod-mysql and decomment the previous
# mod_sql.c module to use this.
LoadModule mod_sql_mysql.c

# Install proftpd-mod-pgsql and decomment the previous 
# mod_sql.c module to use this.
#LoadModule mod_sql_postgres.c

# Install proftpd-mod-sqlite and decomment the previous
# mod_sql.c module to use this
#LoadModule mod_sql_sqlite.c

# Install proftpd-mod-odbc and decomment the previous
# mod_sql.c module to use this
#LoadModule mod_sql_odbc.c

# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
#LoadModule mod_sql_passwd.c

LoadModule mod_radius.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_quotatab_ldap.c

# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
LoadModule mod_quotatab_sql.c
LoadModule mod_quotatab_radius.c
LoadModule mod_wrap.c
LoadModule mod_rewrite.c
LoadModule mod_load.c
LoadModule mod_ban.c
LoadModule mod_wrap2.c
LoadModule mod_wrap2_file.c
# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
#LoadModule mod_wrap2_sql.c
LoadModule mod_dynmasq.c
#LoadModule mod_vroot.c
#LoadModule mod_exec.c
#LoadModule mod_shaper.c
LoadModule mod_ratio.c
LoadModule mod_site_misc.c

#LoadModule mod_sftp.c
#LoadModule mod_sftp_pam.c
# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
#LoadModule mod_sftp_sql.c

LoadModule mod_facl.c
#LoadModule mod_unique_id.c

# keep this module the last one
LoadModule mod_ifsession.c

[b]Struktura bazy danych[/b]:

Kod:

CREATE TABLE IF NOT EXISTS `ftpgroup` (
  `groupname` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  `gid` int(11) NOT NULL,
  `members` varchar(50) COLLATE utf8_polish_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES
('ftpgroup', 2001, 'ftpuser');



CREATE TABLE IF NOT EXISTS `ftpquotalimits` (
  `name` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  `quota_type` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT 'user',
  `per_session` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT 'false',
  `limit_type` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT 'hard',
  `bytes_in_avail` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT '0',
  `bytes_out_avail` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT '0',
  `bytes_xfer_avail` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT '0',
  `files_in_avail` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT '0',
  `files_out_avail` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT '0',
  `files_xfer_avail` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT '0',
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;



CREATE TABLE IF NOT EXISTS `ftpquotatallies` (
  `name` varchar(50) NOT NULL,
  `quota_type` varchar(50) NOT NULL DEFAULT 'user',
  `bytes_in_used` varchar(50) NOT NULL DEFAULT '0',
  `bytes_out_used` varchar(50) NOT NULL DEFAULT '0',
  `bytes_xfer_used` varchar(50) NOT NULL DEFAULT '0',
  `files_in_used` varchar(50) NOT NULL DEFAULT '0',
  `files_out_used` varchar(50) NOT NULL DEFAULT '0',
  `files_xfer_used` varchar(50) NOT NULL DEFAULT '0',
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



CREATE TABLE IF NOT EXISTS `ftpuser` (
  `userid` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  `passwd` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  `uid` int(11) NOT NULL DEFAULT '2004',
  `gid` int(11) NOT NULL DEFAULT '2004',
  `homedir` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  `shell` varchar(50) COLLATE utf8_polish_ci NOT NULL DEFAULT '/usr/sbin/nologin',
  `count` int(11) NOT NULL DEFAULT '0',
  `accessed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `status` int(11) NOT NULL DEFAULT '1',
  UNIQUE KEY `userid` (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

Liczę na pomoc.

Offline

 

#2  2012-03-16 19:32:29

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Proftpd + MySQL - Wolne otwieranie katalogów

spróbuj go przepiąć na PAM (pam-mysql).

W razie, jakby w nim znaleźli hard-dziurę albo [url=http://www.h-online.com/open/news/item/Back-door-in-ProFTPD-FTP-server-1146592.html]backdoora[/url], łatwiej będzie go można zmienić na inny.
Jak masz gotowe konfigi, wskazujące na ten sam certyfikat ssl, i ten sam moduł Pam, to zamianę między Proftpd a Pure-Ftpd można zrobić w ciagu 3 minut.

U mnie , z pam-mysql otwierał katalogi w sekundę.

Ten [url=http://dug.net.pl/tekst/159/konfiguracja_serwera_vsftpd_z_wirtualnymi_uzytkownikami_w_bazie_mysql_/]przepis[/url] działa ze wszystkimi serwerami, nie tylko vsftpd.

A sftp lepiej puścić na orginalnym ssh, znacznie to bezpieczniejsze od serwerów ftp.
I też conieco potrafi, np:

Kod:

Match group sftpgroup
    ChrootDirectory /home
    GatewayPorts no
    X11Forwarding no
    ForceCommand internal-sftp
    AllowTcpForwarding no

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-03-16 21:15:20)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2012-03-16 19:47:52

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Proftpd + MySQL - Wolne otwieranie katalogów

Zaraz to protestuję.
Co do sftp miałem na myśli to zwykłe FTP, które daje ssh, bez żadnego serwera ftp.

Zainstalowałem libpam-mysql, i co dalej?
Przecież w /etc/pam.d/proftpd nie będę ustalał połączenia z bazą danych, bo ustawiam przecież w /etc/proftpd/proftpd.conf
I tak wolno się ładuje albo wcale :/

Ostatnio edytowany przez desavil (2012-03-16 20:12:44)

Offline

 

#4  2012-03-16 20:12:48

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Proftpd + MySQL - Wolne otwieranie katalogów

W [b]modules.conf[/b] zostawiłem tylko:

Kod:

ModulePath /usr/lib/proftpd
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_sql.c

I wydaje mi się, że działa szybko. Pierwsze ładowanie po połączeniu głównego katalogu ok. 5s, a katalogi bez problemów.

Tylko czy mogę takie moduły zostawić, czy to czegoś nie pogorszy?
Korzystam tylko z użytkowników z bazy danych oraz quoty, również w bazie jest ustawiana. Z resztą wyżej podałem główny config.

PS. Zmieniłem na domyślne modules jak w pierwszym poście i znów muli :D, będę chyba wywalał po jednej opcji i sprawdzał która to.
Te FTP chyba ma fazy... hehe

@edit
sorry za post pod postem, ale myślałem, że doda to tego powyższego.

Ostatnio edytowany przez desavil (2012-03-16 20:17:31)

Offline

 

#5  2012-03-16 20:17:57

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Proftpd + MySQL - Wolne otwieranie katalogów

Kod:

/etc/pam.d/ftp

dla wszystkich serwerów, wspólny.
Interfejs pam jest taki sam dla wszystkich.

W /etc/pam.d/ftp wklejasz:

Kod:

auth required /lib/security/pam_mysql.so user=vsftpd passwd=hasloftp host=localhost db=vsftpd table=ftp_users usercolumn=login passwdcolumn=haslo crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=hasloftp host=localhost db=vsftpd table=ftp_users usercolumn=login passwdcolumn=haslo crypt=2

Użyszkodników dodajesz przez useradd z powłoką /bin/false, czy to brzmi znajomo?

Poza tym ta wersja Proftpd może mieć jakiś błąd z uwierzytelnieniem, może spróbuj na jakiejś innej, jeśli masz w Synapticu jakieś dostępne, względnie paczka z Ubuntu może być.

Możesz też, jakby nic innego nie dało rady, zbudować go na miejscu przez dpkg.

Jakbyś się kiedyś poddał Gentoizacji ;), to proszę bardzo:

net-ftp/proftpd
     Available versions:  [b]1.3.3e[/b] [b]1.3.3f[/b] [b]1.3.3g[/b] ~1.3.4a {acl authfile ban +caps case clamav copy (+)ctrls deflate diskuse doc exec ident ifsession ifversion ipv6 kerberos ldap memcache mysql ncurses nls pam +pcre postgres qos radius ratio readme rewrite selinux sftp shaper sitemisc softquota sqlite ssl tcpd test trace vroot xinetd}[/quote]
dostępne 3 wersje stabilne i jedna testowa.

Co do sftp miałem na myśli to zwykłe FTP, które daje ssh, bez żadnego serwera ftp.[/quote]
Porównując jakość, stabilność i bezpieczeństwo serwera ssh i serwera ftp (dowolnego), mogę chyba tylko polecić wizytę u dobrej i ładnej  psycholożki :D

Z serwerów ftp, z pośród trzech: proftpd, pure-ftp, [url=http://www.h-online.com/open/news/item/Vsftpd-backdoor-discovered-in-source-code-update-1272310.html]vsftpd[/url], tylko pure nie miał w ciągu ostatnich 2 lat wpadki z backdoorem, ani jakichś olbrzymich kłopotów z bezpieczeństwem.
A każdy serwer ftp w ciagu 3 lat miewa co najmniej  tyle dziur, co Openssh przez ostatnie 20 lat.
Tu masz małe [url=http://www.gentoo.org/doc/pl/security/security-handbook.xml?part=1&chap=10#doc_chap6]porównanie[/url].
A kawałek wyżej mały wstęp:

10.d. FTP

Generalnie używanie FTP (File Transfer Protocol) to kiepski pomysł. FTP używa niezaszyfrowanych haseł (są przesyłane czystym tekstem), nasłuchuje na dwóch portach (standardowo 20 i 21), a ponadto jest często atakowane przez włamywaczy szukających anonimowych serwerów w celu wymiany warezów. W związku z wieloma brakami w bezpieczeństwie protokołu FTP powinno się zamiast niego używać sftp lub HTTP. Jeśli nie jest to możliwe należy zabezpieczyć FTP jak to tylko możliwe i przygotować się na sporo problemów.[/quote]
Edyta:
Co do: "[b]miałem na myśli to zwykłe FTP[/b], które daje ssh, [b]bez żadnego serwera ftp[/b]", to takie cudo powinieneś opatentować :DDDDDD

Pozdrawiam
;-)

Ostatnio edytowany przez Jacekalex (2012-03-16 20:32:58)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2012-03-16 20:38:43

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Proftpd + MySQL - Wolne otwieranie katalogów

[b]LoadModule mod_ratio.c[/b] <- powodowało długie wczytywanie katalogów
[b]LoadModule mod_ifsession.c[/b] <- długie listowanie katalogów/plików przy logowaniu
Po usunięciu ich działa prawie idealnie :)

Mój system to Debian 6.0 64bit - [b]ProFTPD Version 1.3.3a[/b]
Proponujesz dodatkowo jakąś aktualizację?

Wnioskuję, dodatkowo że lepiej używać jeżeli chodzi o serwer FTP: Pure-FTPd?

Ostatnio edytowany przez desavil (2012-03-16 21:02:41)

Offline

 

#7  2012-03-16 21:29:55

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Proftpd + MySQL - Wolne otwieranie katalogów

Pure-ftpd w Debianie ma najłatwiejszą, wrecz banalną konfigurację, choćnie ma tylu bajerów, co Proftpd.

Co do ssh, to poprawilem  w poście 2 konfig do chrootowania sftpgroup, sprawdziłem 5 minut temu, działa.
Tylko trzeba ustawić w głównej sekcji konfigu:

Kod:

Subsystem       sftp    internal-sftp
KeepAlive yes

bez problemu przez sftp i sshfs włażę do folderu uzyszkodnika

Kod:

grep pies /etc/passwd
pies:x:1004:1004::/home/pies:/bin/false

Wymagało to jeszcze dodania powłoki [b]/bin/false[/b] do [b]/etc/shells[/b], ale działa.

W przeciwieństwie do ftp, nie wymaga portów pasywnych,, żadnych kilku(nastu) portów, tylko 1, logowanie po kluczach kryptograficznych (jak ktoś lubi), w porównaniu z ftp po prostu miód malina.
Pomijając 25 razy prostsze połączenie za natem, kiedy masz 1 port komunikacji, a nie 50.

Aktualny konfig sshd (dość chaotyczny, ale działa ;) ):

Kod:

Port 22
ListenAddress 0.0.0.0
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
ServerKeyBits 4096
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 15

PermitRootLogin  without-password
StrictModes yes
MaxAuthTries 5
RSAAuthentication yes
AuthorizedKeysFile    .ssh/autorized.keys
PermitTunnel yes
RhostsRSAAuthentication no
IgnoreUserKnownHosts no
PasswordAuthentication yes
PermitEmptyPasswords no
UsePAM no
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
PrintMotd yes
PrintLastLog yes
TCPKeepAlive yes
UseLogin no
UsePrivilegeSeparation yes
PermitUserEnvironment no
ClientAliveInterval 3
ClientAliveCountMax 3
UseDNS yes
PidFile /var/run/sshd.pid

Subsystem       sftp    internal-sftp
KeepAlive yes
 
HPNBufferSize 2048

Match group sftpgroup
    ChrootDirectory /home
    PermitTunnel  no
    GatewayPorts no
    X11Forwarding no
    ForceCommand internal-sftp
    AllowTcpForwarding no

Krótko piszac, [b]user[/b] z powłoką [b]/bin/false[/b] dodany do grupy [b]sftpgroup[/b], jeśli posiada folder w [b]/home/user[/b] i uprawnienia tego folderu to [b]700[/b], ma miły prywatny zakątek na pliki, i zarazem diabelnie mało może zmalować na serwerze, 15 razy mniej, niż przy dowolnym serwerze ftp.
Do przydzialów quoty masz np [b]cgroup[/b] (chyba, jeszcze nie testowalem), [b]/etc/security/limits.conf [/b] (na pewno i działała), albo quoty dyskowe, do wyklikania w Webminie (też działa).

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-03-16 21:34:17)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2012-03-16 22:12:51

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Proftpd + MySQL - Wolne otwieranie katalogów

Chyba się nie rozumiemy.
W ssh nic nie chcę zmieniać. Podałem tylko przykład, że łącząc się z nim (konto root) w celu przeglądania plików, wszystko działa szybko (czyli to nie wina obciążonego serwera itp).
Czyli coś z proftpd źle ustawione.

Ostatnio edytowany przez desavil (2012-03-16 22:16:26)

Offline

 

#9  2012-03-16 22:16:49

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Proftpd + MySQL - Wolne otwieranie katalogów

To tu masz instrukcję, co robić, żeby wyczaić, co jest grane.
http://www.proftpd.org/docs/howto/Debugging.html


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.009 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00008 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00116 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.222.163.134' WHERE u.id=1
0.00088 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.222.163.134', 1732448346)
0.00051 SELECT * FROM punbb_online WHERE logged<1732448046
0.00051 SELECT topic_id FROM punbb_posts WHERE id=197825
0.00095 SELECT id FROM punbb_posts WHERE topic_id=20902 ORDER BY posted
0.00080 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20902 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00131 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20902 ORDER BY p.id LIMIT 0,25
0.00093 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20902
Total query time: 0.00722 s