On Thu, Jul 27, 2023 at 10:28 AM lain. <l...@fair.moe> wrote:
>
> I have a pretty nifty network setup that allows me to host from home via
> WireGuard.
> But there's one thing I'm struggling with.
> Because for security reasons, I made it impossible for people outside
> the network to connect via SSH, but for Git to function properly, I need
> to allow SSH only for git@(DOMAIN) or git@(PUBLIC IP), and redirect that
> to my home network so they can do stuff like "git pull", "git push", and
> all the other fancy stuff.
>
> My pf.conf rules look like this:
> > pass in quick on wg0 proto tcp from 192.168.0.0/24 to any port 22
> > pass in on $externalinterface proto tcp from any to $externalip port 22 
> > rdr-to $internalip
> > block in quick on egress proto tcp from any to any port 22
>
> And my sshd_config:
> > AllowUsers lain@192.168.0.0/24
> > AllowUsers git@(DOMAIN)
> > AllowUsers git@(PUBLIC IP)
>
> Where exactly am I doing wrong here?

I suspect you're overthinking this.

Rather than preventing access altogether, turn off password
authentication and use SSH keys for authentication - for the git
accounts, change the shell to git-shell if you haven't already. That
way, bad faith actors can try all they want, they ain't gettin' in
unless they get a hold of someone's key, and even if they do, it's
likely a git key and the shell (barring any security vulns in git)
will prevent them from doing anything not git related.

-- 
Aaron Mason - Programmer, open source addict
I've taken my software vows - for beta or for worse

Reply via email to