serveur ftp : pure-ftpd et ports passifs

Rédigé par citizenz - - Aucun commentaire

Pour les utilisateurs qui sont derrière un pare-feu il pourrait être nécessaire que vous activiez FTP passif dans votre serveur FTP et le client.
Si permettre le mode FTP passif dans votre client FTP est simple, le faire dans votre FTP des fichiers de configuration du serveur peut être un peu délicat si vous ne savez pas comment procéder.

Petit exemple simple sous Debian ...

Créez un fichier /etc/pure-ftpd/conf/PassivePortRange, et dedans, inscrivez la plage de ports destinés à la connexion de pure-ftpd, séparés par un espace :

echo "29799 29899" > /etc/pure-ftpd/conf/PassivePortRange

(Exemple pour maximum 50 clients connectés ce qui est déjà énorme !)

pure-ftpd utilise des fichiers dans le répertoire de configuration (/conf) comme paramètres.
Attention aux ports que vous allez attribuer à pure-ftpd : ports "hauts" et non déjà pris par votre système :D

Le cas échéant, profitez-en dès maintenant pour ouvrir ces ports dans votre firewall. Exemple pour UFW :

ufw allow 29799:29899/tcp

Vous devez avoir 2 ports pour chaque client (max 100 clients, vous devez avoir 200 ports).

Vous pouvez également jouer sur le paramètre d'autorisation des clients. Pour 50 clients :

echo "50" > /etc/pure-ftpd/conf/MaxClientsNumber

Remplacez 50 par le nombre de clients que vous voulez autoriser...

Redémarrez pure-ftpd.

UFW : un par feu facile à utiliser pour son serveur

Rédigé par citizenz - - Aucun commentaire

UFW ou Uncomplicated Firewall est un "front-end" à iptables. Son principal objectif est de rendre la gestion de votre pare-feu plus facile et de fournir une interface simple à utiliser. UFW est installé par défaut sur un grand nombre de distributions Gnu/Linux. En tant que tel, il est une excellente solution pour commencer à "sécuriser" votre serveur...

Lire la suite de UFW : un par feu facile à utiliser pour son serveur

Bannir une ip facilement de son serveur

Rédigé par citizenz - - Aucun commentaire

Pourquoi bannir une IP ? Il y a plusieurs raisons valables comme par exemple, cette adresse qui revient 50 fois dans vos logs fail2ban.
Cette adresse chinoise ou brésilienne qui vous taquine avec ces dizaines de tentatives de bruteforce sur votre ssh et qui teste tous les noms : root, admin, kevin, etc.
Pour dire "Au revoir" à ces hackers du dimanche, rien de tel qu'un petit script bien placé qui va nous permettre, grâce à Iptable, d'avoir enfin la paix...

Lire la suite de Bannir une ip facilement de son serveur

Un catchall pour postfix en 2 minutes

Rédigé par citizenz - - Aucun commentaire

Un "catchall" vous permet de rediriger tous les mails arrivant sur votre domaine vers une seule adresse e-mail.

Exemple : vous avez une adresse et vous voulez que tous les mails (webmaster, contact, infos, abuse, hostmaster, etc.) arrive sur votre adresse. Rien de plus simple avec Postfix et un seul petit fichier + une ligne dans le main.cf de Postfix.

Rendez-vous dans /etc/postfix. Créez un nouveau fichier nommé virtual :

sudo vim virtual

Voici un exemple de ce que vous pouvez mettre dedans :

example.com  this-text-is-ignored
postmaster@example.com postmaster
address1@example.com destuser1
address2@example.com destuser2
@example.com  destuser1

Le mien ressemble à ça :

@mondomaine.com moimeme

C'est tout. Avec ça, tous les mails arrivant sur le nom de domaine mondomaine.com arriveront dans ma boite mail .

Maintenant, il faut configurer Postfix :

sudo vim /etc/postfix/main.cf

Et mettez-y cette ligne :

virtual_alias_maps = hash:/etc/postfix/virtual

Puis faites :

postmap /etc/postfix/virtual

Enfin, rechargez la configuration de Postfix :

postfix reload

Certificat SSL signé gratuit avec Let's Encrypt et Nginx

Rédigé par citizenz - - Aucun commentaire

Voici un moyen simple et gratuit pour passer son site en HTTPS. Il s'agit d'installer et générer un certificat via Let's Encrypt pour Nginx.
Attention : Les certificats générés ne sont valables que 90 jours. Il faudra ensuite les renouveler en réutilisant la méthode décrite dans un autre article.
Sous Debian et avec le serveur Nginx, tout se fait en 2 coups de cuillère à pot.

On commence par installer la version stable de Nginx depuis les dépots officiels :

wget -O - https://nginx.org/keys/nginx_signing.key | apt-key add -
echo "deb http://nginx.org/packages/debian/ $(lsb_release -sc) nginx" > /etc/apt/sources.list.d/nginx.list
apt update
apt install nginx

On ajoute ensuite les backports Debian puis on installe letsencrypt :

echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
apt update && apt full-upgrade -y
apt install -t jessie-backports letsencrypt
service nginx stop

Maintenant, il s'agit de demander un certificat pour notre site (notre nom de domaine). Rien de compliqué :

letsencrypt certonly -d www.domaine.tld -d domaine.tld --agree-tos -m contact@domaine.tld --rsa-key-size 4096 --standalone
service nginx start

Maintenant que vos certificats ont été générés et placés dans /etc/letsencrypt/live/monsite.com, on va configurer le fichier du vhost Nginx (fichier .conf dans /etc/nginx/conf.d/).

Voici un exemple complet :

server {
    listen 80;
    server_name monsite.com www.monsite.com;
    return 301 https://www.monsite.com$request_uri;
    access_log /dev/null;
    error_log /dev/null;
}

server {
    listen 443 ssl http2;
    server_name monsite.comwww.monsite.com;

    if ($host = monsite.com) {
        return 301 https://www.monsite.com$request_uri;
    }

    root /var/www/monsite.com/web;

    index index.html index.htm index.php;

    # HTTPS : mise en place de la config et des certificats
    ssl_certificate /etc/letsencrypt/live/www.monsite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.monsite.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/www.monsite.com/chain.pem;

    ssl_protocols TLSv1.2;
    ssl_ecdh_curve prime256v1;
    ssl_ciphers EECDH+AESGCM:EECDH+AES;
    ssl_prefer_server_ciphers on;
    resolver 80.67.169.12 80.67.169.40 valid=300s;
    resolver_timeout 5s;

    ssl_session_cache shared:SSL:10m;
    add_header Strict-Transport-Security "max-age=15768000";

    location / {
        try_files $uri $uri/ =404;
    }

    access_log /var/www/monsite.com/logs/access.log combined;
    error_log /var/www/monsite.com/logs/error.log error;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

On redémarre nginx (service nginx restart) et admirez le "zoli" cadenas vert dans votre barre d'adresse. ON peut lire (en passant la souris sur le cadenas) : "Vérifié par Let's Encrypt) !

Fil RSS des articles