Utilisation spécifique de iptables.

WRInaute accro
Bonjour

Prochainement, ma connexion internet sera migrée par Free en mode EPON avec 4 ipv4 partagées.

Ces 4 ips se partageront les ports clients par samples contigus de 0 à 65535.

Actuellement, mon ip ( non partagée ), est la seule non filtrée à mon sercice ssh.

Ceci avec iptables.

Ma question : Sera-t-il possible aussi de filtrer par ports clients ?

Genre :

iptables -I INPUT -p tcp -s $MON_IP --sport 32768:65535 --dport 22 -j DROP

iptables -I INPUT -p tcp -s $MON_IP --sport 0:32767 --dport 22 -j ACCEPT

Autrement dit, une connexion TCP devrait avoir connaissance de son port client ?

Et iptables aussi ?

Merci beaucoup.
 
WRInaute accro
Bonjour

Il semble que Linux Ubuntu après 20.4, rendra iptables obsolète.

Sinon, quel firewall choisir ?

Nécessité :

bloquer des appels entrants par adresse source et port(s) cible(s) et ports sources.

C'est-à-dire :

accepter connexion de mon ip vers port ssh et venant d'un de mes ports sources attribués,

Refuser mon ip vers port ssh venant d'autres ports sources.

Ceci dans le cas imposé par Free de partage d'ipv4 par 4 abonnés se partageant les ports clients.

Sinon, possibilité probable de firewall ipv6 où le partage d'ip ne se poserait pas.

Merci beaucoup pour votre aide.
 
WRInaute accro
Bonjour

Avec nftables.

Cà marche ?

Code:
# Add table
nft add table ip mon_filtreIPv4

# Add chain
nft add chain ip mon_filtreIPv4 IN_IPV4 { type filter hook input priority 0 \; }
nft add chain ip mon_filtreIPv4 OUT_IPV4 { type filter hook output priority 0 \; }

# Add rules
nft add rule ip mon_filtreIPv4 IN_IPV4 tcp saddr MON_IPV4 sport 16384-32768 accept

nft add rule ip mon_filtreIPv4 IN_IPV4 tcp saddr MON_IPV4 sport 0-16383 drop
nft add rule ip mon_filtreIPv4 IN_IPV4 tcp saddr MON_IPV4 sport 32769-65535 drop

Merci beaucoup.
 
Dernière édition:
WRInaute accro
Pardon.

Ou bien ceci :

En supposant que je dispose des ports 16384-32768, et partage en mode EPON mon ip avec 3 autres ip.

Je cherche à me permettre l'accès au ssh , et à personne d'autre.

Cà marche en spécifiant les ports sources en entrée ?

Merci beaucoup de votre aide.



Code:
define MON_IP        = X.Y.Z.T

define MES_PORTS    = 16384-32768

define OTHER_PORTS_BAS    = 0-16383

define OTHER_PORTS_HAUT = 32769-65535

define PORT_DNS        = 53

define PORT_SSH        = 22

define PORTS_WEB    = { 80, 443 }

define PORTS_FTP    = { 20, 21}

define PORTS_MAIL    = {25, 465, 587, 110, 143, 995}

define IPS_OVH        = { 92.222.184.0/24, 92.222.185.0/24, 92.222.186.0/24, 167.114.37.0/24, 54.37.153.248 }

table ip filter_IPV4 {
        chain input_IPV4 {
                 type filter_IPV4 hook input priority 0; policy accept;

            ct state established,related accept;

        saddr $MON_IP sport $MES_PORTS accept;

        saddr $MON_IP sport $OTHER_PORTS_BAS dport $PORT_SSH drop;

        saddr $MON_IP sport $OTHER_PORTS_HAUT dport $PORT_SSH drop;

        tcp dport $PORT_DNS accept;

        udp dport $PORT_DNS accept;

        tcp dport $PORTS_WEB accept;

        tcp dport $PORTS_FTP accept;

        tcp dport $PORTS_MAIL accept;

        saddr $IPS_OVH accept;

        drop;
        }

        chain output_IPV4 {
                 type filter_IPV4 hook output priority 0; policy accept;

            ct state established,related accept;

        daddr $MON_IP dport $MES_PORTS accept;

        daddr $MON_IP dport $OTHER_PORTS_BAS sport $PORT_SSH drop;

        daddr $MON_IP dport $OTHER_PORTS_HAUT sport $PORT_SSH drop;

        tcp dport $PORT_DNS accept;

        udp dport $PORT_DNS accept;

        tcp dport $PORTS_WEB accept;

        tcp dport $PORTS_FTP accept;

        tcp dport $PORTS_MAIL accept;

        daddr $IPS_OVH accept;

        drop;
        }
}
 
WRInaute accro
Rebonjour.

Cà compile.

Merci de corriger.


Code:
table inet firewall {
    chain inbound_ipv4 {
        icmp type echo-request limit rate 5/second accept
        ip saddr 152.228.170.112 tcp sport 16384-32768 accept
        ip saddr 152.228.170.112 udp sport 16384-32768 accept
        ip saddr 152.228.170.112 tcp sport 0-16383 tcp dport 22 drop
        ip saddr 152.228.170.112 tcp sport 32769-65535 tcp dport 22 drop
        tcp dport 53 accept
        udp dport 53 accept
        tcp dport { 80, 443 } accept
        tcp dport { 20, 21 } accept
        tcp dport { 25, 110, 143, 465, 587, 995 } accept
        ip saddr { 54.37.153.248, 92.222.184.0-92.222.186.255, 167.114.37.0/24 } accept
        drop
    }

    chain inbound_ipv6 {
        icmpv6 type { nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert } accept
        icmpv6 type echo-request limit rate 5/second accept
        tcp dport 53 accept
        udp dport 53 accept
        tcp dport { 80, 443 } accept
        tcp dport { 20, 21 } accept
        tcp dport { 25, 110, 143, 465, 587, 995 } accept
        drop
    }

    chain inbound {
        type filter hook input priority filter; policy drop;
        ct state vmap { invalid : drop, established : accept, related : accept }
        iifname "lo" accept
        meta protocol vmap { ip : jump inbound_ipv4, ip6 : jump inbound_ipv6 }
    }

    chain outbound_ipv4 {
        ip daddr 152.228.170.112 tcp dport 16384-32768 accept
        ip daddr 152.228.170.112 udp dport 16384-32768 accept
        ip daddr 152.228.170.112 tcp dport 0-16383 tcp sport 22 drop
        ip daddr 152.228.170.112 tcp dport 32769-65535 tcp sport 22 drop
        tcp dport 53 accept
        udp dport 53 accept
        tcp dport { 80, 443 } accept
        tcp dport { 20, 21 } accept
        tcp dport { 25, 110, 143, 465, 587, 995 } accept
        ip daddr { 54.37.153.248, 92.222.184.0-92.222.186.255, 167.114.37.0/24 } accept
        drop
    }

    chain outbound_ipv6 {
        tcp dport 53 accept
        udp dport 53 accept
        tcp dport { 80, 443 } accept
        tcp dport { 20, 21 } accept
        tcp dport { 25, 110, 143, 465, 587, 995 } accept
        drop
    }

    chain outbound {
        type filter hook output priority filter; policy drop;
        ct state vmap { invalid : drop, established : accept, related : accept }
        iifname "lo" accept
        meta protocol vmap { ip : jump outbound_ipv4, ip6 : jump outbound_ipv6 }
    }

    chain forward {
        type filter hook forward priority filter; policy drop;
    }
}
 
Discussions similaires
Haut