Very Secure FTP Daemon (Česky)

From ArchWiki
Revision as of 14:12, 2 April 2011 by Brokarna (Talk | contribs) (Created page with "Category:Networking (English) Category:HOWTOs (English) {{i18n|Very Secure FTP Daemon}} '''vsftpd''' (Very Secure FTP Daemon) je lehký, stabilní a bezpečný FTP serve...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

vsftpd (Very Secure FTP Daemon) je lehký, stabilní a bezpečný FTP server pro UNIX-like systémy.

Instalace

Vsftpd je začleněn do oficiálního repozitáře. Instalovat můžete např. pomocí utility pacman:

# pacman -S vsftpd

Připojení povolíte modifikací souboru Template:Filename:

# Povolit všechna připojení
vsftpd: ALL
# Omezit na určený rozsah IP adres
vsftpd: 10.0.0.0/255.255.255.0

Server můžete spustit tímto skriptem:

# /etc/rc.d/vsftpd start

Pokud chcete spustit vsftpd při startu počítače, přidejte ho do pole DAEMONS v souboru Template:Filename.

Pokud chcete použít vsftpd s xinetd následujte postup napsaný níže.

Konfigurace

Většiny nastavení docílíte editací souboru Template:Filename. Soubor je dobře zdokumentovaný, a proto tato sekce poukazuje pouze na některé důležité změny. Pro všechny možnosti a dokumentaci můžete použít man vsftpd.conf (5).

Povolení uploadu

Pokud chcete povolit změny na souborovém systému, jako například při uploadu, Template:Codeline musíte nastavit na YES v souboru Template:Filename:

write_enable=YES

Přihlašování lokálních uživatelů

Pro povolení přihlašování uživatelů v souboru Template:Filename nastavte tento řádek v souboru Template:Filename:

local_enable=YES

Anonymní přihlašování

Tyto řádky v souboru Template:Filename určují, zda se anonymní uživatelé mohou přihlásit:

anonymous_enable=YES # Povolí anonymní přihlášení
no_anon_password=YES # Nevyžadovat heslo k anonymnímu přihlášení
anon_max_rate=30000  # Maximální rychlost přenosu anonymními uživateli v bytech za sekundu

Chroot jail

One can set up a chroot environment which prevents the user from leaving its home directory. To enable this, add the following lines to Template:Filename:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

The Template:Codeline variable specifies the file which contains users that are jailed.

For a more restricted environment, one can specify the line:

chroot_local_user=YES

This will make local users jailed by default. In this case, the file specified by Template:Codeline lists users that are not in a chroot jail.

Zamezení přihlašování uživatelů

Je možné zamezit uživatelům přístup k FTP serveru přidáním 2 řádek do souboru Template:Filename:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

Template:Codeline nyní určuje uživatele, kteří se nesmí přihlásit.

Pokud chcete naopak pouze některým uživatelům povolit přístup, přidejte řádek:

userlist_deny=NO

Soubor určený na řádku Template:Codeline pak obsahuje uřivatele, kteří se mohou přihlásit.

Omezení připojení

Můžete omezit rychlost přenosu dat, počet klientů a počet připojení na jednu IP adresu pro lokální uživatele, přidáním těchto řádek do souboru Template:Filename:

local_max_rate=1000000 # Maximální rychlost přenosu dat v bytech za sekundu
max_clients=50         # Maximální počet klientů, kteří mohou být připojeni
max_per_ip=2           # Maximální počet připojení na jednu IP adresu

Použití xinetd

Pokud chcete použít vsftpd s xinetd, přidejte následující řádky do souboru Template:Filename:

service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        log_on_success  += HOST DURATION
        log_on_failure  += HOST
        disable                 = no
}

Tyto volby by měly být nastaveny v souboru Template:Filename:

tcp_wrappers=YES        # Použít tcp_wrappers ke správě připojení. Poté povolit v hosts.allow
pam_service_name=vsftpd

Poté se ujistěte, že je vsftpd povolen pro IP adresy, které se mají připojovat k serveru, v souboru Template:Filename:

vsftpd: ALL

Nakonec přidejte xinetd do pole DAEMONS v souboru Template:Filename. Není třeba přidávat vsftpd, neboť bude spuštěn utilitou xinetd kdykoliv bude třeba.

Pokud při připojování k serveru dostáváte chybová hlášení jako toto:

500 OOPS: cap_set_proc

Je třeba přidat capability do pole MODULES= v souboru Template:Filename.

Po přejití na verzi 2.1.0 můžete dostávát během připojování chybová hlášení jako toto:

500 OOPS: could not bind listening IPv4 socket

V předešlých verzích stačilo nechat tyto řádky zakomentované:

# Toto použijte k nastavení vsftpd do samostatného módu nebo vsftpd bude fungovat s (x)inetd
# listen=YES

V této verzi, a nejspíše i v budoucích, je třeba explicitně nastavit vsftpd, aby neběžel v samostatném módu:

# Toto použijte k nastavení vsftpd do samostatného módu nebo vsftpd bude fungovat s (x)inetd
listen=NO

Tipy a triky

PAM s virtuálními uživatelskými účty

Používání virtuálních uživatelů přináší výhodu v nevyžadování reálného uživatelského účtu v systému. Keeping the environment in a container is of course a more secure option.

A virtual users database has to be created by first making a simple text file like this:

user1
password1
user2
password2

Include as many virtual users as you wish according to the structure in the example. Save it as logins.txt; the file name does not have any significance. Next step depends on Berkeley database system, which is included in the core system of Arch. As root create the actual database with the help of the logins.txt file, or what you chose to call it:

# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

It is recommended to restrict permissions for the now created Template:Filename file:

# chmod 600 /etc/vsftpd_login.db
Warning: Be aware that stocking passwords in plain text is not safe. Don't forget to remove your temporary file with Template:Codeline.

PAM should now be set to make use of vsftpd_login.db. To make PAM check for user authentication create a file named ftp in the Template:Filename directory with the following information:

auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash 
account required pam_userdb.so db=/etc/vsftpd_login crypt=hash
Note: We use /etc/vsftpd_login without .db extension in PAM-config!

Now it is time to create a home for the virtual users. In the example Template:Filename is decided to host data for virtual users, which also reflects the default directory structure of Arch. First create the general user virtual and make Template:Filename its home:

# useradd -d /srv/ftp virtual

Make virtual the owner:

# chown virtual:virtual /srv/ftp

Configure vsftpd to use the created environment by editing /etc/vsftpd.conf. These are the necessary settings to make vsftpd restrict access to virtual users, by user-name and password, and restrict their access to the specified area Template:Filename:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
virtual_use_local_privs=YES

If the xinetd method is used start the service. You should now only be allowed to login by user-name and password according to the made database.

Přidání soukromých adresářů pro virtuální uživatelské účty

Nejdříve vytvořte složky pro uživatele:

# mkdir /srv/ftp/user1
# mkdir /srv/ftp/user2
# chown virtual:virtual /srv/ftp/user?/

Poté přidejte následující řádky do souboru Template:Filename:

local_root=/srv/ftp/$USER
user_sub_token=$USER

Další zdroje