Squid-Warnung: aclIpParseIpData

german
squid

#1

Hallo,

Squid-Log gibt folgende Warnung aus:

2017/08/22 06:25:10| aclIpParseIpData: WARNING: Netmask masks away part of the specified IP in '192.168.1.4/24'

squid.conf enthält den Eintrag:

acl localnet0 src 192.168.1.4/24

Eigentlich müsste es 192.168.1.0/24 heißen. Scheint die Generierung der Datei /etc/squid3/squid.conf nicht richtig zu funktionieren. Die Netzwerkeinstellungen sind richtig gesetzt.

Die UCS Version ist 4.2-1 errata139 und befindet sich auf dem aktuellen Stand.

Besten Gruß und Danke


#2

Hallo,

Wenn die Erkennung des lokalen Netzes wirklich fehlschlagen sollte, müsste man zumindest mit der UCRV “squid/allowfrom” korrigieren können.

hth,
Dirk Ahrnke


#3

Danke für die schnelle Rückmeldung.

Das Setzen von squid/allowfrom fügt lediglich eine zusätzliche localnet1 ACL hinzu, und korrigiert nicht die localnet0 ACL -> keine Korrektur der Squid Warnung.


#4

Stimmt. Ich habe gerade kein 4.2 mit Squid zur Hand, aber in 4.1 steht im Template /etc/univention/templates/files/etc/squid3/squid.conf:

# get local networks
for name, iface in Interfaces(configRegistry).ipv4_interfaces:
        try:
                myNetworks[iface['network']] = iface['netmask']
        except LookupError:
                pass
allowFrom.extend(myNetworks.items())

# get networks from ucs
for entry in configRegistry.get("squid/allowfrom", "").split(" "):
....

Das Netzwerk und die Netzmaske wird also direkt aus der UCRV “interfaces/*/network” bzw “netmask” gelesen, und falls vorhanden durch “squid/allowfrom” ergänzt.


#5

Im Template bei 4.2 werden tatsächlich die IP-Adressen statt die Netzwerk-Adressen gesetzt:

# get local networks
for _name, iface in Interfaces(configRegistry).all_interfaces:
        ipv4_address = iface.ipv4_address()
        if ipv4_address:
                myNetworks[str(ipv4_address.ip)] = ipv4_address.prefixlen
        ipv6_addresses = (iface.ipv6_address(name) for name in iface.ipv6_names)
        myNetworks.update({str(ip.ip): ip.prefixlen for ip in ipv6_addresses if ip})
allowFrom.extend(myNetworks.items())

# get networks from ucs
for entry in configRegistry.get("squid/allowfrom", "").split(" "):
...

EDIT: Vervollständigung
Warum die IP-Adresse mit dem Suffix der Netzmaske verwendet wird ist mir ein Rätzel. Sicherlich ein Entwicklungsfehler von Univention, oder?
Ich habe nun die unsaubere Lösung gewählt und das Template angepasst. Hoffe, dass der Fehler zukünftig behoben wird.


#6

Da der Fehler immer noch vorhanden ist, ich keinen gleichlautenden Bug bei Univention gefunden habe, habe ich mal einen neuen Eintrag erstellt.


#7

Wir sind auch davon betroffen und bekommen täglich eine Warnmail diesbezüglich zugesendet. squid -k parse zeigt ihn auch an.
Ebenso wie ERROR: Directive 'hierarchy_stoplist' is obsolete. seit dem Upgrade auf 4.3