Zach Miller Condor Project Computer Sciences Department University of Wisconsin-Madison Securing Your Condor Pool With SSL.

Slides:



Advertisements
Similar presentations
HTTPS/SSL Oleh: Idris Winarno. Persiapan Pastikan repository debian # vim /etc/apt/sources.list deb etch main contrib non-freehttp://kebo.vlsm.org/debian.
Advertisements

Apache2 HTTPS. 1. Install webserver Apache # apt-get install apache2 2. Buat direktori untuk menyimpan file https # mkdir /var/www/secure 3. Instalasi.
Grid Security Infrastructure Tutorial Von Welch Distributed Systems Laboratory U. Of Chicago and Argonne National Laboratory.
SSL & SharePoint IT:Network:Applications. Agenda Secure Socket Layer Encryption 101 SharePoint Customization SharePoint Integration.
Presentation Two: Grid Security Part Two: Grid Security A: Grid Security Infrastructure (GSI) B: PKI and X.509 certificates C: Proxy certificates D:
Apache ssl Objectives Contents Practical Summary Setup Apache + ssl
Apr 2, 2002Mårten Trolin1 Previous lecture On the assignment Certificates and key management –Obtaining a certificate –Verifying a certificate –Certificate.
DGC Paris Community Authorization Service (CAS) and EDG Presentation by the Globus CAS team & Peter Kunszt, WP2.
16.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft® Windows® Server 2003 Active Directory Infrastructure.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 9: Planning and Managing Certificate Services.
CSI 400/500 Operating Systems Spring 2009 Lecture #20 – Security Measures Wednesday, April 29 th.
Foundations of Network and Computer Security J J ohn Black Lecture #17 Oct 9, 2009 CSCI 6268/TLEN 5550, Fall 2009.
03 December 2003 Public Key Infrastructure and Authentication Mark Norman DCOCE Oxford University Computing Services.
Customizing X.509 Certificate Fields Charles D. Short CS526 – S2008 University of Colorado, Colorado Springs Dr. C. Edward Chow 5/5/2008CDS - UCCS CS526.
Condor Project Computer Sciences Department University of Wisconsin-Madison Security in Condor.
Zach Miller Condor Project Computer Sciences Department University of Wisconsin-Madison Lockdown of a Basic Pool.
APACHE SERVER By Innovationframes.com »
SSL Technology Overview and Troubleshooting Tips.
CSCI 6962: Server-side Design and Programming
X.509 Certificate management in.Net By, Vishnu Kamisetty
IT:Network:Applications.  Single Key (Symmetric) encryption ◦ One “key” or passphrase used to encrypt and decrypt ◦ FAST – good for large amounts of.
Eucalyptus Virtual Machines Running Maven, Tomcat, and Mysql.
AQA Computing A2 © Nelson Thornes 2009 Section Unit 3 Section 6.4: Internet Security Digital Signatures and Certificates.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
Security Keys, Signatures, Encryption. Slides by Jyrki Nummenmaa ‘
Public-key Infrastructure. Computer Center, CS, NCTU 2 Public-key Infrastructure  A set of hardware, software, people, policies, and procedures.  To.
0Gold 11 0Gold 11 LapLink Gold 11 Firewall Service How Connections are Created A Detailed Overview for the IT Manager.
Onno W. Purbo openssl Onno W. Purbo
Hao Wang Computer Sciences Department University of Wisconsin-Madison Security in Condor.
Information Security Fundamentals Major Information Security Problems and Solutions Department of Computer Science Southern Illinois University Edwardsville.
1 Apache and Virtual Sites and SSL Dorcas Muthoni.
Cryptography Encryption/Decryption Franci Tajnik CISA Franci Tajnik.
Unit 1: Protection and Security for Grid Computing Part 2
Chapter 23 Internet Authentication Applications Kerberos Overview Initially developed at MIT Software utility available in both the public domain and.
Certificate-Based Operations. Module Objectives By the end of this module participants will be able to: Define how cryptography is used to secure information.
1 Securing Data and Communication. 2 Module - Securing Data and Communication ♦ Overview Data and communication over public networks like Internet can.
SE-2840 Dr. Mark L. Hornick1 Web Application Security.
Data Encryption using SSL Topic 5, Chapter 15 Network Programming Kansas State University at Salina.
Windows 2000 Certificate Authority By Saunders Roesser.
DIGITAL SIGNATURE. GOOD OLD DAYS VS. NOW GOOD OLD DAYS FILE WHATEVER YOU WANT – PUT ‘NA’ OR ‘-’ OR SCRATCH OUT FILE BACK DATED, FILE BLANK FORMS, FILE.
Shibboleth: Installation and Deployment Scott Cantor July 29, 2002 Scott Cantor July 29, 2002.
Who’s watching your network The Certificate Authority In a Public Key Infrastructure, the CA component is responsible for issuing certificates. A certificate.
Certificate Requests to HIP Jani Pellikka 80 th IETF Mar 27 th – Apr 1 st 2011 Prague, Czech Republic.
CPS Computer Security Tutorial on Creating Certificates SSH Kerberos CPS 290Page 1.
Zach Miller Computer Sciences Department University of Wisconsin-Madison Securing Condor.
Zach Miller Computer Sciences Department University of Wisconsin-Madison Securing Condor.
호스트 인증서 신청 방법 How to Request Host Certificate
Security fundamentals Topic 5 Using a Public Key Infrastructure.
Advanced Sendmail Part 1
Creating and Managing Digital Certificates Chapter Eleven.
Public / Private Key Example Dan Fleck CS 469: Security Engineering Coming up: Today 11.
CPS Computer Security Tutorial on Creating Certificates SSH Kerberos CPS 290Page 1.
1 Certification Issue : how do we confidently know the public key of a given user? Authentication : a process for confirming or refuting a claim of identity.
EGI-InSPIRE RI Grid Training for Power Users EGI-InSPIRE N G I A E G I S Grid Training for Power Users Institute of Physics Belgrade.
LAB#8 PKI & DIGITAL CERTIFICATE CPIT 425. Public Key Infrastructure PKI 2  Public key infrastructure is the term used to describe the laws, policies,
HTCondor Security Basics HTCondor Week, Madison 2016 Zach Miller Center for High Throughput Computing Department of Computer Sciences.
Trusted Organizations In the grid world one single CA usually covers a predefined geographic region or administrative domain: – Organization – Country.
GRID-FR French CA Alice de Bignicourt.
Prof. Reuven Aviv, Nov 2013 Public Key Infrastructure1 Prof. Reuven Aviv Tel Hai Academic College Department of Computer Science Public Key Infrastructure.
Connect and Replicate Securely: How to use MySQL with SSL Sheeri K. Cabral, MySQL Team Lead
HTCondor Security Basics
SSL Setup Making PROPworks® Applications Secure
Grid Security.
CIS5930 Internet Computing
HTCondor Security Basics HTCondor Week, Madison 2016
Created by : Ashish Shah, J.M. PATEL COLLEGE OF COMMERCE
Public-key Infrastructure
A Programmer’s Guide to Secure Connections
Created by : Ashish Shah, J.M. PATEL COLLEGE OF COMMERCE
Public-key Infrastructure
Presentation transcript:

Zach Miller Condor Project Computer Sciences Department University of Wisconsin-Madison Securing Your Condor Pool With SSL

Contents › Motivation for using SSL › Simple example using a single service credential › Creating and using a Certificate Authority to manage credentials › Condor configuration

Why use SSL? › Widely used and deployed › Flexible enough for securing communications between Condor daemons and also for authenticating users › Works on all platforms, allowing you to secure a mixed Windows/Unix pool

Basics: OpenSSL › OpenSSL is typically already installed on modern Linux systems › On more obscure flavors of Unix, and on Windows, you will likely need to install it yourself › Can be obtained here:

Basics: OpenSSL › Or, instead of installing OpenSSL everywhere, you can create your credentials on a Linux machine and securely move them to another machine where they will be used › Make sure the permissions are such that only the proper people can read the key!

Basics: SSL config › You can use the default from the openssl package or start with my simplified version here: › › Find the section [ req_distinguished_name ] and customize it: [ req_distinguished_name ] stateOrProvinceName_default = Wisconsin localityName_default = Madison 0.organizationName_default = University of Wisconsin -- Madison 1.organizationName_default = Computer Sciences Department organizationalUnitName_default = Condor Project

Single Credential › In this example, we will create a single key/certificate pair and use that to secure communications between Condor daemons › This is roughly equivalent to the pool password method – it is a shared secret stored in a file

Single Credentials › First, create the private key file: openssl genrsa -out cndrsrvc.key 1024 Generating RSA private key, 1024 bit long modulus e is (0x10001) chmod 600 cndrsrvc.key

Single Credential › Now, create a self-signed certificate openssl req -new -x509 -days key cndrsrvc.key \ -out cndrsrvc.crt -config openssl.cnf You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank Country Name (2 letter code) [US]: State or Province Name (full name) [Wisconsin]: Locality Name (eg, city) [Madison]: Organization Name (eg, company) [University of Wisconsin -- Madison]: Second Organization Name (eg, company) [Computer Sciences Department]: Organizational Unit Name (eg, section) [Condor Project]: Common Name (eg, YOUR name) []: Service Address []:

Single Credential › Inspect the certificate we made: openssl x509 -noout -text -in cndrsrvc.crt Certificate: Data: Version: 3 (0x2) Serial Number: 8c:94:7b:b1:f9:6a:bd:72 Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=Wisconsin, L=Madison, O=University of Wisconsin -- \ Madison, O=Computer Sciences Department, OU=Condor Project, CN=Service Validity Not Before: May 3 18:58: GMT Not After : Apr 30 18:58: GMT Subject: C=US, ST=Wisconsin, L=Madison, O=University of Wisconsin -- \ Madison, O=Computer Sciences Department, OU=Condor Project, CN=Service …

Single Credential › Great! Now what? › Create a map file  Condor needs to know how to map the distinguished name to an actual username. For example: /C=US/ST=Wisconsin/L=Madison/O=University of Wisconsin -- Madison/O=Computer Sciences Department/OU=Condor Project/CN=Service Should map to: condor › Configure the Condor daemons

Condor Mapfile › Simple format › Three fields (on one line)  Authentication method (SSL in this case)  Source DN  Mapped user SSL "/C=US/ST=Wisconsin/L=Madison/O=University of Wisconsin -- Madison/O=Computer Sciences Department/OU=Condor Project/CN=Service“ condor

condor_config › Add the following entries: AUTH_SSL_CLIENT_CAFILE = /path/to/cndrsrvc.crt AUTH_SSL_CLIENT_CERTFILE = /path/to/cndrsrvc.crt AUTH_SSL_CLIENT_KEYFILE = /path/to/cndrsrvc.key AUTH_SSL_SERVER_CAFILE = /path/to/cndrsrvc.crt AUTH_SSL_SERVER_CERTFILE = /path/to/cndrsrvc.crt AUTH_SSL_SERVER_KEYFILE = /path/to/cndrsrvc.key › And the map file: CERTIFICATE_MAPFILE = /path/to/condor_mapfile

condor_config › Tell condor to use SSL: SEC_DAEMON_AUTHENTICATION = REQUIRED SEC_DAEMON_AUTHENTICATION_METHODS = SSL › You will need to restart the daemons to enable the changes. › It’s probably easiest to do these changes while Condor is not running, and then start it.

That’s (mostly) It! › You have now enabled SSL authentication between all your Condor daemons › However, you should go a little further, and enable either encryption (if you need it) and/or integrity checks

condor_config › Enable integrity checks in either case SEC_DAEMON_INTEGRITY = REQUIRED › And enable encryption if you want it SEC_DAEMON_ENCRYPTION = REQUIRED › Again, make sure you restart condor after making these changes

Creating a CA › Using one credential for all hosts provides a decent level of security, but has limitations › Credential must be shared with all machines who will use it – what if you want to allow other machines to join your pool but you do not want to give them the credential?

Creating a CA › Also, you should not share the credential with users, as they would be able to impersonate the Condor services › The solution is to issue separate credentials for each entity that will be involved in authenticating

Creating a CA › This involves creating a Certificate Authority which is trusted by Condor › All certificates issued by the CA are then trusted › Certs can be easily issued for hosts and users

Creating a CA › Create the root key and cert which will be used to sign all other certificates › This key should be protected with a password (don’t forget it!!)

Creating a CA › Generate a key: openssl genrsa -des3 -out root-ca.key 1024 Generating RSA private key, 1024 bit long modulus e is (0x10001) Enter pass phrase for root-ca.key: Verifying - Enter pass phrase for root-ca.key:

Creating a CA › Now create a self signed certificate openssl req -new -x509 -days key root-ca.key -out root-ca.crt -config openssl.cnf Enter pass phrase for root-ca.key: CA PASSWORD HERE You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank Country Name (2 letter code) [US]: State or Province Name (full name) [Wisconsin]: Locality Name (eg, city) [Madison]: Organization Name (eg, company) [University of Wisconsin -- Madison]: Second Organization Name (eg, company) [Computer Sciences Department]: Organizational Unit Name (eg, section) [Condor Project]: Common Name (eg, YOUR name) []: ROOT CA Address []:

Creating a CA › Again, you can inspect the certificate openssl x509 -noout -text -in root-ca.crt Certificate: Data: Version: 3 (0x2) Serial Number: c7:99:e5:f7:c6:54:00:7a Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=Wisconsin, L=Madison, O=University of Wisconsin – Madison, O=Computer Sciences Department, OU=Condor Project, CN=ROOT CA …

Creating a CA › In the directory with the Root CA and openssl.cnf file, run these commands: touch ca.db.index echo 01 > ca.db.serial

Creating a Host Credential › Create the key and a signing request openssl req -newkey rsa:1024 -keyout \ host_omega.key -nodes -config \ openssl.cnf -out host_omega.req

Creating a Host Certificate Generating a 1024 bit RSA private key writing new private key to 'host_omega.key' You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank Country Name (2 letter code) [US]: State or Province Name (full name) [Wisconsin]: Locality Name (eg, city) [Madison]: Organization Name (eg, company) [University of Wisconsin -- Madison]: Second Organization Name (eg, company) [Computer Sciences Department]: Organizational Unit Name (eg, section) [Condor Project]: Common Name (eg, YOUR name) []: omega.cs.wisc.edu Address []:

Creating a Host Credential openssl ca -config openssl.cnf -out \ host_omega.crt -infiles host_omega.req Using configuration from openssl.cnf Enter pass phrase for./root-ca.key: Check that the request matches the signature Signature ok Certificate Details: … Certificate is to be certified until May 2 19:44: GMT (365 days) Sign the certificate? [y/n]: y

Creating a User Credential openssl req -newkey rsa:1024 -keyout zmiller.key -config openssl.cnf -out zmiller.req Generating a 1024 bit RSA private key writing new private key to 'zmiller.key' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: USER PASSWORD HERE You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank Country Name (2 letter code) [US]: State or Province Name (full name) [Wisconsin]: Locality Name (eg, city) [Madison]: Organization Name (eg, company) [University of Wisconsin -- Madison]: Second Organization Name (eg, company) [Computer Sciences Department]: Organizational Unit Name (eg, section) [Condor Project]: Common Name (eg, YOUR name) []: Zach Miller Address []:

Creating a User Credential openssl ca -config openssl.cnf -out zmiller.crt -infiles zmiller.req Using configuration from openssl.cnf Enter pass phrase for./root-ca.key: CA PASSWORD Check that the request matches the signature Signature ok Certificate Details: … Certificate is to be certified until May 2 19:51: GMT (365 days) Sign the certificate? [y/n]: y

Configuring Condor › Each host can now use it’s own credential (example for omega.cs.wisc.edu) AUTH_SSL_CLIENT_CAFILE = /path/to/root-ca.crt AUTH_SSL_CLIENT_CERTFILE = /path/to/host_omega.crt AUTH_SSL_CLIENT_KEYFILE = /path/to/host_omega.key AUTH_SSL_SERVER_CAFILE = /path/to/root-ca.crt AUTH_SSL_SERVER_CERTFILE = /path/to/host_omega.crt AUTH_SSL_SERVER_KEYFILE = /path/to/host_omega.key

Mapping Users › In the CERTIFICATE_MAPFILE, you can now add a rule to map all users by extracting the username from their address: SSL \1

Mapping Users › You could have one entry per user: SSL “C=US/ST=Wisconsin/L=Madison, O=University of Wisconsin – Madison/O=Computer Sciences Department/OU=Condor Project/CN=Zach zmiller SSL “C=US/ST=Wisconsin/L=Madison, O=University of Wisconsin – Madison/O=Computer Sciences Department/OU=Condor Project/CN=Todd tannenba … Etc.

Securing Everything › If all hosts and users have credentials, you can then enable SSL authentication for ALL communication, not just daemon-to- daemon. In the condor_config: SEC_DEFAULT_AUTHENTICATION = REQUIRED SEC_DEFAULT_AUTHENTICATION_METHODS = SSL

More Information › Ask me during this week! › You can find more detialed information, and examples using multi-level CAs here: