Detaillierte Analyse der Kompilierung und Installation von vsFTP 3.0.3

Detaillierte Analyse der Kompilierung und Installation von vsFTP 3.0.3

Details zur Sicherheitsanfälligkeit

VSFTP ist eine Reihe von FTP-Serversoftwares, die auf Unix-ähnlichen Systemen verwendet und auf GPL-Basis veröffentlicht werden. Die Software unterstützt virtuelle Benutzer, zwei Authentifizierungsmethoden (PAP oder xinetd/tcp_wrappers), Bandbreitenbeschränkung usw.

In VSFTP besteht eine Sicherheitslücke, da das Programm die Option „deny_file“ nicht richtig verarbeitet. Ein Remote-Angreifer könnte diese Sicherheitsanfälligkeit ausnutzen, um Zugriffsbeschränkungen zu umgehen.

Die folgenden Produkte und Versionen sind betroffen: VSFTP 3.0.2 und frühere Versionen, OpenSUSE 13.1 und 13.2.

Betroffene Produkte

Vsftpd Vsftpd 3.0.2

  • Es gibt grundsätzlich drei Möglichkeiten, sich bei FTP anzumelden:
  • Anonymer Benutzermodus: In der Standardinstallation bietet das System nur anonymen Benutzerzugriff. Sie müssen nur den Benutzer anonymous/ftp eingeben und Ihre E-Mail als Passwort verwenden, um sich anzumelden.
  • Lokaler Benutzermodus: Der Benutzername in /etc/passwd wird als Authentifizierungsmethode verwendet.
  • Virtueller Benutzermodus: Unterstützt das Speichern von Benutzernamen und Passwörtern in Dateien oder Datenbanken und die Zuordnung angemeldeter Benutzer zu angegebenen Systemkonten (/sbin/nologin), um auf Ressourcen zuzugreifen. Diese virtuellen Benutzer sind FTP-Benutzer.
  • Experimentelle Umgebung: CentOS 7.5 192.168.2.3
  • Firewalld, iptables und SElinux sind alle deaktiviert
  • Das folgende Experiment verwendet einen virtuellen Benutzer basierend auf PAM. Sie müssen zuerst yum verwenden, um die PAM-Komponenten zu installieren:
  • Muss Epel-Quelle verwenden
  • yum -y installiere epel-release und yum -y installiere pam pam-devel db4-utils
  • In der Standardkonfiguration muss vsftpd den Benutzer „nobody“ verwenden.
  • Download von der offiziellen Website https://www.linuxfromscratch.org/blfs/view/svn/server/vsftpd.html
  • wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz
  • tar xf vsftpd-3.0.3.tar.gz
  • cd vsftpd-3.0.3/

  • Im Quellpaket von vsftpd gibt es keine Konfigurationsdatei. Kompilieren und installieren Sie es daher direkt
  • machen Sie sauber und machen Sie -j 4 und machen Sie installieren
  • Wenn beim Kompilieren ein Fehler auftritt
  • /usr/bin/ld: -lcap kann nicht gefunden werden
  • Suchen Sie die .so-Datei
  • suchen / -name "*libcap.so*"
  • /usr/lib64/libcap.so.2.22
  • /usr/lib64/libcap.so.2
  • ln -sv /usr/lib64/libcap.so.2 /usr/lib64/libcap.so

  • Standardkonfiguration:
  • Standardkonfiguration:
  • Hauptprogrammdatei: /usr/local/sbin/vsftpd
  • Hauptkonfigurationsdatei: /etc/vsfptd.conf
  • PAM-Authentifizierungsdatei: /etc/pam.d/vsftpd
  • Anonymes Benutzer-Home-Verzeichnis: /var/ftp
  • Download-Verzeichnis für anonyme Benutzer: /var/ftp/pub
  • Es gibt zwei Hauptsicherheitsprinzipien von vsftpd:
  • Nur virtuelle Benutzer dürfen sich anmelden und lokale Benutzer und anonyme Benutzer sind deaktiviert.
  • Das Ausführen mit Root-Rechten ist nicht zulässig.
  • Erstellen Sie ein Verzeichnis zum Speichern von Konfigurationsdateien
  • mkdir /etc/vsftpd
  • Kopieren Sie die neue Konfigurationsdatei in das Verzeichnis /etc/vsftpd

Erstellen von Benutzern und freigegebenen Verzeichnissen sowie Verzeichnisberechtigungen

  • Erstellen Sie eine Nur-Text-Datei für das virtuelle Benutzerkennwort und verwenden Sie die zuvor installierte Komponente db4-utils, um eine Kennwortauthentifizierungsdatei zu generieren:
  • vim /etc/vsftpd/access.txt

zhangsan #Benutzername
123456 #Passwort
lisi
123456 Nutzung

  • Die zuvor installierte Komponente db4-utils generiert die Kennwortauthentifizierungsdatei:
  • db_load -T -t hash -f /etc/vsftpd/access.txt /etc/vsftpd/access.db

  • Bearbeiten Sie die PAM-Authentifizierungsdatei für vsftpd:
  • vim /etc/pam.d/vsftpd

Authentifizierung erforderlich /lib64/security/pam_userdb.so db=/etc/vsftpd/access
Konto erforderlich /lib64/security/pam_userdb.so db=/etc/vsftpd/access

  • Bearbeiten Sie die Hauptkonfigurationsdatei /etc/vsftpd/vsftpd.conf
  • cp /etc/vsftpd/vsftpd.conf{,.bak}
  • vim /etc/vsftpd/vsftpd.conf
  • #Anonyme Benutzer nicht zulassen
anonymous_enable=NEIN
local_enable=JA
write_enable=JA

#Starten Sie die Sperrbenutzerliste nicht. Alle Benutzer werden gesperrt und dürfen nicht auf das übergeordnete Verzeichnis zugreifen. Sie dürfen nur auf ihr Home-Verzeichnis zugreifen. chroot_local_user=YES
chroot_list_enable=NEIN

#Protokoll starten
xferlog_enable=JA
xferlog_std_format=JA
xferlog_file=/etc/vsftpd/vsftpd.log

# Virtuellen Benutzer aktivieren guest_enable=YES
#Virtueller FTP-Benutzer, der dem Systembenutzer guest_username = vsftpd entspricht
#PAM-Authentifizierungsdatei /etc/pam.d/vsftpd
pam_service_name=vsftpd

virtual_use_local_privs=JA 

Schreiben Sie das vsftpd-Startskript: /etc/init.d/vsftpd

#!/bin/bash
#
# vsftpd Dieses Shell-Skript kümmert sich um das Starten und Stoppen
# eigenständiges vsftpd.
#
# chkconfig: -60 50
# Beschreibung: Vsftpd ist ein FTP-Daemon, also das Programm
# das eingehende FTP-Dienstanfragen beantwortet.
# Prozessname: vsftpd
# Konfiguration: /etc/vsftpd/vsftpd.conf
# Quellfunktionsbibliothek.
. /etc/rc.d/init.d/Funktionen
# Quellnetzwerkkonfiguration.
. /etc/sysconfig/netzwerk
# Überprüfen Sie, ob das Netzwerk aktiv ist.
[ ${NETWORKING} = "nein" ] && exit 0
[ -x /usr/local/sbin/vsftpd ] || beenden 0
RETVAL=0
prog="vsftpd"
Start() {
        # Daemons starten.
        wenn [ -d /etc/vsftpd ] ; dann
                für i in `ls /etc/vsftpd/*.conf`; machen
                        site=`Basisname $i .conf`
                        echo -n $"$prog für $site wird gestartet: "
                        /usr/local/sbin/vsftpd $i &
                        RETVAL=$?
                        [ $RETVAL -eq 0 ] && {
                           berühren Sie /var/lock/subsys/$prog
                           Erfolg $"$prog $site"
                        }
                        Echo
                Erledigt
        anders
                RETVAL=1
        fi
        Rückgabewert $RETVAL
}
stoppen() {
        # Daemons stoppen.
        echo -n $"$prog wird heruntergefahren: "
        killproc $prog
        RETVAL=$?
        Echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        Rückgabewert $RETVAL
}
# Sehen Sie, wie wir angerufen wurden.
Fall "$1" in
  Start)
        Start
        ;;
  stoppen)
        stoppen
        ;;
  neu starten|neu laden)
        stoppen
        Start
        RETVAL=$?
        ;;
  Kondrestart)
        wenn [ -f /var/lock/subsys/$prog ]; dann
            stoppen
            Start
            RETVAL=$?
        fi
        ;;
  Status)
        Status $prog
        RETVAL=$?
        ;;
  *)
        echo $"Verwendung: $0 {start|stop|restart|condrestart|status}"
        Ausfahrt 1
esac
$RETVAL beenden 

Ausführungsberechtigungen hinzufügen

  • Ändern Sie die Datei /etc/xinetd.d/vsftpd, um vsftpd ohne Verwendung des xinetd-Daemons zu starten.
  • sed -in 's/disable.*=.*/disable = yes/g' /etc/xinetd.d/vsftpd
  • sed -in 's/disable.*=.*/disable = yes/g' /etc/xinetd.d/vsftpdn

  • Starten Sie vsftpd
  • servicevsftpd starten

Anmeldetest

  • Starten Sie die Maschine und starten Sie den Test erneut
  • chkconfig vsftpd ein

Oben finden Sie detaillierte Informationen zum Kompilieren und Installieren von vsFTP 3.0.3. Weitere Informationen zum Kompilieren und Installieren von vsFTP 3.0.3 finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Kompilieren und installieren Sie den vsftpd-Server unter Linux (lokale Benutzerauthentifizierungsmethode).
  • Mit vsftp einen FTP-Server unter Linux aufbauen (mit Parameterbeschreibung)
  • Detaillierte Schritte zur Installation und Konfiguration von vsftpd unter Linux (empfohlen)
  • vsftpd – Konfigurationsmethode für anonymen Upload und Download durch Benutzer
  • vsftp-Upload 553 – Dateifehlerlösung konnte nicht erstellt werden

<<:  So verwenden Sie React-Color zum Implementieren des Front-End-Farbwählers

>>:  Einige wichtige Punkte des visuellen Website-Designs

Artikel empfehlen

Lösen Sie das Problem verschwindender Docker-Images

1. Spiegelbilder verschwinden in 50 und 93 [root@...

Vue erzielt den Top-Effekt durch V-Show

html <div Klasse="nach oben" v-show=...

Geplante vollständige MySQL-Datenbanksicherung

Inhaltsverzeichnis 1. MySQL-Datensicherung 1.1. m...

Einführung in die Generierung von Kubernetes-Zertifikaten mit OpenSSL

Kubernetes unterstützt drei Arten der Authentifiz...

Zusammenfassung der Methoden zur Änderung des Git-Commit-Protokolls

Fall 1: Letzte Übermittlung und kein Push Führen ...

Sie müssen wahrscheinlich keine Switch-Anweisungen in JavaScript verwenden

Inhaltsverzeichnis Kein Schalter, keine komplexen...

CSS-Schreibstandards und -Reihenfolge teilen [für alle empfohlen]

CSS-Schreibreihenfolge 1. Positionsattribute (Pos...

Konzepte und Methoden für Server-Stresstests (TPS/Parallelität)

Inhaltsverzeichnis 1 Indikatoren im Stresstest 1,...

JS erzielt Fünf-Sterne-Lobeffekt

Verwenden Sie JS, um objektorientierte Methoden z...

So verwenden Sie den Linux-Befehl tr

01. Befehlsübersicht Der Befehl tr kann Zeichen a...