Pour comprendre iptables Essayez d'ouvrir le port sur votre ordinateur portable (Linux) jusqu'à ce que vous puissiez naviguer sur le Web.
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Puisqu'il est complètement ouvert, nous utiliserons la méthode de la liste blanche et ouvrirons le port pour naviguer sur le Web.
Utiliser la méthode de la liste blanche
iptables -P INPUT DROP
iptables -P FORWARD DROP
Si vous ne spécifiez pas l'option -t, la table par défaut est la table de filtres.
Je ne peux plus me connecter à qiita. OUTPUT est complètement ouvert, mais INPUT ne peut pas du tout être pris. En d'autres termes, je ne peux pas obtenir de réponse ping.
ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
Autorisez le ping car il utilise le protocole icmp.
iptables -A INPUT -p icmp -j ACCEPT
ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=12.4 ms
Est-il possible de résoudre le nom?
ping google.com
ping: google.com: nom ou service inconnu
Le protocole DNS semble utiliser udp et tcp sur le port 53, vous pouvez donc ouvrir les deux.
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
dig google.com
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com
;; global options: +cmd
;; connection timed out; no servers could be reached
Je ne peux pas le résoudre. .. Étrange.
cat /etc/resolv.conf
This file is managed by man:systemd-resolved(8). Do not edit.
This is a dynamic resolv.conf file for connecting local clients to the
internal DNS stub resolver of systemd-resolved. This file lists all
configured search domains.
Run "systemd-resolve --status" to see details about the uplink DNS servers
currently in use.
Third party programs must not access this file directly, but only through the
symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
replace this symlink by a static file or a different symlink.
See man:systemd-resolved.service(8) for details about the supported modes of
operation for /etc/resolv.conf.
nameserver 127.0.0.53
options edns0
ss -ln | grep "127.0.0.53"
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
Il semble que systemd-résolu passe un contrat principal sur le port local 53, il semble donc nécessaire d'ouvrir également la destination. ** Remarque à nouveau: ce n'est pas nécessaire sur les machines qui n'exécutent pas de résolution systemd **
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
dig google.com
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62225
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 163 IN A 172.217.24.142
;; Query time: 13 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Dec 27 17:47:57 JST 2019
;; MSG SIZE rcvd: 55
C'est résolu. (En fait, j'étais vraiment dedans: sweat_smile:
Mais cela ne se connecte toujours pas à qiita. Vous devez être en mesure de recevoir la réponse http (s).
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 443 -j ACCEPT
J'ai pu me connecter à qiita.
Les paramètres jusqu'à ce point peuvent être confirmés avec la commande suivante et peuvent être enregistrés par redirection.
iptables-save
Generated by iptables-save v1.6.1 on Sat Dec 28 13:08:20 2019
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
Completed on Sat Dec 28 13:08:20 2019
Generated by iptables-save v1.6.1 on Sat Dec 28 13:08:20 2019
*filter
:INPUT DROP [542:171507]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2523:785906]
-A INPUT -p icmp -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
COMMIT
Completed on Sat Dec 28 13:08:20 2019
Vous pouvez restaurer les paramètres à partir du fichier de paramètres enregistré avec la commande suivante.
# iptables-restore [nom du fichier de configuration]
Pour revenir à l'état d'origine
--Supprimer le paramètre de règle avec l'option -F (Elle est supprimée pour chaque table. Cette fois, l'option -t n'est pas nécessaire car elle dépend de la table de filtrage, mais si vous modifiez la table nat, spécifiez-la avec -t et supprimez-la.) --- P pour annuler la politique
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
De l'endroit où vous jouez tous les paquets entrants avec la politique par défaut J'ai essayé d'ouvrir le port nécessaire pour naviguer sur le Web. Étant donné que iptables est un paramètre lié à la sécurité, je souhaite acquérir les bonnes connaissances.