Outils pour utilisateurs

Outils du site


installation_et_configuration_d_un_serveur_virtuel_avec_alpinelinux_et_les_vservers-utils

Installation et configuration d'un serveur virtuel avec AlpineLinux et les vservers-utils

Lexique

  • hôte : machine physique sur laquelle sont installé les invités
  • invités : machines virtuelles installées sur l'hôte
  • $LAN : réseau local ( box + machines connectées au réseau )
  • $VLAN : réseau local virtuel ( invités présents sur l'hôte)
  • $WAN : réseau étendu (Internet )
  • $NBRE_IVTS : nombre d'invités
  • $IFACE : interface de la machine hôte
  • $VIFACE : interface de la machine virtuelle
  • $EXTIP : Ip de la machine sur $LAN ( souvent du type 192.168.x.x )
  • $EXTPORT : port de l'hôte
  • $VHOST : Ip de la machine virtuelle (invité) sur $VLAN
  • $INTPORT : port d'un invité
  • $PUBIP : Ip de la machine sur $WAN ( IP publique )
  • $PASVPORTSMIN : Port min pour connection ftp > 1024 * $PASVPORTSMAX : Port max pour connection ftp > $PASVPORTSMIN * $WWW : racine du site ( ex: /home/www )
    * $nom_utilisateur : nom de l'utilisateur système définis dans I.E ou II.B * $LOGIN : Login du module d'authentifcation de Lighttpd définis dans II.C.2.a * $MDP : Mdp du module d'authentifcation de Lighttpd définis dans II.C.2.a <note>Dans beaucoup des commandes qui suivent, surveillez attentivement les variables désignées par un $VARIABLE. Leur présence signifie en général qu'il faut la remplacer en l'adaptant à votre configuration</note> ======I.Manipulations sur hôte====== ====I.A. Installation d' Alpine linux vserver :==== * Télécharger l'.iso d'Alpine Linux Vserver : http://alpinelinux.org/downloads * Création d'une clé usb bootable avec unetbootin / lili * Boot sur iso alpine-vserver * Login : root ===Configuration et installation sur le disque dur=== <code bash> $ setup-alpine # suivre les indications et répondre aux questions : # fr, fr-latin9, nom du système, eth0, mdp, disque, mode, repo $ reboot # redémarrage de la machine ! Enlever la clé USB ! </code> ====I.A. 1. (optionnel) Créer une partition par serveur virtuel==== ===Gparted=== * Création clé USB Gparted live : unetbootin + .iso (http://gparted.sourceforge.net/livecd.php) * Démarrer sur clé usb : * Gparted : * redimensionnement de la partition / * création d'un partition étendue puis partitions virtuelles * reboot sur disque dur ===Ajout des partitions au fichier /etc/fstab :=== ==Création points de montage (autant de pdm que de partitions créées) :== <code bash> $ mkdir -p /guests/point1 /guests/point2 … </code> ==Trouver partitions systèmes== <code bash> $ df -h # chercher nom (sdX) de / (default : sda3) </code> == Faire un backup de /etc/fstab== <code bash> $ cp /etc/fstab etc/fstab.bak </code> ==Ajouter UUIDs a /etc/fstab == <code bash> $ blkid > tee -a /etc/fstab </code> ==Édition du fichier /etc/fstab== <code bash> $ nano /etc/fstab </code> Enlever les uuids avec nom < sda 3 et transformer : <file> /dev/sdaX UUID=“…” </file> en <file> #/dev/sdaX UUID=… </file> ==Ajout des options de montage en respectant le schéma suivant== <file> UUID=…/guests/point1 ext4 rw,relatime,barrier=1,data=ordered 0 0 </file> ==Vérifier montage automatique== <code bash> $ mount /guests/* $ df -h # doit lister les partitions créées avec Gparted et les points de montage /guests/pointX </code> ====I.A. 2. Installation des utilitaires vserver et autres==== <code bash> $ apk add util-vserver nano sudo </code> ====I.A. 3. Réglage de la visibilité des processus virtuels et ajout au démarrage==== <code bash> $ /etc/init.d/vprocunhide start && rc-update add vprocunhide </code> =====I.B. Construction de machines virtuelles Alpine Linux ===== ====I.B.1. Création du modèle==== <code bash> $ apk –initdb -U -X http://dl-2.alpinelinux.org/alpine/v2.2/main –root /tmp/tmpdir add alpine-base (*) $ cd /tmp/tmpdir && tar -jcf ../base.tar.bz2 * && cd .. && rm -rf /tmp/tmpdir </code> ====I.B.2. Création d'un invité ==== <code bash> vserver guest1 build –context XXX \ –interface $VIFACE:<ipaddr>/<mask> \ –hostname guest1 –rootdir /guests/point1 -m template – \ -t /tmp/base.tar.bz2 \ -d alpine </code> * <ipaddr> : ip sur vlan/wan (ex : 192.168.1.x) > $VHOST ou $PUBIP selon les cas. * <mask> : 255.255.255.0 ou /24 > à adapter selon les cas. * $VIFACE : voir I.C.1 > dummyX si emploi de cette méthode. * L'option '–initstyle' peut-être utilisée pour définir le type de démarrage (plain, openrc) ==Commandes vserver :== <code bash> $ vserver guest1 start | stop | enter | restart | delete </code> ====I.B.3 Régler le démarrage automatique de l'invité==== L'invité démarre automatiquement si un fichier “mark” contenant “default” est présent dans /etc/vservers/guest1/apps/init/ : <code bash> $ mkdir -p /etc/vservers/guest1/apps/init/ $ echo “default” > /etc/vservers/guest1/apps/init/mark $ rc-update add vservers.default </code> <note tip>Pour créer une machine virtuelle avec une distribution différente ( Debian, Arch, etc.), se référer à l'article suivant : Vserver-utils: Créer une machine virtuelle à base de Debian et autres</note> =====I.C. Configuration du réseau===== ====I.C.1. Méthode Dummies==== ===I.C.1.a Chargement du module=== <code bash> $ echo “dummy numdummies=$NBRE
    IVTS” | tee -a /etc/modules </code> ===I.C.1.b Configuration des périphériques virtuels=== Éditer le fichier /etc/network/interfaces et ajouter : <file> auto dummyN # dummyN correspond à $VIFACE </file> Où N correspond au numéro de l'interface. ====I.C.2. Méthode Iptables (à éviter)==== <code bash> $ apk add iptables # installation $ rc-update add iptables # ajout au démarrage </code> ===I.C.2.a Création des règles=== == Requêtes sortantes == * Paquets sortants marqués avec ip du serveur ( $EXTIP ): <code bash> $ iptables -t nat -A POSTROUTING -s 192.168.2.0/24  ! -d 192.168.2.0/24 -j SNAT –to-source $EXTIP # plage ip en fonction de $VHOST </code> Explications : Cette règle permet d'attribuer aux paquets provenant d'une IP une autre IP source ( L'IP de la machine physique dans notre cas ) afin de régler les problèmes de routage. Le routeur qui reçoit les paquets émis par la machine virtuelle ne voit que l'IP de la machine physique. -s 192.168.2.0/24 ! -d 192.168.2.0/24 : toute requète provenant de la plage 192.168.2.0 et dont la destination n'est pas sur la plage 192.168.2.0 IPs de -s et -d en fonction de la plage de $VHOST == Requêtes entrantes== * Pour chaque service (i.e : pour chaque port ) dans un système invité ( $VHOST:$INTPORT ), on mappe un port de la machine $EXTPORT afin q'une requète sur $EXTIP:$EXTPORT envoie le traffic sur $VHOST:$INTPORT. <code bash> $ iptables -t nat -A PREROUTING ! -s 192.168.2.0/24 -m tcp -p tcp –dport $EXTPORT -j DNAT –to-destination $VHOST:$INTPORT # plage ip en fonction de $VHOST </code> Explications : Cette règle permet de diriger les paquets provenant d'une ip externe ( ! -s 192.168.2.0/24 ) vers une ip interne définie par –to-destination x.x.x.x:port. ! -s 192.168.2.0/24 : toute requète ne provenant pas de la plage 192.168.2.0 == Enregistrement des modifications et vérification == <code> $ /etc/init.d/iptables save # enregistre regles dans /var/lib/iptables/rules-save $ iptables-save # affiche regles actives </code> =====I.D. Firewall Shorewall===== ====I.D.1 Installation==== <code bash> $ apk add shorewall </code> ====I.D.2 Configuration==== * Dans /etc/shorewall/shorewall.conf : <file> startup = 1 </file> * Dans /etc/shorewall/zones : <file> fw firewall net ipv4 </file> * Dans /etc/shorewall/interfaces : <file> net eth0 detect dhcp </file> * Dans /etc/shorewall/policy : <file> net all DROP # “net” et “fw” définis dans zone fw all ACCEPT all all DROP #(REJECT) </file> * Dans /etc/shorewall/params : <file> VSERVER1=$VHOST # du type 192.168.x.x VSERVER2=$VHOST # du type 192.168.x.y … </file> * Dans /etc/shorewall/rules : <file> # NB : port 80 > http, port 21 > ftp, port 443 > ssl #requetes exterieur > interieur #ACTION SOURCE DEST PROTO DEST ACCEPT net fw udp 53 # port 53 > dhcp ACCEPT net fw:$VSERVER_1 tcp 80,21,443
    #requetes interieur > exterieur ACCEPT fw:$VSERVER1 net tcp 80,21,443 #“$VSERVER1” définis dans “params” … </file> * Vérifier les fichiers de configuration de Shorewall <code bash> $ shorewall check </code> ====I.D.3 Démarrage et ajout démarrage auto==== <code bash> $ /etc/init.d/shorewall start && rc-update add shorewall </code> =====I.E. Création utilisateur et désactivation du compte root===== <note important>Une fois sudo mis en place pour l'utilisateur créé, la plupart des commandes nécessite l'ajout de “sudo” en début de ligne, puis la saisie du mot de passe utilisateur. L'oubli de sudo peut faire apparaître un message d'erreur.</note> ====I.E.1. Création utilisateur et mot de passe==== <code bash> $ adduser -h /home/www -G lighttpd $nom_utilisateur && chown $nom_utilisateur:lighttpd /home/www $ passwd $nom_utilisateur </code> ====I.E.2. Ajout au fichier /etc/sudoers==== <code bash> $ apk add sudo # installation sudo $ visudo # 'i' , ':x' </code> * Ajout de la ligne : <file> $nom_utilisateur ALL=(ALL) ALL </file> ====II.E.3. Désactivation du compte root==== <code bash> $ passwd -l root </code> ======II. Manipulations invités====== =====II.A. Réglages de base===== <code bash> # ajout dépot, maj et install nano $ echo “http://distrib-coffee.ipsl.jussieu.fr/pub/linux/alpine/alpine/v2.4/main” >/etc/apk/repositories && apk update && apk upgrade && apk add nano $ setup-timezone # réglage du fuseau horaire # OPTIONNEL ! SÉCURITÉ $ setup-acf # script installation acf : interface web de gestion de l'invité ( port 443 à activer via shorewall sur l' hôte) </code> =====II.B. Création utilisateur et désactivation du compte root===== <note important>Une fois sudo mis en place pour l'utilisateur créé, la plupart des commandes nécessite l'ajout de “sudo” en début de ligne, puis la saisie du mot de passe utilisateur. L'oubli de sudo peut faire apparaître un message d'erreur.</note> ====II.B.1. Création utlisateur et mot de passe==== <code bash> $ adduser -h /home/www -G lighttpd nom_utilisateur && chown nom_utilisateur:lighttpd /home/www $ passwd nom_utilisateur </code> ====II.B.2. Ajout au fichier /etc/sudoers==== <code bash> $ apk add sudo # installation sudo $ visudo # 'i' , ':x' </code> * Ajout de la ligne : <file> $nom_utilisateur ALL=(ALL) ALL </file> ====II.B.3. Désactivation du compte root==== <code bash> $ passwd -l root </code> =====II.C. Lighttpd web server===== ====II.C.1. Installation de lighttpd et php==== <code bash> $ apk add lighttpd php-common php-iconv php-json php-gd php-curl php-xml php-pgsql php-imap php-pdo php-pdopgsql php-soap php-xmlrpc php-posix php-mcrypt php-gettext php-ldap php-ctype php-mysqli php-pdomysql php-zip php-bz2 php-zlib </code> ====II.C.2. Configuration==== * Faire les changements suivants dans /etc/lighttpd/lighttpd.conf : <file> # Définition de la base du site var.basedir= $WWW server.document-root = var.basedir # Décommenter include “modfastcgi.conf” “modcompress” “modrewrite” “modexpire” # Régler l'expiration par défaut à une semaine expire.url = ( “” ⇒ “access plus 7 days”) # Emplacement des fichiers d'erreurs server.errorfile-prefix = var.basedir + “/err” # fichiers html erreurs dans dossier /err a la racine du site # Désactivation du listage des répertoires dir-listing.activate = “disable” # Régler les limites de sécurité server.max-keep-alive-requests = 6 server.max-keep-alive-idle = 15 server.max-read-idle = 15 server.max-write-idle = 15 #server.max-request-size = 16 # optionnel : à commenter si on utilise un CMS server.range-requests = “disable” server.follow-symlink = “disable” </file> ====II.C.2.a Configuration de l'authentification==== * Dans /etc/lighttpd/lighttpd.conf : <file> # Décommenter “mod_auth” auth.backend = “plain” # Définir le fichier contenant les login/mdp auth.backend.plain.userfile = “/etc/lighttpd/lighttpd.user” </file> * Création du fichier de login/mdp : <code bash> $ echo “$LOGIN:$MDP” > /etc/lighttpd/lighttpd.user && chown lighttpd:lighttpd /etc/lighttpd/lighttpd.user && chmod 700 /etc/lighttpd/lighttpd.user </code> ===Restriction d'accès à un repertoire selon ip client===
    Dans /etc/lighttpd/lighttpd.conf : <file> $HTTP[“remoteip”] != “$IPAUTORISEE { $HTTP[“url”] =~ “^/$REPERTOIREPROTEGE/” { url.access-deny = ( ”“ ) } } </file> ====II.C.2.b Activation compression==== * Dans /etc/lighttpd/lighttpd.conf : <file> compress.cache-dir = ”/tmp/cache/compress“ compress.filetype = (“text/plain”, “text/html”, “text/css”, “text/xml”, “text/javascript”, “image/png” ) </file> * Création du dossier de cache : <code bash> $ mkdir -p /tmp/cache/compress/” && chown lighttpd:lighttpd /tmp/cache/compress </code> * Dans /etc/php/php.ini : <file> zlib.outputcompression = On zlib.outputhandler = On </file> ====II.C.2.c Filtrage des mauvais user-agents==== <note tip>Il est possible de limiter l'accès à certaines ressources en fonction (entre autres ) de l'user-agent envoyé par un client. La plupart des script-kiddies et bots utilisent des user-agent exotiques qu'il est facile de repérer. Il ne reste alors qu'à modifier les régles de filtrage pour bloquer des requêtes un peu insistante… Pour plus d'informations sur les différents facteurs de filtrage, voir la page de la doc Lighttpd correspondante. </note> Dans le fichier '/etc/lighttpd/lighttpd.conf', ajouter les lignes suivantes en fin de fichier : <file> # user-agent vide ou de plusieurs espaces $HTTP[“useragent”] =~ “^ *$”{ url.access-deny = ( “” ) } # user-agent d'un seul charactère $HTTP[“useragent”] =~ “^.{1}$” { url.access-deny = ( “” ) } # user-agent contenant toutes les variantes de casse de zmeu ( http://alturl.com/qpb5f ) $HTTP[“useragent”] =~ “[Zz][Mm][Ee][Uu]” { url.access-deny = ( “” ) } # user-agent contenant le mot 'scanner' $HTTP[“useragent”] =~ “[Ss]canner” { url.access-deny = ( “” ) } # user-agent contenant le mot 'bot' $HTTP[“useragent”] =~ “[Bb]ot” { url.access-deny = ( “” ) } # user-agent contenant le mot 'libwww-perl' ( http://alturl.com/ff7j7 ) $HTTP[“useragent”] =~ “libwww-perl” { url.access-deny = ( “” ) } # liste de mauvais user-agent ( http://alturl.com/7ftbk ) $HTTP[“useragent”] =~ “ADSARobot|ah-ha|almaden|aktuelles|Anarchie|amznassoc|ASPSeek|ASSORT|ATHENS|Atomz|attach|attache|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big.brother|BlackWidow|bmclient|Boston\ Project|BravoBrian\ SpiderEngine\ MarcoPolo|Bot\ mailto:craftbot@yahoo.com|Buddy|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|Collector|Copier|Crescent|Crescent\ Internet\ ToolPak|Custo|cyberalert|DA$|Deweb|diagem|Digger|Digimarc|DIIbot|DISCo|DISCo\ Pump|DISCoFinder|Download\ Demon|Download\ Wonder|Downloader|Drip|DSurf15a|DTS.Agent|EasyDL|eCatch|ecollector|efp@gmx.net|Email\ Extractor|EirGrabber|email|EmailCollector|EmailSiphon|EmailWolf|Express\ WebPictures|ExtractorPro|EyeNetIE|FavOrg|fastlwspider|Favorites\ Sweeper|Fetch|FEZhead|FileHound|FlashGet\ WebWasher|FlickBot|fluffy|FrontPage|GalaxyBot|Generic|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go!Zilla|Go!Zilla|Go-Ahead-Got-It|GornKer|gotit|Grabber|GrabNet|Grafula|Green\ Research|grub-client|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|http\ generic|HTTrack|httpdown|httrack|iaarchiver|IBMPlanetwide|Image\ Stripper|Image\ Sucker|imagefetch|IncyWincy|IndyLibrary|Indy\ Library|informant|Ingelin|InterGET|Internet\ Ninja|InternetLinkagent|Internet\ Ninja|InternetSeer.com|Iria|Irvine|JBHagent|JetCar|JOC|JOC\ Web\ Spider|JustView|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|libwww|likse|Link|LinkSleuth|LINKS\ ARoMATIZED|LinkWalker|LWP|lwp-trivial|Mag-Net|Magnet|Mac\ Finder|Mag-Net|Mass\ Downloader|MCspider|Memo|Microsoft.URL|MIDown\ tool|Mirror|Missigua\ Locator|Mister\ PiX|MMMtoCrawl\/UrlDispatcherLLL|^Mozilla$|Mozilla.Indy|Mozilla.NEWT|MozillaMSIECrawler|MS\ FrontPage|MSFrontPage|MSIECrawler|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|NetAnts|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|Net\ Vampire|NetZIP|NetZip\ Downloader|NetZippy|NEWT|NICErsPRO|Ninja|NPBot|Octopus|Offline\ Explorer|Offline\ Navigator|OpaL|Openfind|OpenTextSiteCrawler|OrangeBot|PageGrabber|Papa\ Foto|PackRat|pavuk|pcBrowser|PersonaPilot|Ping|PingALink|Pockey|Proxy|psbot|PSurf|puf|Pump|PushSite|QRVA|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|Robozilla|Rover|RPT-HTTPClient|Rsync|Scooter|SearchExpress|searchhippo|searchterms.it|Second\ Street\ Research|Seeker|Shai|Siphon|sitecheck|sitecheck.internetseer.com|SiteSnagger|SlySearch|SmartDownload|snagger|Snake|SpaceBison|Spegla|SpiderBot|sproose|SqWorm|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Templeton|TrueRobot|TV33Mercator|UIowaCrawler|UtilMind|URLSpiderPro|URLSpider_Pro|Vacuum|vagabondo|vayala|visibilitygap|VoidEYE|vspider|Web\ Downloader|w3mir|Web\ Data\ Extractor|Web\ Image\ Collector|Web\ Sucker|Wweb|WebAuto|WebBandit|web.by.mail|Webclipping|webcollage|webcollector|WebCopier|webcraft@bea|webdevil|webdownloader|Webdup|WebEMailExtrac|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WEBMASTERS|WebMiner|WebMirror|webmole|WebReaper|WebSauger|Website|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Wget|Whacker|whizbang|WhosTalking|Widow|WISEbot|WWWOFFLE|x-Tractor|^Xaldon\ WebSpider|WUMPUS|Xenu|XGET|Zeus.Webster|Zeus” { url.access-deny = ( “” ) } </file> ====II.C.2.d SSL==== ===Créer des Certificats SSL auto-signés=== * Créer le répertoire où placer le certificat : <code bash> $ mkdir /etc/lighttpd/ssl/domain.com -p </code> * Se rendre dans le répertoire : <code bash> $ cd /etc/lighttpd/ssl/domain.com </code> * Génération du certificat : <code bash> $ openssl req -new -newkey rsa:2048 -x509 -keyout server.pem -out server.pem -days 365 -nodes </code> * Changement des permissions : <code bash> $ chown lighttpd:lighttpd /etc/lighttpd/ssl -R $ chmod 0600 /etc/lighttpd/ssl/domain.com </code> Il vous sera demandé plusieurs informations sur le site. ===Configurer Lighttpd=== * Ajout des directives suivantes dans /etc/lighttpd/lighttpd.conf : <file> $SERVER[“socket”] == “$PUBIP:443” { server.document-root = “/home/lighttpd/domain.com” ssl.engine = “enable” ssl.pemfile = “/etc/lighttpd/ssl/domain.com/server.pem” ## Cette partie met en place un mot de passe pour l'accès a ## la racine du site securise ( https ) et nécessite l'activation ## et la configuration du “modauth” CF. II.C.2.a #auth.require = ( “/” ⇒ # (“method” ⇒ “basic”, # “realm” ⇒ “message”, # “require” ⇒ “user:username” #) #) } </file> <note tip>Faites attention à bien remplacer $PUBIP avec votre adresse IP publique.</note> ===Relancer Lighttpd=== * Tester le fichier de configuration pour des erreurs de syntaxe : <code bash> $ lighttpd -t -f /etc/lighttpd/lighttpd.conf </code> * Redémarrer Lighttpd : <code bash> $ /etc/init.d/lighttpd restart </code> * Vérifier que le port 443 est ouvert : <code bash> $ netstat -tulpn | grep :443 </code> ===Optionnel : Ajout des règles iptable=== <note tip>Cette étape n'est pas utile si vous utilisez la méthode Dummies ( CF. I.C.1 ) </note> Dans le système hôte, entrez les commandes suivantes : <code bash> $ iptables -A INPUT -p tcp -s 0/0 –sport 1024:65535 -d $VHOST –dport 443 -m state –state NEW,ESTABLISHED -j ACCEPT $ iptables -A OUTPUT -p tcp -s $VHOST –sport 443 -d 0/0 –dport 1024:65535 -m state –state ESTABLISHED -j ACCEPT </code> Source ====II.C.3. Démarrage auto==== <code bash> $ /etc/init.d/lighttpd start && rc-update add lighttpd default </code> =====II.D. VSFTP ftp server===== ====II.D.1. Installation==== <code bash> $ apk add vsftpd </code> ====II.D.2. Configuration==== * Dans /etc/vsftpd.conf : <file> #On accepte les utilisateurs locaux localenable=YES #On permet l'ecriture writeenable=YES #on désactive l'acces anonyme anonymousenable=NO #mode passif pasvenable=YES #définition des ports pour le mode passif pasvminport=$PASVPORTSMIN pasvmaxport=$PASVPORTSMAX #adresse du serveur pour le mode passif pasvaddress=$EXTIP #chroot des utilisateurs chrootlocaluser=YES #utilisation des ciphers > 128 bits seulement sslciphers=HIGH </file> ===II.D.2.a Activation SSL pour FTPS=== * Génération du certificat SSL : <code bash> $ openssl req -new -newkey rsa:2048 -x509 -nodes -days 365 -out /etc/ssl/vsftpd.pem -keyout /etc/ssl/vsftpd.pem $ chmod 0600 /etc/ssl/vsftpd.pem </code> * Ajouts au fichier /etc/vsftpd.conf : <file> # Si utilisation du SSL sslenable=YES rsacertfile=/etc/ssl/vsftpd.pem forcelocalloginsssl=YES forcelocaldata_ssl=YES </file> <note>Il vous faudra alors configurer votre client ftp pour utiliser le mode de connexion FTPES, en mode actif.</note> ====II.D.3. Démarrage auto==== <code bash> $ /etc/init.d/vsftpd start && rc-update add vsftpd default </code> =====II.E. Mysql===== ====II.E.1. Installation==== <code bash> $ apk add mysql mysql-client </code> ====II.E.2 Configuration==== <code bash> $ /usr/bin/mysqlinstalldb –user=mysql $ /etc/init.d/mysql start && rc-update add mysql default $ /usr/bin/mysqladmin -u root password 'password' </code> =====II.F. Web apps===== * Création du répertoire : <code bash> $ mkdir $WWW/$WEBAPP </code> * Téléchargement des fichiers : <code bash> $ cd $WWW/$WEBAPP $ wget $WEBAPP_URL.tar.gz $ tar zxvf $WEBAPP </code> * Changement de permissions : <code bash> $ chown -R $USER:ligttpd $WEBAPP $ chmod -R 770 $WEBAPP </code> * Nettoyage : <code bash> $ rm *.tar.gz </code> * Création de la bdd MySql : <code bash> $ mysql -u root -p </code> <code mysql> > CREATE DATABASE wordpress; > GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'wordpress password'; > FLUSH PRIVILEGES; > EXIT </code>
2013/11/05