Linux Virtual Server
Download
Report
Transcript Linux Virtual Server
Applying a Multi-level Security Mechanism
to a Network Address Translation Scheduler
Arthur McDonald
Computer Science Department
East Stroudsburg University
Outline
Introduction
Multi-Level Security Basics
Linux Virtual Servers
Proposed Algorithm
Implementation and Experiments
Results and Conclusions
Introduction
Recent Security Threats
Need to protect data on distributed systems
Linux Virtual Servers
Load Scheduling
Multi-Level Security
Multi-Level Security
Information with different sensitivities to be
stored on same system
Information is processed with users having
different security classes
–
Prevents users from accessing info for which they
are not cleared
Example on Next slide
MLS Example
Data assigned 4 security classes or levels:
–
–
–
–
Level 1 – CLASSIFIED access
Level 2 – SECRET access
Level 3 – UNCLASSIFIED access
Level 4 – No access
Clearances are hierarchical
MLS Properties – Access Control
Control what users can read, write or
execute files
System must also make decisions about
access control
Two types:
–
–
Discretionary Access Control (DAC)
Mandatory Access Control (MAC)
Discretionary Access Control
Restricts access based on the identity of the
user
Three basic types of access:
–
–
–
Read – User can open and view the data in
file/directory
Write – User can open and write data to the
file/directory
Execute – User can execute the file
Relevant only to executables
Discretionary Access Control
Owner makes access decisions
Typically three categories:
–
–
–
Self: Owner of the data
Group: A set of users on the system
Public: All users of the system
Mandatory Access Control
Used in systems with extremely sensitive
data
All objects (files, directories, etc…) and
subjects (users) are assigned a sensitivity
level.
Subject’s sensitivity level specifies objects it
has access to.
Mandatory Access Control
Two parts to label: Classification and a set of
categories
–
Classification is hierarchical
–
DOD uses Top Secret, Secret, Confidential and
Unclassified
Categories are non-hierarchical – represent areas
of information in the system
Subject with highest classification level may not mean
they are cleared to access all data
MLS Properties – Information Flow
Three Models:
–
–
–
Bell-LaPadula
Biba
Clark-Wilson
Bell-LaPadula Model
Linear model
User with security level b can READ objects
at level a iff a<=b
User at level b can write objects at level c iff
c>=b
Higher access can read from lower level and
lower access can write to higher levels
Insures data confidentiality
Bell LaPadula Model
Level d
Level c
Write access
only
Read-Write access
Level b
Level b
resources
Read access
only
Level a
Biba Model
Opposite of Bell-LaPadula
Users at level b can write to level a iff a<=b
and level b can read from level c iff c>=b
Insures data integrity
Biba Model
Level d
Level c
Read access
only
Read-Write access
Level b
Level b
resources
Write access
only
Level a
Clark Wilson Model
Similar to Biba, with one more constraint
Task is separated into duties
Ensures integrity rules are not disobeyed
Linux Virtual Servers
What is an LVS?
Why use them?
How is it done?
Linux Virtual Servers – What?
Cluster of computers connected by fast
network
Cluster “appears” to be a single machine
Service requests from incoming clients
–
HTTP, FTP, telnet, etc...
Minimum requirements
–
–
1 Director machine
2 or more Realservers
Linux Virtual Servers – What?
Client
Internet
Director
Network
Realserver 1
Realserver 2
Realserver N
Linux Virtual Servers – Why?
Need for fast, reliable servers
Three requirements:
–
–
–
Incremental Scalability
24x7 Availability
Cost-effectiveness
Linux Virtual Servers – Why?
“Old” way – single machine
–
–
Need to upgrade when load becomes too much
Add faster CPU, more RAM, other hardware…
–
Complex and expensive
New machine can also become overloaded
Linux Virtual Servers – Why?
LVS’ satisfy all the requirements
Scalability – Add/Remove machines to
cluster easily
Availability – Services are backed by multiple
machines – One goes down, not a problem
Cost effective – No “supercomputer” to
upgrade; simply add PCs
Linux Virtual Servers – How?
Network director and realservers together
–
–
Two IPs for director
–
–
Typically star topology network
Realservers are part of private network
Real IP: IP address for internal network
Virtual IP: Address that clients see
Services are assigned to the director, along
with port number and scheduling algorithm
Linux Virtual Servers – How?
Director waits for connections
Connection received:
–
Call scheduling function to determine what
realserver to forward data to
Three forwarding methods:
–
–
–
Direct Routing
IP Tunnelling
Network Address Translation
Linux Virtual Server – How?
Load Scheduling Algorithms
–
–
–
–
–
Round Robin
Weight Round Robin
Least Connection
Weighted Least Connection
Destination/Source Hash Scheduling
MLS Load Scheduling
Distribute load across realservers based on
security levels
Security level determined by client’s IP
address
Three security levels: A, B and No Access
Level A forwarded to Realserver 1
Level B forwarded to Realserver 2
No Access – Data is dropped
MLS Load Scheduling
Code developed based on LVS schdeuling
algorithms
Compiled directly into the kernel
–
Can also be compiled as a module
MLS Load Scheduling
Init, update and finished function
Two main functions:
–
–
ip_vs_mls_schedule
ip_vs_mls_get_security_level
MLS Load Scheduling
Problems:
–
–
File I/O in Kernel Space
Dotted decimal string to unsigned int conversion
of IP addresses
Implementation
Hardware:
–
Four Intel Pentium machines connected by hub
Software:
–
–
–
–
Director: Red Hat 7.0
Realserver 1: Red hat 7.0 kernel 2.2.16, Apache
Realserver 2: Mandrake 7.1, Apache
Client: Windows XP, Internet Explorer
Implementation
Installing LVS
–
–
–
–
–
–
Obtain “fresh” kernel from www.kernel.org
Patch kernel with the LVS code
Configure the kernel using xconfig
Compile and install modules
Compile kernel
Test the new kernel
Implementation
IPVSADM
–
–
–
Administration program for LVS
Used to set up service
Add realservers to LVS
Experiments
Attempt to connect to the realserver
–
–
–
Test Case 1 – Client IP address set to Level A
access
Test Case 2 – Client IP address set to Level B
access
Test Case 3 – Client IP address set to No Access
Future Work
Improve algorithm for scalability
Design an admin tool for easy
addition/deletion of client IP address/security
levels
Conclusions
Project is a good initial step in research
towards MLS in Linux Virtual Servers
More work needs to be done, especially in
the current global climate
Future looks bright for the LVS project