❌

Normale weergave

Distribution Release: Parrot 7.4

3 Oktober 2026 om 21:04
The DistroWatch news feed is brought to you by TUXEDO COMPUTERS. Parrot is a Debian-based, security-oriented distribution featuring a collection of utilities designed for penetration testing, computer forensics, reverse engineering, hacking, privacy, anonymity and cryptography. The project's latest release, version 7.4, includes several changes, including a new onboarding tool: "A new tool has been added to our collection -....
  •  

Top Stories: Apple Smart Home Launch on October 13, iPhone Duo Production Issues, and More

3 Oktober 2026 om 15:00
Things are getting crazy in the Apple rumor world, as even though the iPhone 18 Pro and several other products have only just launched and the iPhone Duo is right around the corner, there's even more to come imminently.


October 13 looks to be the date for an introduction of Apple's revamped smart home portfolio, including the home hub device we've been hearing about for ages. This week also saw word that Apple's supply chain is struggling to meet production yield goals for the iPhone Duo ahead of its launch, while iPhone 18 Pro owners are now getting a chance to put the devices through their paces, so read on below for all of the details!

Top Stories


Three New Apple Smart Home Products Coming on October 13


A couple of those leaked products above could be arriving very shortly, as Bloomberg's Mark Gurman says Apple will be introducing a trio of new smart home products on Tuesday, October 13.


Apple will reportedly debut its long-rumored smart home hub product, as well as the new HomePod mini and Apple TV models, and while he didn't specify how Apple will introduce them, signs are pointing to some sort of event.

Apple retail stores have reportedly also received confidential boxes that are marked "Do Not Open Until October 8" and which are likely to contain merchandising materials. It's unclear, however, if they are for the upcoming iPhone Duo launch or something related to the smart home product introduction.

Apple Smart Home Hub to Feature iMac G4-Style Design


Apple's long-rumored smart home hub will have an iMac G4-style design and a host of unique features, Bloomberg's Mark Gurman reports.


The smart home hub is said to feature a square 6-inch display, with variants that can be placed on a countertop or mounted on a wall. It features a single FaceTime camera on the front, with microphones and speakers in its connected base.

Leaks suggest the hub may be available in Silver, Space Gray, Starlight, and Rose Pink colors, and will be able to display user-customizable Photo Faces pulled from your photos library, memories, and shared albums, a feature that appears similar to what will be available for StandBy mode on the iPhone Duo.

iPhone Duo Reportedly Facing Production Problems Ahead of Launch


The iPhone Duo is reportedly facing production difficulties ahead of its October launch, with early output expected to be limited.


A person said to be close to Foxconn's supply chain told China's Jiemian News that final assembly yields for Apple's first foldable iPhone were only slightly above 60% as of September 17. The source said that, under Apple's current quality standards, it could take another six months to a year for the assembly line to reach a mature yield.

According to the source, Foxconn is repeatedly adjusting equipment, assembly processes, and production settings as it makes the iPhone Duo at scale. The source also said suppliers were waiting to see whether Apple would ease any quality requirements to accelerate production.

iPhone 18 Pro First Impressions: What Do You Think So Far?


It's been almost two weeks since the iPhone 18 Pro models launched, and we want to hear from MacRumors readers. What do you think of Apple's newest iPhones? If you upgraded from an older phone, was it worth it? What about upgrading from an iPhone 17 Pro? What problems are you running into? Anything you love so far?


MacRumors readers have already been sharing early opinions on the MacRumors forums, and there are interesting discussion threads to read through. For early reviews and hands-on images, make sure to check out the first impressions and photos thread.

Not everything has been perfect, however, as some users have been experiencing issues such as speaker crackling or popping while some iPhone 18 Pro Max users on AT&T in the U.S. have been having issues with cellular connectivity or eSIM provisioning.

Apple Planning to Launch Products Faster and More Often


John Ternus is marking one month as Apple CEO, and he is apparently undertaking efforts to restructure the company to accelerate product development and introduce new products more frequently, according to Bloomberg's Mark Gurman.


Ternus apparently wants Apple to "broaden its range of devices and create a leaner organization with a greater focus on engineering." One proposal under consideration is to rely less on Apple's traditional spring and fall product release cycles, and introduce new devices more quickly and throughout the year. Ternus has also purportedly indicated that Apple must become "more experimental" to remain competitive in the era of artificial intelligence.

MacRumors Newsletter


Each week, we publish an email newsletter like this highlighting the top Apple stories, making it a great way to get a bite-sized recap of the week hitting all of the major topics we've covered and tying together related stories for a big-picture view.

So if you want to have top stories like the above recap delivered to your email inbox each week, subscribe to our newsletter!
This article, "Top Stories: Apple Smart Home Launch on October 13, iPhone Duo Production Issues, and More" first appeared on MacRumors.com

Discuss this article in our forums

  •  

Vincent Bernat: Self-hosted HTTP tunnels with SSH and nginx

3 Oktober 2026 om 09:23

A friend wants to proofread your work-in-progress blog post, but its preview only runs on localhost:8080. Several tools can help. Some run as a commercial service, like ngrok or Cloudflare Quick Tunnels. Some are self-hostable but require a specific client, like frp or localtunnel. Some only require a plain SSH client but rely on a specific SSH server, like sish. Let’s implement a self-hosted solution with only OpenSSH and nginx!

$ ssh -R 0:localhost:8080 http-over-ssh
Allocated port 41535 for remote forward to localhost:8080
https://6J3jK1WmB15c6WmjW_X-Wg--1789928654@p41535.ssh.luffy.cx/

Basic setup

First, we forward connections from a port on a remote server to your local service:

$ ssh -N -R 0:localhost:8080 web02.luffy.cx
Allocated port 41535 for remote forward to localhost:8080

When you specify 0 as the remote port, the server allocates a free port. Then, we configure nginx to proxy requests from https://p41535.ssh.luffy.cx to http://127.0.0.1:41535:

server {
  listen 0.0.0.0:443 ssl ;
  listen [::0]:443 ssl ;
  server_name ~^p(?<port>\d\d\d\d\d)\.ssh\.luffy\.cx$;
  location / {
    proxy_pass http://127.0.0.1:$port;
  }
}

We also need to add DNS records for *.ssh.luffy.cx and get a wildcard certificate through Let’s Encrypt:

*.ssh.luffy.cx.               CNAME web02.luffy.cx.
ssh.luffy.cx.                 CAA   0 issuewild "letsencrypt.org"
_acme-challenge.ssh.luffy.cx  CNAME ssh.luffy.cx.acme.luffy.cx.

acme.luffy.cx is a zone hosted on Routeβ€―53. I use it for ACME DNS-01 challenges, both for wildcard certificates and for domains served by several web servers. In my case, NixOS gets the certificates automatically.

Access control

The port is the only β€œsecret”1 keeping the content confidential. Other forwarding solutions add a random string to the domain name to prevent an intruder from enumerating the possible values.

Thanks to ngx_http_secure_link_module, we can secure this setup a bit. This module computes a hash2 over a set of values, including a secret, and compares it with the hash from the request. The hash is base64-encoded, so we cannot put it in the domain name, which is case-insensitive. Instead, we put it in the URL as a username, along with its expiration timestamp:3

https://6J3jK1WmB15c6WmjW_X-Wg--1789928654@p41535.ssh.luffy.cx/en/blog
        ╰─────────┬──────────╯  ╰───┬────╯  ╰─┬─╯             ╰──┬───╯
                hash             expires    port               path

The client sends the username to the server with HTTP basic authentication. This works with most HTTP clients, including curl. Nginx exposes the username in the $remote_user variable. The module expects the hash and the expiration timestamp separated by a comma. We use a map directive to extract the two parts from $remote_user and join them with a comma.4 We also give the module the string to hash. It contains the expiration timestamp, the port, and a secret:

map $remote_user $httpssh_link {
  "~^([-_A-Za-z0-9]{22})--([0-9]+)$" "$1,$2";
}
server {
  # […]
  location / {
    secure_link $httpssh_link;
    secure_link_md5 "$secure_link_expires $port ZuPerS3cr3!";
  }
}

The module returns the status of the check in the $secure_link variable:

  • empty if the hashes do not match,
  • "0" if they match but the link has expired, or
  • "1" otherwise.

If the hash is incorrect or missing, we return a 401 error with a WWW-Authenticate header to ask for credentials. If the link has expired, we return a 410 error. We remove the Authorization header before forwarding the request and add a few directives to proxy WebSocket connections. Here is the complete configuration:5

map $remote_user $httpssh_link {
  "~^([-_A-Za-z0-9]{22})--([0-9]+)$" "$1,$2";
}
server {
  listen 0.0.0.0:443 ssl ;
  listen [::0]:443 ssl ;
  server_name ~^p(?<port>\d\d\d\d\d)\.ssh\.luffy\.cx$;
  location / {
    secure_link $httpssh_link;
    secure_link_md5 "$secure_link_expires $port ZuPerS3cr3!";
    if ($secure_link = "") {
      add_header WWW-Authenticate 'Basic realm="tunnel"' always;
      return 401;
    }
    if ($secure_link = "0") {
      return 410;
    }
    proxy_pass http://127.0.0.1:$port;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Authorization "";
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_buffering off;
    proxy_read_timeout 30m;
  }
}

I think you are now asking yourself the obvious question: β€œHow should I generate the hash?” Easy peasy!

$ expires=$(( $(date +%s) + 86400 ))
$ port=41535
$ secret='ZuPerS3cr3!'
$ printf '%s %s %s' "$expires" "$port" "$secret" \
>   | openssl md5 -binary \
>   | openssl base64 \
>   | tr +/ -_ | tr -d =
6J3jK1WmB15c6WmjW_X-Wg

Well, I suppose you are now saying: β€œVincent, this is not very convenient! I’ll stick with ngrok if you don’t mind.” Okay, I hear you. Let’s write a helper script.

Helper script

The main difficulty is finding the ephemeral port that OpenSSH allocates, as it does not appear in any environment variable.6 To work around this obstacle, we look for the ancestor sshd-session processes:7

pids=$(
  pid=$$
  while [ "$pid" -gt 1 ]; do
    line=$(ps -o comm=,pid=,ppid= -p "$pid")
    echo "$line"
    pid=${line##* }
  done | awk '$1 == "sshd-session" { printf "pid=%s,\n", $2 }'
)
if [ -z "$pids" ]; then
  echo "not an ssh session" >&2
  exit 1
fi

Then, we get the listening ports associated with these sshd-session processes:8

ports=$(sudo -n ss --listening --numeric --tcp --processes --no-header \
  | grep -F "$pids" \
  | awk '{ print $4 }' | awk -F: '{ print $NF }' \
  | sort -un)
if [ -z "$ports" ]; then
  echo "no forwarded port, use ssh -R 0:localhost:PORT" >&2
  exit 1
fi

Finally, we display the URLs and keep the session open:

lifetime=86400
secret='ZuPerS3cr3!'
expires=$(( $(date +%s) + lifetime ))
for port in $ports; do
  token=$(printf '%s %s %s' "$expires" "$port" "$secret" \
            | openssl md5 -binary \
            | openssl base64 \
            | tr +/ -_ | tr -d =)
  echo "https://$token--$expires@p$port.ssh.luffy.cx/"
done
sleep infinity

I install this script as http-over-ssh on the server and add this entry to my ~/.ssh/config:

Host http-over-ssh
  Hostname web02.luffy.cx
  RemoteCommand http-over-ssh
  ControlPath none

With this solution, I only rely on OpenSSH and nginx, two pieces of software already running on this server. One short command gives me a self-hosted tunnel and a URL to share. To try it, grab the complete helper script, which includes a few minor improvements. If you run NixOS, as any person of taste would, have a look at my http-over-ssh.nix instead. ❄️

Update (2026-10)

This post was widely discussed on Hacker News.

Update (2026-10)

I have since switched to Caddy, which does not include a module to check the validity of a URL. Instead, Caddy queries a local HTTP service written in Go through the forward_auth directive. As a bonus, this lets me put the token in the domain name.


  1. Since the kernel allocates it from the local port range, its entropy is low. Moreover, on Linux, we lose one more bit because the kernel favors odd ports when it picks a random free port.

    $ sysctl -n net.ipv4.ip_local_port_range \
    >   | awk '{print $1"β€”"$2" β‰ˆ "log($2-$1+1)/log(2)" bits"}'
    32768β€”60999 β‰ˆ 14.785 bits
    

    ↩

  2. The module relies on MD5. Its security is weak but good enough for this use. ↩

  3. We need an expiration date because a later session could reuse the port, and we have no way to detect this case. ↩

  4. The username could use a comma directly instead of a double dash. But some applications do not recognize the URL correctly, making it harder to share. ↩

  5. This configuration exposes any TCP port listening on 127.0.0.1 or 0.0.0.0 to anyone with the secret, bypassing most firewall rules. You could strengthen it by limiting the server_name regex to the ephemeral port range. ↩

  6. One SSH session can contain several tunnels, and the client can add or remove them at any time. This is unlike tun device forwarding (ssh -w), which gets its own SSH_TUNNEL environment variable. ↩

  7. Since OpenSSHβ€―9.8, sshd-session is the name of the helper handling the session. With older versions, look for sshd instead. ↩

  8. We need sudo because the sshd-session process dropped its privileges. The kernel then marks it as not dumpable, and its /proc/PID/fd directory belongs to root. Without access to this directory, ss cannot find which process owns a socket. ↩

  •  

Apple Says iPhone 18 Pro Max Users With AT&T Cellular Issue Need to Have Device Replaced

3 Oktober 2026 om 05:21
Apple today confirmed that a "small number" of iPhone 18 Pro Max users on the AT&T network have experienced an issue that causes the device to lose cellular service, thereby preventing phone calls, text messages, and data from working. Thousands of users complained about the issue across the Apple Support Community and other platforms.


Apple said it released iOS 27.0.1 earlier this week and an AT&T carrier settings update earlier today to help prevent more iPhone 18 Pro Max users from being impacted by this issue going forward. In a statement shared with MacRumors, Apple strongly encouraged all iPhone 18 Pro Max users to update to iOS 27.0.1 now. To install the update, open the Settings app on your iPhone and tap on General β†’ Software Update.

The carrier settings update for the iPhone 18 Pro Max will automatically download for AT&T users over the next 14 days, according to Apple. To manually trigger the update, users can open the Settings app and tap on General β†’ About.

Apple's full statement:
We have identified an issue affecting a small number of iPhone 18 Pro Max users on the AT&T network that may cause a device to lose service and be unable to make calls. We released iOS 27.0.1 earlier this week and strongly encourage all iPhone 18 Pro Max users to update now, and are also issuing a carrier settings update today. These updates together are meant to help prevent this issue from occurring.
Notably, Apple said that iPhone 18 Pro Max devices that have been affected by this cellular issue on the AT&T network cannot have service reactivated with a software update. Instead, Apple said the device must be replaced entirely, and it advises affected customers to contact Apple Support or AT&T, or visit an Apple Store or AT&T location.

Apple said it has only observed this issue with iPhone 18 Pro Max users on the AT&T network. No other iPhone models or carriers are known to be impacted.

Apple did not disclose the underlying cause of the issue. U.S. models of the iPhone 18 Pro Max rely on Qualcomm's Snapdragon X80 modem for cellular connectivity, while variants of the device sold in all other countries are equipped with Apple's custom C2 modem. It is unclear if this modem difference is a factor in this AT&T issue.

It is also unclear if there will eventually be an Apple Service Program dedicated to this issue. In the meantime, it sounds like Apple Stores will replace affected iPhone 18 Pro Max devices for free, so book an appointment with the Genius Bar if necessary.
Related Roundup: iPhone 18 Pro
Related Forum: iPhone

This article, "Apple Says iPhone 18 Pro Max Users With AT&T Cellular Issue Need to Have Device Replaced" first appeared on MacRumors.com

Discuss this article in our forums

  •  

Distribution Release: Qubes OS 4.3.2

3 Oktober 2026 om 00:03
The DistroWatch news feed is brought to you by TUXEDO COMPUTERS. The Qubes team has announced the release of Qubes OS 4.3.2, an updated build of the project's security-oriented operating system for single-user desktop computing: "We're pleased to announce the stable release of Qubes OS 4.3.2. This patch release aims to consolidate all the security updates and bug fixes....
  •  
❌