OpenWrt 21.02.0 second release candidate

Thanks to all the developers hard work on bringing this new RC out.

I have successfully installed on my Gl.Inet GL-MV1000 (brume). It seems to be working just fine. I was able to add necessary WireGuard packages and was able to connect to TorGuard VPN without problem.

I'm about to start installing other packages (nano, VPN-Policy-Based-Routing, SQM) and will report back if I find any problem. For now, it's still behind my current main router, but I intend to set it up as main router once I finish all the intended configuration.
In the meantime, kudos to everyone involved in bringing this out.

Looking forward to 21.02 release.

I have a problem with creating ip rules in 21.02rc2. The invert seems to be ignored in the following definition.

   uci set network.unmarkedThroughTable=rule
   uci set network.unmarkedThroughTable.mark="0x888"
   uci set network.unmarkedThroughTable.invert='1'
   uci set network.unmarkedThroughTable.lookup='200'

ip rule list shows
1: from all fwmark 0x888 lookup 200 (21.02rc2)
instead of the correct
1: not from all fwmark 0x888 lookup 200 (19.07.7)

@Torxgewinde with your tp-link archer c2600 v1 did you experience any high latency ping to say 192.168.1.1 before setting scheduler set to performance?

would be useful if you are able to re-test this behavior on both 21.02-SNAPSHOT and master...

if the same behavior is present (or 21.02-SNAPSHOT differs from master)... can you provide more info about device...

Where do I find 21.02-SNAPSHOT?

official

alternative (not viable for rc1/2 images)

Neither OpenWrt SNAPSHOT, r16936-5a66165cb1
nor OpenWrt 21.02-SNAPSHOT, r16170-144bf23e5a
did the invert properly. So broken in all three versions.

The router is a GL-MT300N-V2, which is based on a MediaTek MT7628AN

The problem is also visible on a TP Link c7 v2, which is ath79, so the problem is not architecture specific.

In case it is helpful I've created a bug tracker https://bugs.openwrt.org/index.php?do=details&task_id=3876

1 Like

that was quick...

fwiw... tested this on master@rpi4 and did not experience these issues...

Will the certificate generation process be updated so that it is Luci is compatible with chrome out of the box? -- jeremy

Luci is compatible with Chrome out of the box.

Let me ask my question more specifically. It is about a CERTIFICATE that Chrome says is inadequate. (I am not asking if Luci works with Chrome -- it does -- once you get past the invalid certificate). Here are the error messages:

  • This page is not secure (broken HTTPS).

  • Certificate - Subject Alternative Name missing

  • The certificate for this site does not contain a Subject Alternative Name extension containing a domain name or IP address.

  • This site is missing a valid, trusted certificate (net::ERR_CERT_INVALID).

It seems to me that Luci uHTTPd needs some extra fields, e.g. for Subject Alternative Name so that it can generate a certificate that Chrome will trust.

jeremy

OpenWrt can't provide a certificate that Chrome will trust, because it cannot be signed. To get a signed certificate you need a domain, and something like Let's Encrypt. But even if a domain could be generated on the fly (somerandomdomain.openwrt.org or something like that) it still could not work out of the box, because you need Luci to create a working WAN first, to be able to fetch a domain, and ask Let's Encrypt to sign the certificate. And then you should have to access your router via somerandomdomain.openwrt.org, and how would you know the domain?

1 Like

It looks like it is a problem with the busybox ip rule command itself in 21.02-rc2

root@2102rc2#  ip rule add not from all fwmark 0x888 lookup 239
ip: invalid argument 'not' to 'ip'

This works on 19.07, as well as Debian buster.

1 Like

makes sense... i'm using ip-full (works)...

1 Like

I did not really pay attention to that detail, but top of my head there was no such thing like a high latency ping.

It just crashed randomly and with the scheduler set to performance my issues vanished. I have three of those devices in operation 24/7 and for all it was "the fix" against reboots.

Mijzelf, thanks for your reply. I can see that perhaps "out of the box" is not possible. But perhaps there could be a "push a button" type possibility that is not far from reach. When I have the Luci uHTTPd page up, there is a button to push that generates a certificate, just not one that Chrome will accept. The form looks like what is below. Why not add the necessary fields to the form to make a compliant certificate, rather than a non-compliant one?

image

jeremy
p.s. I tried to follow the steps in this script but kept running into errors with the script that I could not understand. I could not get the script to run to completion.

No, the hen and egg problem remains - and you would still have to provide your own domain name (OpenWrt providing one for you 'for-free' not only would require a hell of a lot administriva and infrastructural issues (both in soft- and hardware), but also a legal can of worms, so that's not going to happen). You'd also need a working rtc on your router (kind of difficult to generate valid certificates without time), working WAN connectivity before connecting to your router the first time (telepathic credential exchange for PPPoE or other WAN protocols sounds kind of difficult) and a means to communicate the 'generated' (again, not going to happen) domain name for you to connect to (does your router have a display?). Also what happens if you haven't used your router for a while, powered-off, certificate expired, WAN now needs different access credentials, etc. --> fun.

Having a valid SSL certificate, signed by an officially recognized CA sounds all great, until you dig into the details of how to make this working.

If you still want to do it, luci-app-acme exists, but you need to configure it first - and even then it doesn't work reliably enough, but feel free to try it yourself or to add new features or fix its bugs.

1 Like

(I guess it should be in its own thread as it has nothing specific to the release candidate)

There are 2 different, although related, concerns here:

  • Compliance to RFC 6125, which Chromium now enforces (see the initial discussion). Basically, it does no longer accept the use of the commonName field of a certificate for "matching" the entity to be validated, and instead requires the use of the subject alternative name extension (OID 2.5.29.17, see RFC 5280). The gist is that the commonName field is an unstructured text field, as opposed to OID 2.5.29.17.
    In that regard, OpenWrt/LuCI could indeed be enhanced/modified to use the subject alternative names (SAN) extension, but it would need to add some logic for handling multiple values and to differentiate between domain name and IP address (because subject alternative names is can contains different name types), as specified in the RFC (see dNSName and iPAddress):
   GeneralName ::= CHOICE {
        otherName                       [0]     OtherName,
        rfc822Name                      [1]     IA5String,
        dNSName                         [2]     IA5String,
        x400Address                     [3]     ORAddress,
        directoryName                   [4]     Name,
        ediPartyName                    [5]     EDIPartyName,
        uniformResourceIdentifier       [6]     IA5String,
        iPAddress                       [7]     OCTET STRING,
        registeredID                    [8]     OBJECT IDENTIFIER }

The lack of SAN from an OpenWrt-generated certificate can be verified with the openssl x509 command:

$ echo | openssl s_client -connect 192.168.1.1:443 -showcerts | openssl x509 -noout -text
Can't use SSL_get_servername
depth=0 C = ZZ, ST = Somewhere, L = Unknown, O = OpenWrta54761ee, CN = OpenWrt
verify error:num=18:self signed certificate
verify return:1
depth=0 C = ZZ, ST = Somewhere, L = Unknown, O = OpenWrta54761ee, CN = OpenWrt
verify return:1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            5f:17:6f:30:92:9e:f3:f7:4a:73:54:7b:27:3e:66:04
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: C = ZZ, ST = Somewhere, L = Unknown, O = OpenWrta54761ee, CN = OpenWrt
        Validity
            Not Before: May 26 10:17:03 2021 GMT
            Not After : May 27 10:17:03 2023 GMT
        Subject: C = ZZ, ST = Somewhere, L = Unknown, O = OpenWrta54761ee, CN = OpenWrt
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:06:da:44:fa:ba:20:e3:18:7c:78:65:eb:ba:36:
                    9f:20:6f:3f:0f:f5:2e:98:79:18:4e:c5:32:a7:3c:
                    ee:b1:07:fc:7a:93:9c:dc:17:7c:5e:e2:3d:fe:ad:
                    7e:32:28:53:22:b0:18:bd:18:80:69:c3:a1:0d:2c:
                    26:ee:df:6d:e0
                ASN1 OID: prime256v1
                NIST CURVE: P-256
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:6a:df:ef:77:7a:54:a3:3b:f4:71:e3:ec:bd:de:
         32:47:30:a9:78:02:db:48:b2:9f:68:4c:e1:a5:89:ab:16:5f:
         02:20:21:19:29:42:df:60:12:7e:1c:5e:3a:ee:0a:73:f2:e0:
         77:13:66:93:c2:7d:3d:dc:32:09:19:2a:11:fe:bb:c5
  • The other concern is PKIX trust chain validation, which is outside the scope self-signed certificate generation feature captured by the screenshot from roschelle63. As highlighted by
    Mijzelf/slh, it is "doomed" to fail by the very nature of self-signed certificates (unless you somehow import the provisioned certificate into your OS/browser CA store).

As with most kinds of security-related checking, should any of the underlying validation fail, the end result is to fail the global validation, and in the case of a browser, show a security warning.

So the problem becomes: should OpenWrt self-signed certificate generation follow RFC 6125 and put the hostname and/or IP address in SAN, knowing that fixing that issue will not address the overall concern of browser warning (because trust validation will fail)?

See also:

1 Like

Since upgrading from 21.02.0rc1 to rc2 on my tplink c2600 I have got random reboots - every og every second day. It is not clear to me, if it is related to huge trafic or any other load.

Some comment that installing and enabling irqbalance helps prevent random reboots.