Serveur Debian sur VPS

Debian

	ssh root@your-server.com

Debian First Things First

Nouvel utilisateur

sudo apt-get update &&
sudo apt-get upgrade &&
sudo apt-get install git curl wget tree rsync

Créer un nouvel utilisateur :

sudo adduser 'username'
sudo usermod -aG sudo 'username'
su - 'username'

vim zsh tmux

Pour recharger les config de chacun :

source ~/.zshrc
source ~/.tmux.conf Installation :

sudo apt-get install curl git vim zsh tmux &&
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Accepter le changement de shell

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

Ouvrir le fichier de config de vim :

vim ~/.vimrc

copier cela :

vimrc config

Puis activer les plugin : dans vim : :PluginInstall

Pour activer pour sudo :

	sudo ln -s /home/sam/.vimrc /root/.vimrc
	sudo ln -s /home/sam/.vim /root/.vim

Firewall

sudo apt-get install ufw &&
sudo ufw default deny incoming &&
sudo ufw default allow outgoing &&
sudo ufw allow ssh &&
sudo ufw allow 80 &&
sudo ufw allow 443 &&
sudo ufw enable

check status with :

sudo ufw status

Serveur Web

Apache 2

sudo apt-get install apache2   sudo a2enmod ssl setenvif headers deflate filter expires rewrite include

Commande apache2 :

sudo systemctl status apache2
sudo systemctl reload apache2
sudo systemctl stop apache2

Virtual Hosts

nom de site : mon-blog.fr

dossier : ~/blog

<VirtualHost *:80>
        ServerName mon-blog.fr
        ServerAlias www.mon-blog.fr
        ServerAdmin moi@mon-blog.fr
        DocumentRoot ~/blog
                <Directory ~/blog>
                        Options -Indexes +FollowSymLinks +MultiViews
                        AllowOverride none
                        Require all granted
                </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.mon-blog.fr [OR]
RewriteCond %{SERVER_NAME} =mon-blog.fr
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName mon-blog.fr
        ServerAlias www.mon-blog.fr
        ServerAdmin moi@mon-blog.fr
        DocumentRoot ~/blog
                <Directory ~/blog>
                        Options -Indexes +FollowSymLinks +MultiViews
                        AllowOverride none
                        Require all granted
                </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateFile /etc/letsencrypt/live/www.mon-blog.fr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.mon-blog.fr/privkey.pem
</VirtualHost>
</IfModule>                                                                                                                                                                                                                                   
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

HTTPS avec Let’s Encrypt

Installer Certbot :

sudo apt-get install certbot python-certbot-apache

Le script est très bien fait, ce qui implique qu’il est possible de simplement lancer, pour un serveur avec apache:

sudo certbot --apache

Une autre méthode également simple pour générer un certificat en utilisant le greffon « webroot » est:

sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com

Cette commande va générer un certificat valable pour les domaines (option -d) example.com et www.example.com, qui correspondent à un site web existant et fonctionnel placé dans le dossier racine (option -w) var/www/example.

L’emplacement du certificat et de la clé privée est indiqué à la fin de la procédure, typiquement :

    /etc/letsencrypt/live/example.com/privkey.pem pour la clé privée
    /etc/letsencrypt/live/example.com/fullchain.pem pour le certificat complet.

Optimisation des sites webroot

Trimage => optimisation d’images (compression)

Ajouter le fichier Web Performance.conf web_performance.conf à /etc/apache2/

sudo vim apache2.conf

Rajouter : Include web_performance.conf

Jekyll

Prérequis : Apache 2

sudo apt-get install gem &&
gem install bundler jekyll

J’utilise Atom et Markdown Writer

Tips

Networking

Vérifier quel process tourne sur le port 80 :

sudo netstat -tulpn | grep :80