Opnsense proxy (squid) segmentation fault

Hi.

Wieder völlig unvorhergesehen fällt mir der squid auf die Füße:
Es gibt einen segmentation fault, bug ist hier dokumentiert:

Leider weiß dort auch keiner, wie das Problem einzugrenzen oder reproduzierbar ist.

eigentlich kein Problem für die Leute dort. Aber bei mir tut das Proxying nicht.

VG, Tobias

Konkreter:
Ich habe ja die Firewall als proxy eingerichtet und es scheint, als ob der Internetzugang einfach manchmal (ab einem gewissen Zeitpunkt) nicht (mehr) funktioniert.

Reproduzierbar ist leider nicht, ob das überhaupt mit dem Proxy zu tun hat. Jetzt gerade tut es jedenfalls während ich schreibe. Heute morgen ging es gar nicht im Computerraum.

Wenn man den Proxy entfernt und das Netzwerk auf noProxy in der Firewall stellt, dann klappt auch der Netzwerkzugriff, es liegt also wohl nicht am Netzwerk.

Ebenso kann ich bei funktionierendem Proxy (jetzt) über die Schulkonsole den LAN-Zugang ins Netz kappen. Das klappt mit Verzögerung von ein paar zehn sekundnen.

Jetzt noch konkreter:

direkt auf der Konsole scheint der Squid nach einer Weile nicht mehr richtig zu arbeiten:

# ps aux | grep squi               
squid    1770   0.0  0.8  62828 16992  -  Is   07:00     0:00.00 /usr/local/sbin/squid -f /usr/local/etc/squid/squid.conf
squid    4270   0.0  1.5  85336 30292  -  I    07:00     0:00.08 (squid-1) --kid squid-1 -f /usr/local/etc/squid/squid.conf (squid)
squid   45706   0.0  0.0      0     0  -  Z    07:00     0:00.00 <defunct>

dann nach # /usr/local/etc/rc.d/squid forcerestart
sieht es so aus:

root@firewall:~ # ps aux | grep squid                   
squid   54439   0.0  0.9  62828 17536  -  Ss   08:09     0:00.00 /usr/local/sbin/squid -f /usr/local/etc/squid/squid.conf
squid   55097   0.0  1.5  85336 31032  -  S    08:09     0:00.08 (squid-1) --kid squid-1 -f /usr/local/etc/squid/squid.conf (squid)
squid   55402   0.0  0.4  21440  9076  -  S    08:09     0:00.02 (pinger) (pinger)
squid   56062   0.0  0.2  16180  5140  -  S    08:09     0:00.02 (negotiate_kerberos_auth) -i -s HTTP/firewall.meineschule.de
squid   56097   0.0  0.6  45612 11648  -  S    08:09     0:00.03 (ext_kerberos_ldap_group_acl) -a -l ldaps://server.meineschule.de

Etwas weiter in die normalen Logs geschaut: /var/log/squid/cache.log ergibt sich, dass um 7:00:50 bei mir der squid (ganze opnsense) neu gestartet wird und dabei der „pinger“ prozess nicht startet:

2024/06/13 07:00:50| Created PID file (/var/run/squid/squid.pid)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/squid.conf (depth 0)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/pre-auth/20-negotiate.auth.conf (depth 1)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/pre-auth/40-snmp.conf (depth 1)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/pre-auth/50-linuxmuster.pre-auth.conf (depth 1)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/pre-auth/dummy.conf (depth 1)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/pre-auth/parentproxy.conf (depth 1)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/auth/dummy.conf (depth 1)
2024/06/13 07:00:50 kid1| Processing Configuration File: /usr/local/etc/squid/post-auth/dummy.conf (depth 1)
2024/06/13 07:00:51 kid1| Set Current Directory to /var/squid/cache
2024/06/13 07:00:51 kid1| Starting Squid Cache version 6.9 for amd64-portbld-freebsd13.2...
...
2024/06/13 07:00:51 kid1| Finished loading MIME types and icons.
2024/06/13 07:00:51 kid1| HTCP Disabled.
2024/06/13 07:00:51 kid1| sendto FD 12: (13) Permission denied
2024/06/13 07:00:51 kid1| ERROR: ipcCreate: CHILD: hello write test failed

Im Gegensatz dazu, wenn ich den squid forcerestart neustarte:

2024/06/13 08:09:45 kid1| Finished loading MIME types and icons.
2024/06/13 08:09:45 kid1| HTCP Disabled.
2024/06/13 08:09:45 kid1| Pinger socket opened on FD 13
2024/06/13 08:09:45 kid1| Squid plugin modules loaded: 0
2024/06/13 08:09:45 kid1| Adaptation support is off.
2024/06/13 08:09:45 kid1| Accepting HTTP Socket connections at conn3 local=10.16.1.254:3128 remote=[::] FD 11 flags=9
    listening port: 10.16.1.254:3128
2024/06/13 08:09:45 pinger| Initialising ICMP pinger ...
2024/06/13 08:09:45 pinger| ICMP socket opened.
2024/06/13 08:09:45 pinger| ICMPv6 socket opened
2024/06/13 08:09:46 kid1| storeLateRelease: released 0 objects
2024/06/13 08:09:46 kid1| Starting new negotiateauthenticator helpers...
    current master transaction: master55
2024/06/13 08:09:46 kid1| helperOpenServers: Starting 1/5 'negotiate_kerberos_auth' processes
    current master transaction: master55
2024/06/13 08:09:46| negotiate_kerberos_auth: INFO: User lehrername@LINUXMUSTER.MEINESCHULE.DE authenticated

This is not over.

Nur meine 2ct, dass meine Instanz von OpnSense jeden Tag neu startet (ich will das so, um überlaufende Cache-partition etc. zu verhindern. Reine Vorsicht.)

Problem jetzt:

  • jeden Tag stürzt mein Squid ab, Fehler im Log siehe oben.
  • Jeden Tag „forcerestart“ ich den squid von Hand und er läuft.

Da ich opnsense+SSO abgeschalten habe und bis auf ein paar versprengte unsynchronisierte linuxclients kein Client momentan den Proxy im Browser eingetragen hat, merkt das auch keiner.

Ist aber ein beschissener Bug.

  • Ich hoffe, jemand kann das reproduzieren. Dann wirds notwendiger, dass zu fixen.
  • Ich hoffe, niemand kann das reproduzieren und ich habe ein Auersches Problem :slight_smile:

VG, Tobias

Hallo Tobias,

mit Bedauern verfolge ich deine Geschichte mit dem Segmentation Fault.
Bist du den sicher, dass es ein Softwareproblem ist?
Bei segmentation fault denke ich zuerst an den Hauptspeicher…
Läuft deine OPNsense dediziert oder virtualisiert mit anderen Möhren?
Haben da auch welche seltsame Probleme?

LG

Holger

Hi Holger,
danke.
Der Segfault ist wohl teil jeder Installation im Moment, siehe hier: www/squid: recent segmentation faults in squid binary · Issue #3827 · opnsense/plugins · GitHub
und du kannst die segfaults vermutlich auch bei dir sehen, wenn du /usr/local/etc/rc.d/squid forcerestart in die Kommandozeile eingibst. (sorry EDIT, richtiger Befehl)

Ich habe opnsense zusammen mit allem anderen auf einem rechner. Den Hauptspeicher durchzutesten ist ohne downtime unmöglich, oder?

Ich sehe keine willkürlichen Probleme der anderen virtuellen Maschinen…

LG, Tobias

Hallo Tobias,

Speichercheck nur wenn du memtest auf dem Host benutzt: also ja: downtime.
Aber wenn da andere unauffällig drauf laufen, dann ist es das eher nicht.

Gibt es den einen BUG Report dazu?
Welche OPNsense Version hast du?

LG

Holger

Bug report zu segfault bei Opnsense? Ja den habe ich ja verlinkt:

Aber wie du dort und vermutlich auch selbst nachvollziehen kannst, hat das segfault selbst scheinbar keinen großen Einfluss. squid läuft / restartet trotzdem. Die wissen selbst nicht genau, was da segfaulted.

LG, Tobias

Abseits von meinem „Problem“:

Ich kann beim Einloggen auf die OpnSense per terminal kein „gscheites Terminal“ kriegen, sprich:

0) Logout                              7) Ping host
  1) Assign interfaces                   8) Shell
  2) Set interface IP address            9) pfTop
  3) Reset the root password            10) Firewall log
  4) Reset to factory defaults          11) Reload all services
  5) Power off system                   12) Update from console
  6) Reboot system                      13) Restore a backup

Enter an option: 8

csh: The terminal database could not be opened.
csh: using dumb terminal settings.

oder

vi /usr/local/etc/squid/openssl.cnf 
vi: No terminal database found

weiß jemand wie ich aus einem „dumb“ terminal ein „gscheites“ mache? Muss ich auf AI warten?
Ah, duckduckgo half: SSH Login Problem

TERM=xterm ssh firewall 

bevor ich mich auf die firewall einlogge… Da ich „screen“ nutze, ist bei mir die Variable auf „screen.xterm-256color“ gesetzt… das versteht opnsense dann nicht…

Nebenproblem gelöst.

Ich aktualisiere Mal auf Grundlage von 1 Event: GEstern gab es das Update auf 24.1.9
Heute hat der restart nicht zu einem Crash wie gezeigt geführt. Ein forcerestart war also nicht nötig.

Was viel interessanter im Zeichen der weiteren Politik von linuxmuster.net wäre:

Squid and OPNProxy have been demoted to community plugins because of security and release quality concerns. What you see here is the merely the reason for this decision.

Cheers,
Franco

Zitat: www/squid: recent segmentation faults in squid binary · Issue #3827 · opnsense/plugins · GitHub

und:

My community support time for this has been utterly depleted. Feel free to open a PR with a fix.

hm. Vielleicht mal nach einer Alternative Ausschau halten, wie man die Internetsteuerung realisiert (open source natürlich).??