[Verifying my OpenPGP key: openpgp4fpr:FED82F1C73FF53FB1EE9926336615E0FD12833CF]

  • 0 Posts
  • 2 Comments
Joined 4 years ago
cake
Cake day: February 18th, 2021

help-circle
  • The services should be able, to talk to each other via ssh?

    Or do you have groups of servers?

    How many we are talking about?

    They are all virtual servers?

    Where is the hub located?

    In our company we have many services and many servers. We are talking about hundrets of services and servers. Snd they are very secure.

    So we have the servers on a big esxi (more than one) in 3 datacenters.

    There is one jumphost (high available… several instances). Direct connection from our workstations to a server is not possible. We have to use this jumphost. Login on the jumphost is not possible, only for jumping (ssh option -J).

    On the jumphost is for each user the publickey from a hardwaretoken. (Yubikey, etoken, nitrokey, name it) on its user in authorized-keys file. Only one pubkey.

    So you are not able to jump over the jumphost to a server, without a valid hardwaretoken.

    A NAT-Rule gives each user a individual source-IP…

    Then you can see in auditlog on each server who did the shit… even if he made sudo su… the source-ip is individualized for each user.

    And services run in different subnets and VLAN without connection to each other. So only services can talk together, who must talk.

    Another server is an ansible machine. This can connect to every single server too and fo good and really bad things… so this ansible-machine and the jumphost are in a physically secured zone in the Datacenter.

    You need an extra permission and an extra physical key, to come to this machines…

    And if one Service gets compromized, maximum the servers in the same vlan or subnet can be affected too. And the servers, which got an extra firewall-hole.

    So… if you are afraid of using ssh in your environment…

    Use hardware-keys for the ssh privatekey. No softwarekeys! If machines need to talk together via ssh, make smallest possible jails with subnets or vlans around them. Think about allowed commands in ssh-config/authorized_keys file!!! Think about a jumphost and allow different users only machines which they need. Think about physically protection about the jumphost. Think about serverinitiated backups…

    👍