Ich hab bisher auch einen HP AOI (HP OfficeJet Pro 7720) in Benutzung und konnte den problemlos auf meinem Desktop und beiden Notebooks einrichten. Ich hab aber auch keine Firewall auf meinem Desktop bzw. den Notebooks laufen, weil ich diese Funktion meiner Fritz!Box überlasse.
Suche von HP-Netzwerkdruckern scheitert an Firewall
- rxmd
- Erledigt
Hinweis: In dem Thema Suche von HP-Netzwerkdruckern scheitert an Firewall gibt es 26 Antworten auf 3 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
-
-
Ich hab bisher auch einen HP AOI (HP OfficeJet Pro 7720) in Benutzung und konnte den problemlos auf meinem Desktop und beiden Notebooks einrichten. Ich hab aber auch keine Firewall auf meinem Desktop bzw. den Notebooks laufen, weil ich diese Funktion meiner Fritz!Box überlasse.
Ja, ohne Firewall läuft hier auch alles reibungslos. Ich bin aber in verschiedenen Netzen unterwegs, insofern bin ich da vorsichtiger und würde die Firewall lieber laufenlassen und entsprechend konfigurieren.
Ich bin einen Schritt weiter. Das Problem mit hp-setup scheint zu sein, daß es UDP-Verbindungen von anderen Ports aufmacht anstatt den Standardports (427 für SLP, 5353 für mDNS) - im Beispiel ist .37 mein Rechner, .36 der Drucker:
Code
Alles anzeigen$ sudo tcpdump -i wlan0 -nn -s0 -v port 427 [sudo] Passwort für root: tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes 15:17:18.425502 IP (tos 0x0, ttl 4, id 47204, offset 0, flags [DF], proto UDP (17), length 72) 192.168.1.37.40280 > 224.0.1.60.427: UDP, length 44 15:17:19.380883 IP (tos 0x0, ttl 64, id 14, offset 0, flags [none], proto UDP (17), length 564) 192.168.1.36.427 > 192.168.1.37.40280: UDP, length 536 ^C 2 packets captured 2 packets received by filter 0 packets dropped by kernel
Die kommen entsprechend nicht mehr durch die Firewall, selbst wenn dort SLP freigegeben ist, denn die Freigabe bezieht sich ja nur auf Port 427. Wenn ich eine zusätzliche Firewallregel einfüge, die UDP-Pakete mit Source-Port 427 ebenfalls erlaubt, funktioniert es mit SLP:
Code
Alles anzeigencalypso:~ # firewall-cmd --list-all home (active) target: default icmp-block-inversion: no interfaces: wlan0 sources: services: dhcpv6-client mdns slp ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: calypso:~ # hp-setup HP Linux Imaging and Printing System (ver. 3.19.12) Printer/Fax Setup Utility ver. 9.0 Copyright (c) 2001-18 HP Development Company, LP This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to distribute it under certain conditions. See COPYING file for more details. QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' Searching... (bus=net, timeout=5, ttl=4, search=(None) desc=0, method=slp) error: No devices found on bus: net error: HPLIP cannot detect printers in your network. This may be due to existing firewall settings blocking the required ports. When you are in a trusted network environment, you may open the ports for network services like mdns and slp in the firewall. For detailed steps follow the link. http://hplipopensource.com/node/374 Done. calypso:~ # firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p udp -m udp --sport 427 -m conntrack --ctstate NEW -j ACCEPT success calypso:~ # hp-setup HP Linux Imaging and Printing System (ver. 3.19.12) Printer/Fax Setup Utility ver. 9.0 Copyright (c) 2001-18 HP Development Company, LP This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to distribute it under certain conditions. See COPYING file for more details. QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' Searching... (bus=net, timeout=5, ttl=4, search=(None) desc=0, method=slp) Done. calypso:~ #
Mit mDNS und einer entsprechenden Firewallregel für Port 5353 funktioniert es dagegen nach wie vor nicht. Die Ausgangssituation ist die gleiche (hp-setup versucht eine UDP-Verbindung über eine hohe Portnummer aufzumachen):
Code
Alles anzeigen$ sudo tcpdump -i wlan0 -nn -s0 -v port 5353 [sudo] Passwort für root: tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes 15:24:55.315516 IP (tos 0x0, ttl 4, id 3036, offset 0, flags [DF], proto UDP (17), length 72) 192.168.1.37.58236 > 224.0.0.251.5353: 0 PTR (QM)? _pdl-datastream._tcp.local. (44) 15:24:55.319746 IP (tos 0x0, ttl 64, id 189, offset 0, flags [none], proto UDP (17), length 653) 192.168.1.36.5353 > 192.168.1.37.58236: 0*- 1/0/5 _pdl-datastream._tcp.local. PTR HP OfficeJet Pro 8710 [AD5ECE]._pdl-datastream._tcp.local. (625) 15:24:56.317750 IP (tos 0x0, ttl 4, id 3186, offset 0, flags [DF], proto UDP (17), length 72) 192.168.1.37.58236 > 224.0.0.251.5353: 0 PTR (QM)? _pdl-datastream._tcp.local. (44) 15:24:56.322318 IP (tos 0x0, ttl 64, id 190, offset 0, flags [none], proto UDP (17), length 653) 192.168.1.36.5353 > 192.168.1.37.58236: 0*- 1/0/5 _pdl-datastream._tcp.local. PTR HP OfficeJet Pro 8710 [AD5ECE]._pdl-datastream._tcp.local. (625) 15:24:58.321240 IP (tos 0x0, ttl 4, id 3625, offset 0, flags [DF], proto UDP (17), length 72) 192.168.1.37.58236 > 224.0.0.251.5353: 0 PTR (QM)? _pdl-datastream._tcp.local. (44) 15:24:58.325401 IP (tos 0x0, ttl 64, id 191, offset 0, flags [none], proto UDP (17), length 653) 192.168.1.36.5353 > 192.168.1.37.58236: 0*- 1/0/5 _pdl-datastream._tcp.local. PTR HP OfficeJet Pro 8710 [AD5ECE]._pdl-datastream._tcp.local. (625) ^C 6 packets captured 6 packets received by filter 0 packets dropped by kernel
Allerdings wenn ich dann eine Firewallregel einfüge, die UDP-Pakete von Port 5353 erlauben soll, findet hp-setup den Drucker immer noch nicht:
Code
Alles anzeigencalypso:~ # firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p udp -m udp --sport 5353 -m conntrack --ctstate NEW -j ACCEPT success calypso:~ # hp-setup HP Linux Imaging and Printing System (ver. 3.19.12) Printer/Fax Setup Utility ver. 9.0 Copyright (c) 2001-18 HP Development Company, LP This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to distribute it under certain conditions. See COPYING file for more details. QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' Searching... (bus=net, timeout=5, ttl=4, search=(None) desc=0, method=mdns) error: No devices found on bus: net error: HPLIP cannot detect printers in your network. This may be due to existing firewall settings blocking the required ports. When you are in a trusted network environment, you may open the ports for network services like mdns and slp in the firewall. For detailed steps follow the link. http://hplipopensource.com/node/374 Done.
Da SLP aber bei hp-setup die Standardeinstellung ist, werde ich hiermit erst einmal leben können. Sollte sich noch etwas tun, werde ich es hier dokumentieren.
-
Ich hab mir mal gerade die HP Developers Page aufgerufen, hier gibt es eine Beschreibung zur Port-Freigabe in der FW:
-
Ich hab mir mal gerade die HP Developers Page aufgerufen, hier gibt es eine Beschreibung zur Port-Freigabe in der FW:
Danke. Die Seite habe ich schon gesehen - im Prinzip steht da nur, daß man Port 427 für SLP und Port 5353 für mDNS freigeben soll. Das reicht aber nicht (siehe meinen vorigen Post vor Deinem).
-
So, ich habe es jetzt am Laufen - hier kurz, wie's geht:
1. Autodiscovery mit Avahi/mDNS freigeben:
Das einfachste ist Autodiscovery mit Avahi (also mDNS/Zeroconf/Bonjour auf Port 5353). Dafür muß auf der Firewall für die Zone, in der man ist, der mDNS-Service freigegeben werden (also z.B. mit firewall-cmd --zone=home --add-service=mdns).
Mit avahi-browse -at kann man prüfen, welche Geräte auf dem lokalen Netzwerk für Autodiscovery sichtbar sind.
Dann funktioniert hp-setup, wenn man unter "Advanced options" als "Network discovery method" Avahi anwählt.
2. Autodiscovery mit SLP freigeben
Manchmal kann Avahi ausreichend sein, z.B. wenn man die Methode nicht auswählen kann (Beispiel: unter VueScan einen HP-Netzwerkscanner einrichten). HPLIP verwendet standardmäßig SLP, das man entsprechend auf der Firewall freigeben muß. Das Problem ist dabei, daß die Standard-SLP-Freigabe auf Port 427 in der Firewall nicht reicht - hp-setup sendet seine SLP-Pakete von hohen UDP-Ports. Die Antwortpakete kommen dementsprechend nicht auf dem Standardport 427 an und bleiben in der Firewall hängen.
Um das zu lösen, muß man bei ausgehenden SLP-Verbindungen dynamisch Ausnahmen für die Antwortpakete in der Firewall anlegen lassen. Standardmäßig kann die Firewall das für FTP, SIP usw., nicht aber für SLP. Hierfür brauchen wir die zu Netfilter gehörenden Pakete conntrackd und conntrack-tools, die Hilfsprogramme für eine Rieihe weiterer Protokolle enthalten. Damit geht die Freigabe wie folgt:
- In der Conntrack-Konfigurationsdatei (/etc/conntrackd/conntrackd.conf) die Auskommentierung für den Abschnitt "Helper" und für den SLP-Helper entfernen - für alle anderen Helper nicht unbedingt
- Helper für SLP aktivieren: nfct add helper slp inet udp (nfct kommt aus dem Conntrack-Tools-Paket)
- Conntrackd starten (systemctl start conntrackd.service)
- Firewallregeln für ausgehende SLP-Pakete anlegen, mit denen dafür das Connection tracking aktiviert wird:
Code# firewall-cmd --direct --get-all-rules ipv4 raw OUTPUT 0 -m addrtype --dst-type MULTICAST -p udp --dport 427 -j CT --helper slp ipv4 raw OUTPUT 0 -m addrtype --dst-type BROADCAST -p udp --dport 427 -j CT --helper slp
Damit läuft dann auch die Autodiscovery mit SLP.
Wenn das Ganze einen Reboot überstehen soll, muß man die Firewallregeln permanent machen und den conntrackd-Dienst aktivieren. Außerdem muß man dafür sorgen, daß *vor* conntrackd auf jeden Fall die Helper aktiviert werden, und *nach* conntrackd die Firewallregeln neu geladen werden. Das geht z.B. mit einem Drop-in für conntrackd.service:
Codecalypso:~ # cat /etc/systemd/system/conntrackd.service.d/nfct.conf [Service] ExecStartPre=-/usr/sbin/nfct add helper slp inet udp ExecStartPost=/usr/bin/firewall-cmd --reload
Damit funktioniert die Autodiscovery auch nach einem Neustart, ohne daß man die Firewall offen stehen lassen muß.
Vielen Dank für die Unterstützung! Ich habe gerade einiges gelernt.
-
Also, bei mir hat der HPlib Setup immer ohne jedweden Ärger auf Anhieb funktioniert.
Dass du mit conntrack, was ein zentraler Bestandteil des Linuxnetzwerkstacks ist, rumspielen musst, deutet eher darauf hin, dass du das Ding vorher ganz schön verbastelt hast.
Und das ganze Theater mit Service Discovery wäre alles nicht nötig gewesen, wenn du - wie von HP empfohlen, den Drucker einfach mit USB- Kabel installiert hättest und danach auf welches Netz auch immer umgestellt hättest.
Immerhin hast du ein wenig über die neue Firewall gelernt. Is ja auch schon was.
Aber die Firewall anzuweisen Zeroconf und dergleichen zuzulassen, ist keine gute Idee.
Ein beliebter Angriffsvektor - und man installiert seine Geräte ja nicht bei jedem Boot, sondern nur einmal.
-
Also, bei mir hat der HPlib Setup immer ohne jedweden Ärger auf Anhieb funktioniert.
Dass du mit conntrack, was ein zentraler Bestandteil des Linuxnetzwerkstacks ist, rumspielen musst, deutet eher darauf hin, dass du das Ding vorher ganz schön verbastelt hast.
Und das ganze Theater mit Service Discovery wäre alles nicht nötig gewesen, wenn du - wie von HP empfohlen, den Drucker einfach mit USB- Kabel installiert hättest und danach auf welches Netz auch immer umgestellt hättest.
Immerhin hast du ein wenig über die neue Firewall gelernt. Is ja auch schon was.
Aber die Firewall anzuweisen Zeroconf und dergleichen zuzulassen, ist keine gute Idee.
Ein beliebter Angriffsvektor - und man installiert seine Geräte ja nicht bei jedem Boot, sondern nur einmal.
Verbastelt war da nix, das ist eine frische Installation, eine Woche alt (jetzt zwei) und weder Netzwerk- noch Druckerkonfiguration hatte ich angefaßt Und ich sitze halt nicht nur zuhause im stillen Kämmerlein und richte das Gerät einmal ein und gut ist, sondern ich bin viel unterwegs und muß mit wechselnden Geräten arbeiten.
Das hatte ich ja auch schon geschrieben.
Ansonsten gebe ich dir natürlich recht, dauerhaft offenlassen würde ich die Firewall-Ausnahmen auch nicht, aber wenn man's braucht, geht es jetzt.