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

FLOSS UK DEVOPS Spring 2015 Enhancing ssh config

  • Upload
    dmp1304

  • View
    74

  • Download
    1

Embed Size (px)

Citation preview

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