Hali
Valaki tudna segíteni hogyan lehet egy adott felhasználót chrootolni vsFTPd alatt egy adott könyvtárba?
a problémám, hogy hiába állítottam be elvileg mindent, kitudok lépni az adott könyvtárból.
addig eljutottam chmoddal hogy nem tudok kilépni de akkor az adott mapábban sem tudok írni.
config:
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=no
hide_ids=no
#userlist_deny=no
#userlist_file=/etc/vsftpd.user_list
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to heckles' FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
#chroot_list_enable below.
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
user_config_dir=/etc/vsftpd_user_conf
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
#secure_chroot_dir=/srv/cod_server
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
user_conf:
dirlist_enable=YES
download_enable=YES
# full path to the directory where 'user1' will have access, change to your ne$
local_root=/srv/cod_server
write_enable=YES
- 13339 megtekintés
Hozzászólások
Szevasz!
Kínlódtam és is eleget nemrég a vsftpd-el.
Biztonsági okokból nem engedi a galád a felhasználói könyvtáron az írásjogot.
Szerintem te is ebbe futottál bele.
Tettem alá mindenkinek egy ftp mappát, írási joggal.
- A hozzászóláshoz be kell jelentkezni
és a jogosultságokat hogy kéne megoldani?
-------------------------------------------------------------------------
Nem, de lehetne.
- A hozzászóláshoz be kell jelentkezni
Ha holnap olvasom bennt a cénél, akkor megnézem a szerverünk ftp configját. Anno simán megoldottam, h nem tud kilépni belőle.
- A hozzászóláshoz be kell jelentkezni
okés thans
-------------------------------------------------------------------------
Nem, de lehetne.
- A hozzászóláshoz be kell jelentkezni
Hali!
Ez a tied:
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
user_conf:
dirlist_enable=YES
download_enable=YES
local_root=/srv/cod_server
write_enable=YES
Nekem van egy ilyenem: vsftpd: version 2.3.5
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
pasv_enable=NO
chroot_local_user=YES
chroot_list_enable=NO
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
allow_writeable_chroot=YES
A logika az hogy van egy /FTP prticio ami az FTP felhasználó home könyvtára. az összes többi felhasználó ez alatt van. Így mindenki csak a saját konyvtárában lehet kivéve az FTP mert ó alatta van mindenki más.
Van pár egyszerű script amivel létre szoktam hozni őket.
Egyszer nagyából megcsináltam azóta nem is foglalkoztam vele.
Biztos van sok más lehetőség, nekem így működik.
ftpadd
#!/bin/bash
cat /etc/passwd | awk -F: '{print $1}' > ./ftpuserold.tmp
sed '/^$/d' ./ftpuserold.tmp > ./ftpuserold
flag=0
if [ $# != 2 ]
then
echo "példa: ftpadd username password"
exit 1
else
while read line; do
u=$(echo "$line" | awk '{print $1}')
p=$(echo "$line" | awk '{print $2}')
if [ "$1" = "$u" ]; then
echo "$u Már létező felhasználó!!!"
flag=1
exit 1
else
flag=0
fi
done < ./ftpuserold
if [ $flag -eq 0 ]; then
useradd $1 -G FTP -d /FTP/$1 -s /bin/false
mkdir /FTP/$1
chown $1:FTP /FTP/$1 -R
chmod 575 /FTP/$1 -R
echo -e "$2\n$2\n" | passwd "$1"
quotatool -u $1 -b -q 150M -l 160M /FTP
fi
fi
exit 0
ftpplusz:
#!/bin/bash
if [ $# != 1 ]
then
echo "példa: ftpplusz username"
exit 1
else
chmod 775 /FTP/$1 -R
exit 1
fi
exit 0
ftpunlinited:
#!/bin/bash
if [ $# != 1 ]
then
echo "példa: ftpadd username"
exit 1
else
chmod 775 /FTP/$1 -R
quotatool -u $1 -b -q 0M -l 0M /FTP
exit 1
fi
exit0
ftpdel
#!/bin/bash
if [ $# != 1 ]
then
echo "példa: ftpdel username"
exit 1
else
userdel -f $1
rmdir /FTP/$1
exit 1
fi
exit0
ftpminusz
#!/bin/bash
if [ $# != 1 ]
then
echo "példa: ftpminusz username"
exit 1
else
chmod 575 /FTP/$1 -R
exit 1
fi
exit 0
Remélem segítettem valamit!
- A hozzászóláshoz be kell jelentkezni
nagyon szépen köszönöm!
lesz egy kis időm megpróbálom meg csinálni így
-------------------------------------------------------------------------
Nem, de lehetne.
- A hozzászóláshoz be kell jelentkezni
+1 serital barang huptársnak, tőlem! :) /* Nagyon hasznos hozzászólás, trükkös megoldással, kézreálló szkriptekkel. */
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Sziasztok,
Meg lehet ezt a chroot problémát oldani a vsFTP vel? Próbáltam már vagy 3 féle képpen, de nem sikerült bezárni a felhasználót a saját könyvtárába. A thefrontiergroup ppa megoldása tetszett volna, de az már nem is működőképes, le sem tölt semmit a tárolóból.
Próbáltam a gyári konfig fájlt kikommentezni a chroot_list fáljal, de nem megy sajnos az sem.
Nincs valami ingyenes hasonló, de működő megoldás?
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
Nekem néhány hete itt segített valaki, és ez a megoldás:
chroot_local_user=YES
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Évekkel ezelőtt úgy lehetett ezt megcsinálni vsftpd-vel, hogy a felhasználó home könyvtárát ilyen alakúra állítod be:
/home/felhasznalo/./
vagy
/home/akarmi/./masvalami/
Ahol a /./ van, abba a könyvtárba lesz chroot-olva.
- A hozzászóláshoz be kell jelentkezni
Szia!
Sajnos nem működik, azt írja, hogy nem tud ilyen könyvtárat létrehozni.
Így próbáltam:
useradd -s /bin/bash -m -d /home/guest/./ -c "GUEST" guest
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
Kitöröltem az -m kapcsolót és így sikerült létrehozni.
Most próbálom egyenként állítgatni a konfig fájlt, hátha jó lesz.
1 chrootra vonatkozó sort kommenteztem ki, ezt: chroot local user=yes
és ez a szerver válasza:
500 OOPS: cannot change directory:/home/guest/./
Login failed.
érdekes, hogyha nem ilyen formátumra állítom be a könyvtárat, akkor sem enged be az új felhasználóval:
Command: USER guest
Response: 331 Please specify the password.
Command: PASS *
Response: 500 OOPS: cannot change directory:/home/guest/
Ez egy Ubuntu 14.04 LTS az alap felhasználóval simán be tudok lépni az ftp szerverre. Nem értem, hogyha létrehoztam egy új usert a rendszeren, akkor azzal miért nem tudok ftp vel belépni.
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
amit zizi emlitett, az a wu-ftpd -nel volt.
es valoszinuleg ott van az eb elhantolva, hogy a guest user ami nemmukod.
felhivnam figyelmed a guest_enable kapcsolora, ami alapallapotban off, es mivel a beidezett vsftpd_conf -ban nem szerepel, ezert valoszinuleg nalad is.
- A hozzászóláshoz be kell jelentkezni
Igen néztem és a leírások szerint ez a virtual userekre vonatkozik.
Most ott tartok, hogy sikerült az új userrel a belépés, de tudok feljebb tallózni a fa szerkezetben, igaz módosítani nem, de letölteni igen, teljesen szeretném bezárni a saját könyvtárába a guest -et.
Abban a pillanatban, ahogy kiveszem a kommentet a chroot_local user=yes elől, és újraindítom a szolgáltatást, ez a szerver válasz:
Command: PASS *
Response: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
guest_enable=yes
guest_username=guest
chroot_local_user=yes
allow_writeable_chroot=YES
- A hozzászóláshoz be kell jelentkezni
Megrpóbálom amit írsz, csak előtte kipróbálom ezt:
allow_writeable_chroot=YES
szerintem ez megoldja, mármint ha beleteszem a konfig fáljba:-)
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
ha bennemaradt volna, az user homedirbol vedd ki a vegerol a "/:/" -t.
- A hozzászóláshoz be kell jelentkezni
Sikerült!
A stackoverflow-n találtam meg a megoldást:
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf
Tökéletesen működik.
Köszönöm a segítséget, ötleteket! Biztosan meg lehet oldani másképpen is, de talán ez a legegyszerűbb.
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
én külön szoktam egy ftpusr felhasználót csinálni, utánna a configba csak meg kell adni, hogy chroot_local_user=yes
meg a jogosultságot megadni
dr-xr-xr-x 3 ftpusr ftpusr 4096 Feb 24 03:30 .
drwxr-xr-x 6 root root 4096 Apr 28 03:47 ..
drwxrwxrwx 2 ftpusr ftpusr 4096 Mar 16 18:00 ftp
úgy persze csak az ftp mapába lehet dolgozni.
esetleg még
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
-------------------------------------------------------------------------
Nem, de lehetne.
- A hozzászóláshoz be kell jelentkezni
Értem, köszi.
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
(feliratkozás)
- A hozzászóláshoz be kell jelentkezni
Ugyan így jártam én is, és nekem "megoldhatatlannak bizonyult", mert ha megváltoztattam a jogokat, akkor a fetchmail nem tudott dolgozni a könyvtárban. Szerencsére kicsi cég vagyunk így én definiáltam egy "kozosftp" nevü user-t ami nem kapott leveleke, de ehez az is kell hogy közkincs lehessen az adott könyvtár. Most ez van. Működik, de nincs privát tartalom.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.
- A hozzászóláshoz be kell jelentkezni
Sziasztok,
Ami működött Ubuntu-s virtual gépen, most nem működik debian on:-)
Ez a config fájl tartalma:
http://paste.debian.net/120271/
Létrehoztam 3 teszt felhazsnálót, de tudják egymás mappáját tallózni, pedig a jogosultságok a /home/user1, user2, user3 mon 700 as, azaz rwx de cska a tulajnak.
A vsftpd 2.x.x verziójával eddig még nem tudtam elérni azt, hogy egymás mappáját, de a fájlrendszert se tudják tallózgatni.
Ubuntu-s vituálisgépben működött szépen a dolog, a chroot_local_user-t NO ra állítottam és máris nem tudtak áttallózni a felhazsnálók, de még egy mappával feljebb sem tudtak lépni.
Tudnátok ötletet adni, hogy mi lehet a gond? Layer 8 as hiba lenne? :-)
A ProFTPD szerintetek könnyebben konfigurálható program?
Olvastam, hogy a vsftpd 2.3.4 es verziója tartalmazott egy backdoor-t,amit egy ideig nem vett észre a közösség, láttam Kali Linuxos videót is erről a YouTube-on, proftpd vel volt hasonló eset?
A zaz igazság, hogy tesztelem egy ideje a vsftpd-t de nem tetszik annyira, szerintem gáz, hogy alapból bele tud tallózni a user a könyvtárszerkezetbe, persze csak olvasási joga van, de akkor se olvasgasson bele config fájlokba szerintem senki, aki nem root egy rendszeren.
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
Nem tudok érdemben hozzászólni, nekem Fedorán és CentOS-en működik a vsftpd. Úgy értem, az is, ami a problémád. Én éppen ezért nem használok, és soha nem is használtam Debiant. Nagyon régiek a csomagjai, olykor olvasom, hogy olyan problémába futnak bele Debian alatt, amit Fedorán már kb. 3 éve elfelejtett az ember, megoldott kérdés.
Számomra az is vicces, hogy Debianon a systemd valami újdonság. Fedora 15-től létezik, ha jól emlékszem, most meg Fedora 21-et használok. :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
ha jolemlexem, a chroot_local_user=NO az pont nem zarja chrootba az usereket, csak akkor, ha van melle chroot_list_enabe=YES + chroot_list_file.
igy a chroot_list_file -ben felsorolt usereket bezarja.
chroot_local_user=YES mindenkit bezar, viszont ilyenkor fordul a chroot_list_file szerepe, aki ott fel van sorolva, azt nem zarja be.
- A hozzászóláshoz be kell jelentkezni