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 :
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