Top Banner
Automating Enterprise Wireless Deployments Macsysadmin 2013 Zack Smith @acidprime Thursday, September 19, 13
84

Automating Enterprise Wireless Deployments

Oct 17, 2014

Download

Technology

Wireless security has been a hot topic over the last few years. Balancing security with deployment concerns can cause some sites to be less secure then they should be.
This session will cover the deployment of wireless security in large organizations and automation techniques to deploy 802.1x authentication with Mac OS X .
Focus on Active Directory and Microsoft's IIS certificate portal as well as Open Source alternatives will be covered.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Automating Enterprise Wireless Deployments

Automating Enterprise Wireless Deployments

Macsysadmin 2013

Zack Smith@acidprime

Thursday, September 19, 13

Page 2: Automating Enterprise Wireless Deployments

Thanks to:

Andrew Seago @andrewseago

Arek Sokol @macbrained

Matt Johnson@macitmatt

Jason Bush@jhbush1973

(Some other people at Apple)Thursday, September 19, 13

Page 3: Automating Enterprise Wireless Deployments

Why wireless security?

Thursday, September 19, 13

Page 4: Automating Enterprise Wireless Deployments

Why wireless security?

Thursday, September 19, 13

Page 5: Automating Enterprise Wireless Deployments

Wireless standards

•WEP (Why bother)

•WPA/WPA2 (Personal)

•WPA/WPA2 (Enterprise)

Thursday, September 19, 13

Page 6: Automating Enterprise Wireless Deployments

Manual Entry Sucks

Thursday, September 19, 13

Page 7: Automating Enterprise Wireless Deployments

networksetup differences # Leopard Code if osVersion['minor'] == LEOP: leopardRemoveWireless(network) # Snow Leopard Code if osVersion['minor'] == SNOW: snowLeopardRemoveWireless(network) # Lion code if osVersion['minor'] == LION: lionRemoveWireless(network) # Mountain Lion Code if osVersion['minor'] == MLION: lionRemoveWireless(network)

Thursday, September 19, 13

Page 8: Automating Enterprise Wireless Deployments

Remove or Add Networks wifiutil --plist="settings.plist"

Thursday, September 19, 13

Page 9: Automating Enterprise Wireless Deployments

Remove or Add Networks wifiutil --plist="settings.plist"

Thursday, September 19, 13

Page 10: Automating Enterprise Wireless Deployments

Remove or Add Networks wifiutil --plist="settings.plist"

Thursday, September 19, 13

Page 11: Automating Enterprise Wireless Deployments

Passwords are a problem not a solution

Thursday, September 19, 13

Page 12: Automating Enterprise Wireless Deployments

Passwords are a problem not a solution

Thursday, September 19, 13

Page 13: Automating Enterprise Wireless Deployments

Three A’s

•Authentication

•Authorization

•Auditing

Thursday, September 19, 13

Page 14: Automating Enterprise Wireless Deployments

Usernames and Passwords

Thursday, September 19, 13

Page 15: Automating Enterprise Wireless Deployments

WPA2 Example wifiutil --username=zsmith --password='d0gc4t' --plist=settings.plist

Thursday, September 19, 13

Page 16: Automating Enterprise Wireless Deployments

10.5 / 10.6 Plist Manipulation/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist

plist['KnownNetworks'][guid]['SSID_STR'] = networkDict['ssid'] plist['KnownNetworks'][guid]['SecurityType'] = networkDict['sect']

Thursday, September 19, 13

Page 17: Automating Enterprise Wireless Deployments

10.7 + Profiles

Thursday, September 19, 13

Page 18: Automating Enterprise Wireless Deployments

if networkDict['type'] == 'WPA2 Enterprise': # Generate the profile exportLionProfile = genLionProfile(networkDict) arguments = [ profiles, "-I", "-v", "-f", '-F', exportLionProfile ] profilesExecute(arguments) # Removing the temp profile os.remove(exportLionProfile)

Thursday, September 19, 13

Page 19: Automating Enterprise Wireless Deployments

Demo: Self Service Portal

Thursday, September 19, 13

Page 20: Automating Enterprise Wireless Deployments

Demo: PasswordUtility

Thursday, September 19, 13

Page 21: Automating Enterprise Wireless Deployments

Issues with User authentication

Thursday, September 19, 13

Page 22: Automating Enterprise Wireless Deployments

Issues with User authentication

•Password rotation

Thursday, September 19, 13

Page 23: Automating Enterprise Wireless Deployments

Issues with User authentication

•Password rotation

•Help Desk password changes

Thursday, September 19, 13

Page 24: Automating Enterprise Wireless Deployments

Issues with User authentication

•Password rotation

•Help Desk password changes

•Mass password changes

Thursday, September 19, 13

Page 25: Automating Enterprise Wireless Deployments

Using Machine Password

dsconfigad -passinterval 0Thursday, September 19, 13

Page 26: Automating Enterprise Wireless Deployments

Auto Enrollment

Thursday, September 19, 13

Page 27: Automating Enterprise Wireless Deployments

Auto Enrollment

Thursday, September 19, 13

Page 28: Automating Enterprise Wireless Deployments

Certificite Authority Web Enrollment

Thursday, September 19, 13

Page 29: Automating Enterprise Wireless Deployments

Windows Integrated Authentication

• SPNEGO

• Kerberos

• curl --negotiate

Thursday, September 19, 13

Page 30: Automating Enterprise Wireless Deployments

Windows Integrated Authentication

• SPNEGO

• Kerberos

• curl --negotiate

Thursday, September 19, 13

Page 31: Automating Enterprise Wireless Deployments

SPNEGO Negotiation

•reverse DNS

•time

•Able to contact KDC

curl win-7po3b92m2fp.wallcity.org

Thursday, September 19, 13

Page 32: Automating Enterprise Wireless Deployments

ca.ad.com/certsrv

Thursday, September 19, 13

Page 33: Automating Enterprise Wireless Deployments

ca.ad.com/certsrv

Thursday, September 19, 13

Page 34: Automating Enterprise Wireless Deployments

Certificate templates

• http://technet.microsoft.com/en-us/library/cc730826(v=ws.10).aspx

Thursday, September 19, 13

Page 35: Automating Enterprise Wireless Deployments

Certificate templates

• http://technet.microsoft.com/en-us/library/cc730826(v=ws.10).aspx

Thursday, September 19, 13

Page 36: Automating Enterprise Wireless Deployments

RADIUS Testing

• radtest user password rad.ad.com 0 sharedscret

• radtest -t mschap user password rad.ad.com 0 sharedscret

Thursday, September 19, 13

Page 37: Automating Enterprise Wireless Deployments

Access Certificate Templates

• Replicated via Active Directory

• Access control lists for Certificate Templates ( different then RADIUS)

Thursday, September 19, 13

Page 38: Automating Enterprise Wireless Deployments

Machine vs User template

curl -d "CertAttrib=CertificateTemplate:User%20Certificate"...

Thursday, September 19, 13

Page 39: Automating Enterprise Wireless Deployments

Machine vs User template

curl -d "CertAttrib=CertificateTemplate:User%20Certificate"...

Thursday, September 19, 13

Page 40: Automating Enterprise Wireless Deployments

Submit a CSR

curl -d "CertRequest=${ENCODED_CSR}"...

Thursday, September 19, 13

Page 41: Automating Enterprise Wireless Deployments

Submit a CSR

curl -d "CertRequest=${ENCODED_CSR}"...

Thursday, September 19, 13

Page 42: Automating Enterprise Wireless Deployments

Machine TGT

/usr/bin/kinit -k M-084737$Thursday, September 19, 13

Page 43: Automating Enterprise Wireless Deployments

LDAP

TGTHTTP

Thursday, September 19, 13

Page 44: Automating Enterprise Wireless Deployments

LDAP

TGT HTTP

Thursday, September 19, 13

Page 45: Automating Enterprise Wireless Deployments

LDAP

TGT HTTP

Thursday, September 19, 13

Page 46: Automating Enterprise Wireless Deployments

LDAP

TGTcurl

HTTP

Thursday, September 19, 13

Page 47: Automating Enterprise Wireless Deployments

LDAP

TGT

curl

HTTP

Thursday, September 19, 13

Page 48: Automating Enterprise Wireless Deployments

LDAP

TGT

curl

HTTP

Thursday, September 19, 13

Page 49: Automating Enterprise Wireless Deployments

LDAP

TGT

curl

HTTP

Thursday, September 19, 13

Page 50: Automating Enterprise Wireless Deployments

LDAP

TGT

curlHTTP

Thursday, September 19, 13

Page 51: Automating Enterprise Wireless Deployments

LDAP

TGT

curlHTTP

Thursday, September 19, 13

Page 52: Automating Enterprise Wireless Deployments

LDAP

TGT

curlHTTP

Thursday, September 19, 13

Page 53: Automating Enterprise Wireless Deployments

Request ID

• "${CA_URL}/certnew.cer?ReqID=${REQ_ID}&Enc=b64"

• curl --negotiate -u:

• reverse DNS required for Kerberos Service Ticket

• replication of Domain Contollers

Thursday, September 19, 13

Page 54: Automating Enterprise Wireless Deployments

LDAP

curl HTTP

Thursday, September 19, 13

Page 55: Automating Enterprise Wireless Deployments

LDAP

curl HTTP

Thursday, September 19, 13

Page 56: Automating Enterprise Wireless Deployments

LDAP

curl HTTP

Thursday, September 19, 13

Page 57: Automating Enterprise Wireless Deployments

LDAP

curl HTTP

Thursday, September 19, 13

Page 58: Automating Enterprise Wireless Deployments

LDAP

curl HTTP

Thursday, September 19, 13

Page 59: Automating Enterprise Wireless Deployments

userCertificate attribute

dscl localhost read /Search/Computers/M-938747$ userCertificate

Thursday, September 19, 13

Page 60: Automating Enterprise Wireless Deployments

Convert from DER to PEM

•openssl

•dscl

•xxd or just binascii in python

Thursday, September 19, 13

Page 61: Automating Enterprise Wireless Deployments

LDAP

dscl

Thursday, September 19, 13

Page 62: Automating Enterprise Wireless Deployments

LDAP

dscl

Thursday, September 19, 13

Page 63: Automating Enterprise Wireless Deployments

LDAPdscl

Thursday, September 19, 13

Page 64: Automating Enterprise Wireless Deployments

LDAP

dscl

Thursday, September 19, 13

Page 65: Automating Enterprise Wireless Deployments

security

Thursday, September 19, 13

Page 66: Automating Enterprise Wireless Deployments

LDAP

Thursday, September 19, 13

Page 67: Automating Enterprise Wireless Deployments

LDAP

Thursday, September 19, 13

Page 68: Automating Enterprise Wireless Deployments

LDAP

Thursday, September 19, 13

Page 69: Automating Enterprise Wireless Deployments

LDAP

Thursday, September 19, 13

Page 70: Automating Enterprise Wireless Deployments

LDAP

Thursday, September 19, 13

Page 71: Automating Enterprise Wireless Deployments

LDAP

Thursday, September 19, 13

Page 72: Automating Enterprise Wireless Deployments

LDAP

Thursday, September 19, 13

Page 73: Automating Enterprise Wireless Deployments

ADCertificatePayloadPlugin

• Introduces on 10.7

• Supports Machine TGT style authentication

• Limited scope of OS Support deprecated in favor of DCE/RPC

Thursday, September 19, 13

Page 74: Automating Enterprise Wireless Deployments

DCE/RPC Distributed Computing Environment / Remote Procedure Call

Thursday, September 19, 13

Page 75: Automating Enterprise Wireless Deployments

To Do

•wifiutil --autoenroll curl

•wifiutil --autoenroll profile

Thursday, September 19, 13

Page 76: Automating Enterprise Wireless Deployments

Common Issues

• Machine joins with same Mac Address (join existing account)

• Certificate Expiration (set by template)

• eapolclient needs keychain ACL set in older operating systems

• security -k not honored in 10.7 or 10.8 ( Keys exportable )

Thursday, September 19, 13

Page 77: Automating Enterprise Wireless Deployments

Debugging

/System/Library/C/S/airport debug +AllUserland

LogLevel in com.apple.eap.profiles.plist

/var/log/eapolclient

http://pastie.org/pastes/265251

Thursday, September 19, 13

Page 79: Automating Enterprise Wireless Deployments

Puppet as a Certificate Authority

• puppet agent -t (submits the certificate signing request)

•puppet cert --sign agent.puppetlabs.com

•puppet cert --generate ipad.puppetlabs.com

Thursday, September 19, 13

Page 80: Automating Enterprise Wireless Deployments

StrongSWAN

Thursday, September 19, 13

Page 81: Automating Enterprise Wireless Deployments

Network Device Enrollment

Thursday, September 19, 13

Page 82: Automating Enterprise Wireless Deployments

Thursday, September 19, 13

Page 83: Automating Enterprise Wireless Deployments

Thursday, September 19, 13

Page 84: Automating Enterprise Wireless Deployments

WirelessConfighttp://tinyurl.com/bananas13

Thursday, September 19, 13