Date: Mon, 22 Jun 2009 23:35:45 -0600 From: Tim Judd <tajudd@gmail.com> To: Daniel Underwood <djuatdelta@gmail.com> Cc: freebsd-questions@freebsd.org Subject: Re: Best practices for securing SSH server Message-ID: <ade45ae90906222235m50f71ea2md2c04034aa58e6b8@mail.gmail.com> In-Reply-To: <b6c05a470906221816l4001b92cu82270632440ee8a@mail.gmail.com> References: <b6c05a470906221816l4001b92cu82270632440ee8a@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 6/22/09, Daniel Underwood <djuatdelta@gmail.com> wrote: > On a BSD box at work (at an extremely fast connection and static IP), > I run an SSH server. I am the only person who uses the server, but I > use it from some locations that are behind a dynamic IP (so I can't > set pf rules to filter by IP). I will always, however, use the same > laptop to connect to the server. Due to the speed and location of the > connection, it's a relatively high-risk target. > > What are some good practices for securing this SSH server. Is using a > stored key safer than a password in this instance? I have no > experience with port-knocking, but I'd appreciate some tips or > suggested beginning references... I welcome any and all advice. > > Note: I do require X11 forwarding (not sure whether that's relevant > information) > > TIA, > Daniel My remote ends are "dynamic" too, but since everywhere I go keeps the routers online 24/7, the IP is almost static. Here's my suggestion. I think it might work, by adding a small dns hit every packet to port 22 goes to the box. My config is similar table <knownIPs> const { 1.2.3.0/25 10.20.30.0/24 } <..standard rules..> pass in on $ext_if from {<knownIPs, ("my.dyndns.domain.org")} to port 22 ()'s get reevaluated every time the rule is evaluated (in this case, only packets to port 22) the ""'s resolve hostnames. So you pick yourself a dyndns hostname, use either a dyndns client or update it yourself, wait 60 seconds (ttl for dyndns.org), and your firewall will find your new remote IP. I do know, that if the rules list ""'s only, the hostname is resolved when pfctl loads the rules, but doesn't re-resolve it until the next time you load the rules. Kludgy workarounds are possible (cronjob that), etc. Because of this, the example above may resolve the dyndns hostname, then reevaluate the same IP at every evaluation of that rule.... hrm, may not work. Gotta test. I'll update within the week of my testing results.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ade45ae90906222235m50f71ea2md2c04034aa58e6b8>