ubuntuusers.de

12.04LTS Server - vsftpd 2.3.5 - 500 OOPS: vsftpd: refusing to run with writable root inside chroot

Status: Gelöst | Ubuntu-Version: Server 12.04 (Precise Pangolin)
Antworten |

duesentriebchen

(Themenstarter)
Avatar von duesentriebchen

Anmeldungsdatum:
10. Februar 2012

Beiträge: 713

Wohnort: Im Inntal

Hallo micky

Anbei die Ausgabe betreffend der libs

:~$ sudo find /lib -iname 'libcrypto*'
[sudo] password for : 
/lib/i686/cmov/libcrypto.so.0.9.8
/lib/libcrypto.so.0.9.8
/lib/i486/libcrypto.so.0.9.8
/lib/i586/libcrypto.so.0.9.8
:~$ sudo find /lib -iname 'libssl*'
/lib/i686/cmov/libssl.so.0.9.8
/lib/i486/libssl.so.0.9.8
/lib/libssl.so.0.9.8
/lib/i586/libssl.so.0.9.8
:~$ sudo find /lib -iname 'libwrap*'
/lib/libwrap.so.0
/lib/libwrap.so.0.7.6
:~$ sudo find /lib -iname 'libcap*'
/lib/libcap.so.2.17
/lib/libcap.so.2

Libaries sollten demnach vorhanden sein ❓

Hier der Link zum Sourcecode

http://vsftpd.devnet.ru/files/2.2.2/ext.7/vsFTPd-2.2.2-ext7.tgz

Hier der Link zum SSL_Patch

http://vsftpd.devnet.ru/files/2.2.2/ext.7/patch/1.%20ssl_userlist.patch

Ich werde mal die Makefile patchen mit den LDFLAGS und dann schaun wa mal 😀

EDIT

Mit diesen libs hat's nicht gefuntzt

Nach

sudo aptitude install -y libcap-dev libpam-dev libssl-dev libwrap0-dev

und dieser Makefile

# Makefile for systems with GNU tools
CC 	=	gcc
INSTALL	=	install
IFLAGS  = -idirafter dummyinc
#CFLAGS = -g

CFLAGS	=	-O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion


#LIBS	=	-ldl -lcrypt    -lpam    -lwrap -lnsl    -lssl -lcrypto
# For FreeBSD?  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LIBS	=	-lcap -ldl -lcrypt    -lpam    -lwrap -lnsl    -lssl -lcrypto
#                                      |        |               + VSF_BUILD_SSL
#                                      |        + VSF_BUILD_TCPWRAPPERS
#                                      + VSF_BUILD_PAM
VSFTPD_LDFLAGS = -lssl -lcrypto -ldl
LINK	=	-Wl,-s

OBJS	=	main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
		tunables.o ftpdataio.o secbuf.o ls.o \
		postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o \
    banner.o filestr.o parseconf.o secutil.o \
    ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \
    tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o \
    ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o \
    charconv.o pasvrules.o usersip.o


.c.o:
	$(CC) -c $*.c $(CFLAGS) $(IFLAGS)

vsftpd: $(OBJS) 
	$(CC) -o vsftpd $(OBJS) $(LINK) $(LIBS) $(VSFTPD_LDFLAGS)

install:
	if [ -x /usr/local/sbin ]; then \
		$(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
	else \
		$(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
	if [ -x /usr/local/man ]; then \
		$(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
	elif [ -x /usr/share/man ]; then \
		$(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
	else \
		$(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
	if [ -x /etc/xinetd.d ]; then \
		$(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi

clean:
	rm -f *.o *.swp vsftpd

mit dieser builddefs.h

#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H

#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL

#define VSF_CONFIG_PATH "/etc/"
#define VSF_CONFIG_PREFIX "vsftpd."
//#define VSF_CONFIG_PATH "/etc/"
//#define VSF_CONFIG_PREFIX "vsftpd."

#endif /* VSF_BUILDDEFS_H */

kam im Terminal eine erfolgreiche Ausgabe

:~/vsftpd/vsFTPd-2.2.2-ext.7$ make
gcc -c main.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c utility.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c prelogin.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ftpcmdio.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c postlogin.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c privsock.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c tunables.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ftpdataio.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c secbuf.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ls.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c postprivparent.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c logging.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c str.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c netstr.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c sysstr.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c strlist.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c banner.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c filestr.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c parseconf.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c secutil.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ascii.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c oneprocess.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c twoprocess.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c privops.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c standalone.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c hash.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c tcpwrap.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ipaddrparse.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c access.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c features.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c readwrite.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c opts.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ssl.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c sslslave.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ptracesandbox.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c ftppolicy.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c sysutil.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c sysdeputil.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c charconv.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c pasvrules.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -c usersip.c -O2 -Wall -W -Wshadow  -idirafter dummyinc
gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o charconv.o pasvrules.o usersip.o -Wl,-s -lcap -ldl -lcrypt    -lpam    -lwrap -lnsl    -lssl -lcrypto -lssl -lcrypto -ldl

Also weiter im Text 😬

mickydoutza

Avatar von mickydoutza

Anmeldungsdatum:
31. Dezember 2010

Beiträge: 2185

duesentriebchen schrieb:

und dieser Makefile

CC 	=	gcc
INSTALL	=	install
IFLAGS  = -idirafter dummyinc
#CFLAGS = -g

CFLAGS	=	-O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion


#LIBS	=	-ldl -lcrypt    -lpam    -lwrap -lnsl    -lssl -lcrypto
# For FreeBSD?  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LIBS	=	-lcap -ldl -lcrypt    -lpam    -lwrap -lnsl    -lssl -lcrypto
#                                      |        |               + VSF_BUILD_SSL
#                                      |        + VSF_BUILD_TCPWRAPPERS
#                                      + VSF_BUILD_PAM
VSFTPD_LDFLAGS = -lssl -lcrypto -ldl
LINK	=	-Wl,-s

OBJS	=	main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
		tunables.o ftpdataio.o secbuf.o ls.o \
		postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o \
    banner.o filestr.o parseconf.o secutil.o \
    ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \
    tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o \
    ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o \
    charconv.o pasvrules.o usersip.o


.c.o:
	$(CC) -c $*.c $(CFLAGS) $(IFLAGS)

vsftpd: $(OBJS) 
	$(CC) -o vsftpd $(OBJS) $(LINK) $(LIBS) $(VSFTPD_LDFLAGS)

install:
	if [ -x /usr/local/sbin ]; then \
		$(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
	else \
		$(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
	if [ -x /usr/local/man ]; then \
		$(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
	elif [ -x /usr/share/man ]; then \
		$(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
	else \
		$(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
	if [ -x /etc/xinetd.d ]; then \
		$(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi

clean:
	rm -f *.o *.swp vsftpd

Versuch mal die Makefile die ich dir empfohlen habe.

duesentriebchen

(Themenstarter)
Avatar von duesentriebchen

Anmeldungsdatum:
10. Februar 2012

Beiträge: 713

Wohnort: Im Inntal

Hallo micky

LÄUFT

:/etc$ sudo lsof -nPi | grep vsftpd
vsftpd    3750  root    0u  IPv4 329534      0t0  TCP *:21 (LISTEN)
:~/vsftpd/vsFTPd-2.2.2-ext.7$ vsftpd -v
vsFTPd version 2.2.2+ (ext.7)

Hatte ein wenig probs mit den manpages, lies sich aber kopieren.

Die Makefile die ich verwendet habe, ist nach deiner Vorlage micky. Ich hab die VSFTPD_LDFLAGS von dir gepacht!

# Makefile for systems with GNU tools
CC 	=	gcc
INSTALL	=	install
IFLAGS  = -idirafter dummyinc
#CFLAGS = -g

CFLAGS	=	-O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion


#LIBS	=	-ldl -lcrypt    -lpam    -lwrap -lnsl    -lssl -lcrypto
# For FreeBSD?  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LIBS	=	-lcap -ldl -lcrypt    -lpam    -lwrap -lnsl    -lssl -lcrypto
#                                      |        |               + VSF_BUILD_SSL
#                                      |        + VSF_BUILD_TCPWRAPPERS
#                                      + VSF_BUILD_PAM
VSFTPD_LDFLAGS = -lssl -lcrypto -ldl
LINK	=	-Wl,-s

OBJS	=	main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
		tunables.o ftpdataio.o secbuf.o ls.o \
		postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o \
    banner.o filestr.o parseconf.o secutil.o \
    ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \
    tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o \
    ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o \
    charconv.o pasvrules.o usersip.o


.c.o:
	$(CC) -c $*.c $(CFLAGS) $(IFLAGS)

vsftpd: $(OBJS) 
	$(CC) -o vsftpd $(OBJS) $(LINK) $(LIBS) $(VSFTPD_LDFLAGS)

install:
	if [ -x /usr/local/sbin ]; then \
		$(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
	else \
		$(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
	if [ -x /usr/local/man ]; then \
		$(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
	elif [ -x /usr/share/man ]; then \
		$(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
	else \
		$(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
		$(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
	if [ -x /etc/xinetd.d ]; then \
		$(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi

clean:
	rm -f *.o *.swp vsftpd

Wenn ich deine Makefile zum Einsatz bringen will, "deinstallier" ich dann über

make clean

❓

mickydoutza

Avatar von mickydoutza

Anmeldungsdatum:
31. Dezember 2010

Beiträge: 2185

duesentriebchen schrieb:

Hallo micky

LÄUFT

OK, alles klar.

duesentriebchen schrieb:

Wenn ich deine Makefile zum Einsatz bringen will, "deinstallier" ich dann über

make clean

❓

Ja.

EDIT:

"make clean" löscht:

clean:
	rm -f *.o *.swp vsftpd

duesentriebchen

(Themenstarter)
Avatar von duesentriebchen

Anmeldungsdatum:
10. Februar 2012

Beiträge: 713

Wohnort: Im Inntal

Hallo micky

Na dann lern ich doch was dazu 😀

Dann können wir ja mit der symlinkerei starten 🤓

duesentriebchen

(Themenstarter)
Avatar von duesentriebchen

Anmeldungsdatum:
10. Februar 2012

Beiträge: 713

Wohnort: Im Inntal

Micky ❓

mickydoutza

Avatar von mickydoutza

Anmeldungsdatum:
31. Dezember 2010

Beiträge: 2185

duesentriebchen schrieb:

Micky ❓

Ja?

duesentriebchen

(Themenstarter)
Avatar von duesentriebchen

Anmeldungsdatum:
10. Februar 2012

Beiträge: 713

Wohnort: Im Inntal

Da bin ich wieder 😀

Können wir nun die Binaries übertragen ❓

Antworten |