Les deux iptables peut avoir (Prendre, tout où n'importe où, n'importe où) et (DROP, tout lieu où que ce soit, n'importe où) dans sa chaîne INPUT?

Comment puis

iptables

tel quel

(ACCEPT, all, anywhere, anywhere)

et

(DROP, all, anywhere, anywhere)

Dans sa chaîne INPUT?

Comme c'est important pour

iptables

avoir des règles pour

ACCEPT

et

DROP

Tout le trafic dans son

INPUT

Chaîne de stratégies par défaut

DROP

?

Le trafic dans cette affaire sera-t-il accepté ou jeté? Je vois qu'il y a des règles spéciales pour

ssh

et

http

, Ils feront donc naturellement un précédent parce qu'ils sont plus précis?

# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:http ctstate NEW,ESTABLISHED
ACCEPT icmp -- anywhere anywhere

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spt:ssh ctstate ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spt:http ctstate ESTABLISHED

iptables-save:

iptables-save
# Generated by iptables-save v1.6.1 on Sun Jun 23 10:21:50 2019
*filter
:INPUT DROP [1665:309354]
:FORWARD DROP [0:0]
:OUTPUT DROP [10:520]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Jun 23 10:21:50 2019
Invité:

Catherine

Confirmation de:

Faites attention à la petite police dans l'application à

-L

Flag B.
http://ipset.netfilter.org/iptables.man.html
et utilise

-v

Option:


-L

,

--list [chain]

Liste de toutes les règles de la chaîne sélectionnée. ...

DANS

exact

Les règles sont supprimées jusqu'à ce que vous utilisiez

 iptables -L -v

Personnellement, je préfère débîner un ensemble complet de règles avec

iptables-save

Pour obtenir une critique rapide comment

iptables -L

Affiche également uniquement

filtre

table Par défaut, et vous devez clairement demander, par exemple, une table nat.

Lorsque vous discutez des ensembles de règles iptables Il est très utile d'ajouter des numéros de lignes aux données de sortie et d'imprimer des adresses IP numériques et des numéros de port:

[sudo] iptables -L -v -n --line-numbers

Parce que

ip-tables -L

ne présente pas les règles exactes et ignore la règle d'interface pour faire confiance à tout le trafic sur l'interface de retour créée par

-A INPUT -i lo -j ACCEPT

Affiché comme suit:

# iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere

plutôt que:

# iptables -L -v -n --line-number

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 75890 6101K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0

Faites également attention à la façon dont la règle a été créée avec

iptables -A INPUT -i lo -j ACCEPT

Sans restrictions sur l'adresse IP (Gammes) de

-s ip-address[/netmask]

et / ou

-d ip-address[/netmask]

La règle s'applique à une adresse IP source et de destination (réseau / Masque de réseau 0.0.0.0/0).

Bien que ce n'était pas exactement le cas pour répondre à votre question initiale:

comment iptables Peut-être compléter complètement des règles dans une chaîne?

Parce que ni le noyau ni l'équipe iptables Pour gérer les règles, l'ensemble des règles en général n'interprète pas.

Chaque paquet est cohérent de manière constante pour le respect des règles dans l'ordre dans lequel elles sont répertoriées dans chaque chaîne correspondante.

. Selon la première règle, qui est une conformité de disposition, le traitement cesse.

Cela signifie que vous en tant qu'administrateur peut facilement créer des règles (Dans le mauvais ordre), Qui ressemblent complètement en face, mais ne sera jamais applicable car le colis correspondra toujours à la règle précédente.

Le noyau sera heureux de prendre:

iptables -I INPUT 1 -s 10.2.3.4/32 -d 10.3.4.5/32 -j DROP
iptables -I INPUT 2 -s 10.2.3.4/32 -d 10.3.4.5/32 -j DROP
iptables -I INPUT 3 -s 10.2.3.4/32 -d 10.3.4.5/32 -j ACCEPT
iptables -I INPUT 4 -s 10.2.3.4/32 -d 10.3.4.5/32 -j DROP

(Où les trois derniers sont totalement inappropriés.) ou quelque chose de moins artificiel, par exemple:

iptables -I INPUT 1  -p tcp -m tcp --dport 22  -j ACCEPT
iptables -I INPUT 2 -p tcp -m tcp --dport 22 -s 10.1.0.0/16 -j DROP

Vous pouvez avoir une règle "Prendre toutes les connexions SSH», suivi de la règle "Ne pas exclure la connectivité SSH de 10.1.0.0/16». Malheureusement, il s'agit de la deuxième règle, bien que complètement correcte ne fonctionnera jamais car les connexions SSH de l'hôte avec l'adresse IP 10.1.2.3 Il sera toujours d'abord à correspondre à la règle «Prendre toutes les connexions SSH».

Dès que vous changez de l'ordre de ces règles ... Ensuite, tout fonctionnera comme prévu:

iptables -I INPUT 1  -p tcp -m tcp --dport 22 -s 10.1.0.0/16 -j DROP
iptables -I INPUT 2 -p tcp -m tcp --dport 22 -j ACCEPT

Hannah

Confirmation de:

Première ligne

iptables -L


target prot opt source destination
ACCEPT all -- anywhere anywhere

correspond à la première règle

iptables-save

production:


-A INPUT -i lo -j ACCEPT

Cette règle correspond uniquement au trafic sortant de l'interface.

lo

, Interface de retour. Il ne correspond pas à la circulation provenant d'une autre interface. (par exemple, eth0).

Par conséquent, la politique par défaut

DROP

affectera tout trafic de n'importe quel appareil sauf

lo

Tant qu'ils ne se rencontrent pas et non acceptés par une règle spécifique (par exemple, http, ssh, related-installed, ...).

Malheureusement

iptables -L

output Ne liste pas / N'affiche pas les détails de l'interface. Cela peut être clarifié en regardant

iptables-save

Conclusion ou utiliser

iptables -L -v

.

Pour répondre aux questions, connectez-vous ou registre