Bonjour,
Un problème que je n'arrive pas a élucider. mes règles iptables sont les suivantes:

 #!/bin/bash

# Base iptables rules :
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A OUTPUT -o lo -j ACCEPT 
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT 

# Autorisation entrantes des services
# SSH / autorisation selon IP
iptables -I INPUT -p tcp -s X.X.X.X --dport 22 -j ACCEPT

# Plex
iptables -A INPUT -p tcp --dport 32400 -j ACCEPT

# Serveur Mail
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp --dport 587 -j ACCEPT
iptables -A INPUT -p tcp --dport 4190 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -A INPUT -p tcp --dport 143 -j ACCEPT

# Serveurs Web
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

# Autorisation rTorrent
iptables -I INPUT -p tcp --dport 45000:65000 -j ACCEPT

# Port OpenVPN
iptables -I INPUT -p udp -m udp --dport 1194 -j ACCEPT
# TUN
iptables -I INPUT -i tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
# Routing
iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT
iptables -I INPUT -p icmp -s X.X.X.X --icmp-type echo-request -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


iptables -A INPUT -j DROP
iptables-save > /etc/iptables/rules.v4    
systemctl restart docker

Par ailleurs j'ai installé portsentry sur l’hôte et traefik dans docker. Les ports 80 et 443 sont ouverts par docker.

Lorsque je fais un scan (à partir d'une autre machine linux) via la commande nmap -v -PN -p 0-2000,60000 X.X.X.X portsentry ne bannit pas, par contre si je stop docker et installe nginx sur L’hôte avec les mêmes ports d'ouvert, mais cette fois par nginx, alors ca fonctionne et portsentry fait son boulot. Je l'ai installé via le tuto de @ex_rat
https://mondedie.fr/d/5318-Tuto-Securisation-Logs-V-3-nginx

Je suppose que mes règles iptables ne sont pas appropriées a docker mais du coup je sèche. Si vous avez une idée.

config traefik

version: '3'
services:

  traefik:
    image: traefik
    container_name: traefik
    restart: unless-stopped
    hostname: traefik
    labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:traefik.papatoune.pw
      - traefik.port=8080
      - traefik.docker.network=traefik_proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro  
      - /home/predator999/traefik/traefik.toml:/traefik.toml:ro
      - /home/predator999/letsencrypt/certs:/etc/traefik/acme:rw
      - /var/log/traefik:/var/log
    ports:
      - "80:80"
      - "443:443"
    networks:
      - proxy
    command:
      - --web
      - --accessLog.filePath=/var/log/access.log
      - --accessLog.filters.statusCodes=400-499

Merci

laster13 a renommé le titre en Portsentry et traefik.

Bonjour,
Tu peux nous montrer ta configuration

/usr/share/logwatch/default.conf/logfiles/nginx.conf

    hydrog3n Merci pour ta réponse, je me suis servi du tuto uniquement pour portsentry, je n'ai pas installé logwatch. Ce que j'ai oublié de rajouter est que si j'efface les règles iptables cela fonctionne, portsentry detecte le scan sur les ports 80, 443 ouverts par traefik.

    Visiblement avec UFW le problème semble être réglé, je suis en train de comparer les règles iptables que UFW génère pour voir d’où venait mon problème.

    J'aurais souhaité également pouvoir utiliser l'option iptables=false dans docker qui permet de reprendre la main sur l'iptable et empêcher docker de le modifier sauf que fail2ban détecte les ip interne de docker 178.18.0.x. J'ai regardé sur le net mais les solutions semblent être confuse. Si vous avez une idée.

    J'ai retrouvé ce post sur le sujet mais cela suppose de connaitre l'ip du container et à priori si on relance le docker-compose et que l'ip change, ben ca risque de foirer
    https://mondedie.fr/d/9354-iptables-maison-et-container-docker-recuperer-l-ip-distante-reelle

    Merci

    Bonjour,

    Bon à priori c’est moi qui suis parti en vrille, j'avais certainement pas capté le fonctionnement de Portsentry, à savoir qu'il ignore les ports ouverts mais utilisé par une appli, genre traefik sur le port 80, 443 par une appli, Par contre si le port est ouvert et non utilisé, à ce moment là il réagit au scans.

    D’où ma question sur son utilité. Je n'utilise que traefik en docker, donc les seuls ports ouverts seront le 80 et 443 gérés par docker. En considérant que mon iptables bloque tout en "INPUT" même le 80 et 443 (sauf le port ssh) puisqu'il sont gérés par les règles docker, porsentry ne déclenchera jamais. Et si docker s’arrête pour une raison X alors les ports 80 et 443 seront automatiquement fermés par iptables puisque pas de règles "ACCEPT" les concernant.

    Pour info j'utilIse cet excellent script iptables
    https://mondedie.fr/d/10271-chaine-prerouting-iptables-dans-la-table-nat/7

    Dans lequel j'ai viré toutes les regles puisqu'elle sont gérés par docker
    -A USER-INPUT -p tcp --dport 80 -j ACCEPT

    Voila je voulais avoir votre avis et savoir si je faisais fausse route

    Merci

    Répondre…