|
Par
Thedownloader
Mise à jour : 22/08/2008
286 visites depuis 7 jours,
classé 351/786
|

su - root |
sudo -s |
1 2 3 4 | #Attention, ce sources.list est fait pour la version "testing" de Debian, c'est-à-dire la future version stable. #Les paquets présents dans ces dépôts sont testés, mais pas totalement sûrs du point de vue de la stabilité. deb http://mir1.ovh.net/debian/ testing main non-free contrib deb http://security.debian.org/ testing/updates main contrib non-free |
aptitude update aptitude full-upgrade |
aptitude install apache2 |
nano /etc/apache2/sites-available/default |
/etc/init.d/apache2 restart |
.rm -r /var/www/apache2-default |
a2enmod userdir |
1 2 3 4 5 6 7 8 9 | <IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec </Directory> </IfModule> |
:Code : Autre1 2 3 4 5 6 7 8 9 | <IfModule mod_userdir.c> UserDir /home/*/public_html <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes IncludesNoExec IndexOptions FoldersFirst FancyIndexing IgnoreCase </Directory> </IfModule> |
/etc/init.d/apache2 reload |
mkdir /home/test/ mkdir /home/test/public_html |
).
PHP5 ne résistera pas très longtemps à un simpleCode : Consoleaptitude install php5 |
/etc/init.d/apache2 restart |
) qu'il est parfaitement possible pour un utilisateur d'écrire un script PHP qui va voir chez le voisin... ce qui pose un gros problème de sécurité !1 2 3 4 5 6 7 8 9 10 | <IfModule mod_userdir.c> UserDir /home/*/public_html <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes IncludesNoExec IndexOptions FoldersFirst FancyIndexing IgnoreCase php_admin_value open_basedir ".." # <-- voici la nouvelle ligne </Directory> </IfModule> |
1 | <?php echo shell_exec('ls /home'); ?> |
1 2 3 4 5 6 7 8 9 10 11 | <IfModule mod_userdir.c> UserDir /home/*/public_html <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes IncludesNoExec IndexOptions FoldersFirst FancyIndexing IgnoreCase php_admin_value safe_mode "1" php_admin_value open_basedir ".." </Directory> </IfModule> |

aptitude install mysql-server php5-mysql |
mysql_secure_installation |
aptitude install phpmyadmin |
aptitude install vsftpd libpam-mysql |
deluser --remove-home ftp |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | # Ceci configure VSFTPd en mode "standalone" listen=YES # On désactive les connexions anonymes et on active les non-anonymes (c'est le cas des utilisateurs virtuels) : anonymous_enable=NO local_enable=YES # Pour des raisons de sécurité, on interdit toute action d'écriture : write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO # "guest_enable" active les utilisateurs virtuels # "guest_username" fait correspondre tous les utilisateurs virtuels à l'utilisateur d'Apache 2 guest_enable=YES guest_username=www-data # On définit les droits par défaut des fichiers uploadés anon_umask=022 # On enferme les utilisateurs virtuels dans leur dossier chroot_local_user=YES # On définit le nombre maximum de sessions à 100 # On définit le nombre maximum de sessions par IP à 5 max_clients=100 max_per_ip=5 #################################### # Debian customization # # (ou adoptons la Debian attitude) # #################################### # Some of vsftpd's settings don't fit the Debian filesystem layout by # default. These settings are more Debian-friendly. # # 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=/var/run/vsftpd # # 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/certs/vsftpd.pem # Permet d'utiliser les configurations individuelles pour chaque utilisateur user_config_dir=/etc/vsftpd # Définir la plage de ports utilisée par le mode passif pasv_min_port=20000 pasv_max_port=20050 # Message d'accueil ftpd_banner=Bienvenue sur ce serveur FTP ! # Autoriser les utilisateurs virtuels à changer les permissions de leurs fichiers chmod_enable=YES virtual_use_local_privs=YES # Utiliser le temps local et non pas le temps universel (UTC) use_localtime=YES # Activation du log xferlog_enable=YES log_ftp_protocol=YES |

mkdir /etc/vsftpd |
1 2 3 4 | CREATE TABLE `ftp`.`users` ( `name` TEXT NOT NULL , `pass` TEXT NOT NULL ) ENGINE = MYISAM |
1 2 | auth required pam_mysql.so host=localhost user=ftp passwd=votre_pass db=ftp table=users usercolumn=name passwdcolumn=pass crypt=1 account required pam_mysql.so host=localhost user=ftp passwd=votre_pass db=ftp table=users usercolumn=name passwdcolumn=pass crypt=1 |
/etc/init.d/vsftpd restart |
1 2 3 4 5 6 7 8 | anon_world_readable_only=NO local_root=/home/utilisateur write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES hide_file=(none) force_dot_files=YES |
mkdir /home/[nom d'utilisateur] chown -R www-data.www-data /home/[nom d'utilisateur] chmod -R 700 /home/[nom d'utilisateur] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #!/bin/sh # Informations à compléter pass_mysql_ftp=mot_de_passe_de_l'utilisateur_mysql_"ftp" pass_mysql_root=mot_de_passe_de_l'utilisateur_mysql_"root" # On demande la saisie d'un nom d'utilisateur et du mot de passe (2 fois) echo -n "Nom d'utilisateur : " read nom echo "Mot de passe : " read -s pass echo "Mot de passe (le retour) : " read -s pass2 # On vérifie que les 2 mots de passe soient identiques if test $pass = $pass2 ; then # On vérifie qu'il n'existe pas déjà un autre utilisateur du même nom if test -d /home/$nom ; then echo "L'utilisateur existe deja" else # On crée les dossiers et on fixe les droits mkdir /home/$nom mkdir /home/$nom/public_html chown -R www-data.www-data /home/$nom chmod -R 700 /home/$nom # On crée le fichier de configuration pour vsFTPd echo "anon_world_readable_only=NO" > /etc/vsftpd/$nom echo "local_root=/home/$nom" >> /etc/vsftpd/$nom echo "write_enable=YES" >> /etc/vsftpd/$nom echo "anon_upload_enable=YES" >> /etc/vsftpd/$nom echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/$nom echo "anon_other_write_enable=YES" >> /etc/vsftpd/$nom echo "hide_file=(none)" >> /etc/vsftpd/$nom echo "force_dot_files=YES" >> /etc/vsftpd/$nom # On ajoute l'utilisateur dans la base de données mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));" # On crée une base de données où l'utilisateur est tout-puissant mysql -u root -p"$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON *.* TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS $nom;GRANT ALL PRIVILEGES ON $nom.* TO '$nom'@'localhost';" echo "Utilisateur ajoute avec succes" fi else echo "Les 2 mots de passe ne sont pas identiques" fi |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #!/bin/sh # Informations à compléter pass_mysql_ftp=mot_de_passe_de_l'utilisateur_mysql_"ftp" pass_mysql_root=mot_de_passe_de_l'utilisateur_mysql_"root" # On demande la saisie du nom de l'utilisateur à supprimer echo -n "Nom d'utilisateur : " read nom # On vérifie qu'il existe if test -d /home/$nom ; then # On le supprime de la liste des utilisateurs de vsFTPd mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "DELETE FROM users WHERE name='$nom';" # On supprime son compte et sa base de donnée MySQL mysql -u root -p"$pass_mysql_root" -e "DROP USER $nom@'localhost';DROP DATABASE IF EXISTS $nom;" # On supprime son fichier de configuration vsFTPd rm -f /etc/vsftpd/$nom # On supprime son dossier rm -fr /home/$nom echo "Utilisateur DETRUIT" else echo "L'utilisateur n'existe pas" fi |
sh /root/mon_du_script.sh |

mkdir /home/www chown -R www-data.www-data /home/www chmod -R 700 /home/www chown -R www-data.www-data /var/www chmod -R 700 /var/www |
1 | /var/www /home/www none bind 0 0 |

1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/sh # Pour chaque dossier contenu dans /home for dir in /home/* ; do # Si le dossier n'est pas /home/www if test $dir != "/home/www" ; then # On affiche sa taille du -hs $dir else du -hs /var/www fi done |
aptitude install php5-gd |
1 | AllowOverride FileInfo AuthConfig Limit |

.