Hintergrund: Ich versuche, einen Ubuntu-Server so zu konfigurieren, dass eine node.js-Anwendung mit https ausgeführt wird. Zuvor funktionierte alles problemlos mit http (vor einem Jahr konfiguriert) und ich wollte die Firewall für :443 öffnen und auf :8443 umleiten:
sudo ufw allow 443/tcp
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
Beim Ausprobieren meiner App stellte sich heraus, dass die HTTPS-Anforderung nicht bei der App registriert wurde (nichts in den App-Protokollen, und der Browser erhält nie eine Antwort auf die Anforderung). Wenn ich den Server anpinge, erhalte ich auch keine Antwort (es gibt nicht einmal eine Zeitüberschreitung). Mein Cloud-Provider-Dashboard gibt auch an, dass es den Server nicht anpingen kann, und die Firewall-Konfiguration des Cloud-Providers besagt auch, dass 443 für alle TCP zulässig ist. ... Aber ich kann trotzdem problemlos per SSH auf den Server zugreifen.
Frage Wie kann ich das Problem beheben? Soweit ich das beurteilen kann
- :443 ist auf der Firewall erlaubt
- :443 leitet weiter zu :8443
- Knoten hört: 8443
sudo ufw status
To Action From
-- ------ ----
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 9477 packets, 1121K bytes)
pkts bytes target prot opt in out source destination
1413K 59M REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080
0 0 REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080
0 0 REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080
0 0 REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080
0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080
0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 redir ports 8443
Chain INPUT (policy ACCEPT 6826 packets, 410K bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 74 packets, 6925 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 74 packets, 6925 bytes)
pkts bytes target prot opt in out source destination
sudo netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 108911/systemd-reso
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 112287/sshd
tcp 0 0 0.0.0.0:1022 0.0.0.0:* LISTEN 125785/sshd
tcp6 0 0 :::22 :::* LISTEN 112287/sshd
tcp6 0 0 :::8443 :::* LISTEN 125414/node
tcp6 0 0 :::1022 :::* LISTEN 125785/sshd
sudo iptables -L -nv
Chain INPUT (policy DROP 120 packets, 30108 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
381K 34M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
998 94467 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
8163 1107K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
54M 15G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2892K 172M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 5873 packets, 874K bytes)
pkts bytes target prot opt in out source destination
Chain ufw-after-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-after-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-after-logging-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-after-logging-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-after-logging-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-after-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-before-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-before-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-before-logging-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-before-logging-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-before-logging-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-before-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-logging-allow (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-logging-deny (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-not-local (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-reject-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-reject-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-reject-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-skip-to-policy-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-skip-to-policy-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-skip-to-policy-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-track-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-track-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-track-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-user-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-user-input (0 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
Chain ufw-user-limit (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-user-limit-accept (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-user-logging-forward (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-user-logging-input (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-user-logging-output (0 references)
pkts bytes target prot opt in out source destination
Chain ufw-user-output (0 references)
pkts bytes target prot opt in out source destination
Antwort1
Starten Sie ufw neu.
sudo systemctl restart ufw
Ihre iptables-Ausgabe zeigt, dass die meisten von ufw hinzugefügten Regeln fehlen. Dies wird dadurch verursacht, dass die Tabellen manuell geleert werden (z. B. sudo iptables -F
), während ufw noch läuft. Dabei werden natürlich auch die Regeln von ufw geleert und es kommt zu vielen Störungen, aber in einigen Internet-Tutorials wird Ihnen das empfohlen.