FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

125
Enhancing ssh Configuration David Proffitt Janet NOC FLOSS Spring 2015 York

Transcript of FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Page 1: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Enhancing ssh Configuration

David ProffittJanet NOC

FLOSS Spring 2015York

Page 2: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

(More fun with ssh config)

Page 3: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

~/.ssh/config~/.ssh/authorized_keys/etc/ssh/sshd_config

Page 4: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

examples Debian specific

should work with RH, FreeBSD, solaris, MacOS ...

Page 5: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Client options

Page 6: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh -X -v -l bill -i ~/.ssh/yorkkey -4 york.domain.net

Page 7: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

~/.ssh/config

Page 8: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

doesn't exist by default

Page 9: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

overides defaults from /etc/ssh/ssh_config

Page 10: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

1. command line options

2. user-specific file

3. system-wide file

Page 11: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host Aliases

Page 12: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Convenient text labels

Page 13: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host york

Page 14: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host yorkHostName york.domain.net

Page 15: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host yorkHostName 123.45.67.89

Page 16: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh york.domain.net(assumes current user name)

Page 17: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh -l bill york.domain.net

Page 18: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh [email protected]

Page 19: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host yorkUser bill

Page 20: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh york

Page 21: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Multiple aliases are possible

Page 22: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

host york,web

Page 23: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host yorkUser ben

Page 24: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host brightonUser bill

Page 25: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host newcastlePort 1234

Page 26: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host yorkUser ben

IdentityFile /home/bill/.ssh/yorkkey

Page 27: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ForwardAgent yes(Use with Caution)

Page 28: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Protocol 2

Page 29: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AddressFamily inet

Page 30: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

PubkeyAuthentication no

Page 31: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ForwardX11 yes(assuming allowed on server)

Page 32: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ServerAliveInterval 120

Page 33: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Wildcards

Page 34: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host *

Page 35: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Host *user bill

Page 36: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Any configuration value is only changed the first time it is set.

man ssh

Page 37: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Thus, host-specific definitions should be at the beginning of theconfiguration file, and defaults at the end.

Page 38: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh -v yorkOpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013debug1: Reading configuration data /home/bill/.ssh/configdebug1: /home/bill/.ssh/config line 19: Applying options for *debug1: /home/bill/.ssh/config line 363: Applying options for yorkdebug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to york.ja.net [123.45.67.89] port 22.debug1: Connection established.

Page 39: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ControlingKeyAccess

Page 40: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

~/.ssh/authorized_keys

Page 41: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh-keygen -f ~/.ssh/yorkkey

Page 42: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh-keygen -f yorkkeyGenerating public/private rsa key pair.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in yorkkey.Your public key has been saved in yorkkey.pub.The key fingerprint is:d6:63:83:d3:c1:ba:cc:17:9a:e6:04:cf:1f:c1:30:cf bill@brightonThe key's randomart image is:+--[ RSA 2048]----+| || . || o o || @ . || . S E || B * = || @ o || + o . || . . |+-----------------+

Page 43: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

yorkkeyyorkkey.pub

Page 44: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

-rw------- 1 bill bill 1.8K Mar 23 16:22 yorkkey

Page 45: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

cat yorkkey.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9pNHNuFYp0kKYtxmmKs20bgBhMdj24U7KuWz6KbuMaIrgCib69z3uoYuD3WYiYoUvoB00M5zqZgC3M0f3+4Y5iXJpKnmaHFf4fpFz2Zru6WQmOyhnhvWMDQJm9nty9w6JoP2GM5bqZKGNzOLtkfPf3e26QliCKdrQzgFmlviFultSQU8/kPxxhFlu4JjwyRzlqCpMX/Ltr8w/fgmBd15NZqYRfJnU/tCjlLim9X+0FND/hKz6zabmNUcJe3gkyPb7noadevnKJtS3K+RPCivgT51lf77TBb398H4xNcoVTCRXBthC1PBmoCt1stwfYcM4JTXoe3henWT5ViGAyFyV bill@brighton

Page 46: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

default comment user@host

Page 47: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh-copy-id -i ~/.ssh/yorkkey york

Page 48: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

~/.ssh/authorized_keys

Page 49: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

You can add key specific options to the beginning of each line (options separated by commas)

Page 50: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from=

Page 51: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from="123.45.67.89"

Page 52: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from="123.45.67.89/24"

Page 53: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from="1234:560:0:70::89"

Page 54: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from="123.45.67.89,1234:560:0:70::89"

Page 55: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from="brighton.domain.net"

Page 56: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from="*.domain.net"

Page 57: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

from="!*.brighton.domain.net,*.domain.net"

Page 58: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

no-agent-forwarding

Page 59: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

no-port-forwarding

Page 60: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

no-pty

Page 61: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

no-X11-forwarding

Page 62: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

permitopen="localhost:1234"

Page 63: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

command="command"

Page 64: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

environment="PATH=/bin:/usr/bin/"

Page 65: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

debug1: Remote: Bad options in /home/bill/.ssh/authorized_keys file, line 2: fron="123.45.67.89,1234:567:8:90::12" ssh-rsa AAAA

Page 66: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Server options

Page 67: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

sshd_config

Page 68: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

/etc/ssh/sshd_config

Page 69: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Requires restart of sshd

Page 70: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

/etc/init.d/ssh

Page 71: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

try-restart

Page 72: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

sshd -t

Page 73: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

OOB access?ILOM etc.

Page 74: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Defaults included as comments

Page 75: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

PermitRootLogin no

Page 76: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

StrictModes

Page 77: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

X11Forwarding

Page 78: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AgentForwarding

Page 79: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

PasswordAuthentication

Page 80: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

UsePAM yes

Page 81: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Only allow specific users

Page 82: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowUsersDenyUsers

Page 83: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowUsers

Page 84: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowUsers bill

(exclusive)

Page 85: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowUsers bill ben

Page 86: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowUsers [email protected] bill@1234:567:0:80::11

Page 87: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowUsers [email protected] AllowUsers bill@1234:567:0:80::11

Page 88: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowGroups

Page 89: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

AllowGroups sshussers

Page 90: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Standard uxix groups

/etc/group

Page 91: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Standard admin tools for managing group membership

no need to keep restarting sshd

Page 92: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Combining rules

Page 93: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Deny then allow

Page 94: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

DenyUsersAllowUsersDenyGroupsAllowGroups

Page 95: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Specific Overrides

Page 96: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match Operator

Page 97: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Must be at the end of the file

Page 98: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

PasswordAuthentication no...Match User bill PasswordAuthentication yes

Page 99: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match Group

Page 100: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match !Group

Page 101: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match Address

Page 102: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match Address 123.456.789.10 PasswordAuthentication yes

Page 103: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match Host brighton.example.net

Page 104: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match User trusty Address 123.45.67.* X11Forwarding yes

Page 105: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match User nagiosPasswordAuthentication noRSAAuthentication yesPubkeyAuthentication yesBanner none

(Banner may break some automated logins)... is your shell clean

Page 106: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

related options

Page 107: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

chroot sftp

(similar to proftpd)

Page 108: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Subsystem sftp /usr/lib/openssh/sftp-server

Page 109: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Subsystem sftp internal-sftp

Page 110: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Match group sftponly X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -u 0002 ChrootDirectory %h

Page 111: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Also possible to jail shell accountsbut needs static shell

Page 112: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Rate Limiting

Page 113: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

MaxStartups 10

Page 114: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

MaxStartups 10:30:60

Page 115: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Troubleshooting

Page 116: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

SyslogFacility AUTHLogLevel INFO

Page 117: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

LogLevel DEBUG

Page 118: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ssh -vvv

Page 119: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

ben@brighton:~$ ssh -v yorkOpenSSH_6.xxx Debian-4+deb7u2, OpenSSL 1.2.3 12 Feb 1804debug1: Reading configuration data /home/ben/.ssh/configdebug1: /home/ben/.ssh/config line 12: Applying options for *debug1: /home/ben/.ssh/config line 456: Applying options for yorkdebug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to york.domain.net [123.456.78.9] port 22.debug1: Connection established.debug1: identity file /home/ben/.ssh/yorkkey type 1debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048debug1: identity file /home/ben/.ssh/yorkkey-cert type -1debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-4+deb7u2debug1: match: OpenSSH_6.0p1 Debian-4+deb7u2 pat OpenSSH*debug1: Enabling compatibility mode for protocol 2.0debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2debug1: SSH2_MSG_KEXINIT sentdebug1: SSH2_MSG_KEXINIT receiveddebug1: kex: server->client aes128-ctr hmac-md5 nonedebug1: kex: client->server aes128-ctr hmac-md5 nonedebug1: sending SSH2_MSG_KEX_ECDH_INITdebug1: expecting SSH2_MSG_KEX_ECDH_REPLYdebug1: Server host key: RSA 12:34:56:78:12:34:56:78:90:12:34:56:78:90debug1: Host 'york.domain.net' is known and matches the RSA host key.debug1: Found key in /home/ben/.ssh/known_hosts:123debug1: ssh_rsa_verify: signature correctdebug1: SSH2_MSG_NEWKEYS sentdebug1: expecting SSH2_MSG_NEWKEYSdebug1: SSH2_MSG_NEWKEYS receiveddebug1: Roaming not allowed by serverdebug1: SSH2_MSG_SERVICE_REQUEST sentdebug1: SSH2_MSG_SERVICE_ACCEPT received====================================This is a private systemUnauthorised access is prohibited!All access attempts are logged====================================debug1: Authentications that can continue: publickey,passworddebug1: Next authentication method: publickeydebug1: Offering RSA public key: /home/ben/.ssh/yorkkeydebug1: Server accepts key: pkalg ssh-rsa blen 279debug1: Authentication succeeded (publickey).Authenticated to york.domain.net ([123.456.78.9]:22).debug1: channel 0: new [client-session]debug1: Requesting [email protected]: Entering interactive session.debug1: Requesting authentication agent forwarding.debug1: Sending environment.debug1: Sending env LANG = en_GB.UTF-8Linux york 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 Welcome to york.domain.net

You have mail.Last login: Fri Feb 6 14:24:43 2015 from brighton.domain.netben@york:~$

Page 120: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

/var/log/auth.log

Page 121: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

or check syslog config

Page 122: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Feb 6 15:47:18 york sshd[12345]: User bill from brighton.domain.net not allowed because not listed in AllowUsers

Page 123: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Feb 6 15:47:29 york sshd[12345]: Failed password for invalid user bill from 123.45.67.89 port 45678 ssh2

Page 124: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

Questions?

Page 125: FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

David Proffitt FLOSS Spring 2015

York