Three Linux Security Basics



Similar documents
CONNECTING TO DEPARTMENT OF COMPUTER SCIENCE SERVERS BOTH FROM ON AND OFF CAMPUS USING TUNNELING, PuTTY, AND VNC Client Utilities

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

PARALLELS SERVER BARE METAL 5.0 README

BF2CC Daemon Linux Installation Guide

Remote Unix Lab Environment (RULE)

Ubuntu Linux Reza Ghaffaripour May 2008

Using Network Attached Storage with Linux. by Andy Pepperdine

How To Install Acronis Backup & Recovery 11.5 On A Linux Computer

RH033 Red Hat Linux Essentials or equivalent experience with Red Hat Linux..


PARALLELS SERVER 4 BARE METAL README

Using Red Hat Enterprise Linux with Georgia Tech's RHN Satellite Server Installing Red Hat Enterprise Linux

IT6204 Systems & Network Administration. (Optional)

System Area Manager. Remote Management

Nixu SNS Security White Paper May 2007 Version 1.2

Host Hardening. OS Vulnerability test. CERT Report on systems vulnerabilities. (March 21, 2011)

Acronis Backup & Recovery 10 Server for Linux. Quick Start Guide

Acronis Backup & Recovery 10 Server for Linux. Installation Guide

How To Run A Password Manager On A 32 Bit Computer (For 64 Bit) On A 64 Bit Computer With A Password Logger (For 32 Bit) (For Linux) ( For 64 Bit (Foramd64) (Amd64 (For Pc

Intelligent Power Protector User manual extension for Microsoft Virtual architectures: Hyper-V 6.0 Manager Hyper-V Server (R1&R2)

your Apple warranty; see There are two main failure modes for a mirrored RAID 1 set:

Dell UPS Local Node Manager USER'S GUIDE EXTENSION FOR MICROSOFT VIRTUAL ARCHITECTURES Dellups.com

Chapter 7. Firewalls

Introduction to Operating Systems

Acronis Backup & Recovery 10 Server for Linux. Update 5. Installation Guide

How to share folders on Windows 7 and Windows 8

Comparing and Contrasting Windows and Linux Forensics. Zlatko Jovanovic. International Academy of Design and Technology

Acronis Backup & Recovery 10 Server for Linux. Installation Guide

MATLAB Distributed Computing Server Installation Guide. R2012a

RecoveryVault Express Client User Manual

What is included in the ATRC server support

Centralized Mac Home Directories On Windows Servers: Using Windows To Serve The Mac

Nessus Agents. October 2015

Acronis Backup & Recovery 10 Server for Linux. Installation Guide

VMware Server 2.0 Essentials. Virtualization Deployment and Management

How To Upgrade A Websense Log Server On A Windows 7.6 On A Powerbook (Windows) On A Thumbdrive Or Ipad (Windows 7.5) On An Ubuntu (Windows 8) Or Windows

1. Product Information

Online Backup Client User Manual Linux

Online Backup Linux Client User Manual

Red Hat Linux Administration II Installation, Configuration, Software and Troubleshooting

Online Backup Client User Manual

TEL2821/IS2150: INTRODUCTION TO SECURITY Lab: Operating Systems and Access Control

Linux Security on HP Servers: Security Enhanced Linux. Abstract. Intended Audience. Technical introduction

NetSupport Manager v11

MICROSOFT EXAM QUESTIONS & ANSWERS

Acronis Backup & Recovery 11

ClearOS Network, Gateway, Server Quick Start Guide

How to enable Disk Encryption on a laptop

Niagara IT Manager s Guide

Transporter from Connected Data Date: February 2015 Author: Kerry Dolan, Lab Analyst and Vinny Choinski, Sr. Lab Analyst

Online Backup Client User Manual

The BackTrack Successor

Getting Started in Red Hat Linux An Overview of Red Hat Linux p. 3 Introducing Red Hat Linux p. 4 What Is Linux? p. 5 Linux's Roots in UNIX p.

ACL Compliance Director FAQ

Linux FTP Server Setup

Managed Backup Service - Agent for Linux Release Notes

LSN 10 Linux Overview

Allworx Installation Course

Nipper Studio Beginner s Guide

Universal Management Service 2015

Linux Operating System Security

How To Sniff Network Traffic

EVault Software. Course 361 Protecting Linux and UNIX with EVault

Viking VPN Guide Linux/UNIX

Secure Access Using VPN

This chapter describes how to set up and manage VPN service in Mac OS X Server.

Acronis Backup & Recovery 10 Workstation. Installation Guide

6445A - Implementing and Administering Windows Small Business Server 2008

Using BitLocker As Part Of A Customer Data Protection Program: Part 1

Administering and Maintaining Windows 7 Course 50292C; 5 Days, Instructor-led

Created By: 2009 Windows Server Security Best Practices Committee. Revised By: 2014 Windows Server Security Best Practices Committee

SmartFiler Backup Appliance User Guide 2.0

Penetration Testing LAB Setup Guide

Acronis Backup & Recovery 11.5

CS 356 Lecture 25 and 26 Operating System Security. Spring 2013

Linux Security Ideas and Tips

EVault for Data Protection Manager. Course 361 Protecting Linux and UNIX with EVault

Hosted Desktop for Business

Avira Update Manager User Manual

How To Install Acronis Backup And Recovery 10 On A Computer Or Network With A Hard Drive (For A Non-Profit)

Red Hat Certifications: Red Hat Certified System Administrator (RHCSA)

Installing Operating Systems

MS-50292: Administering and Maintaining Windows 7. Course Objectives. Required Exam(s) Price. Duration. Methods of Delivery.

HOUR 3. Installing Windows Server 2003

Quick Start Guide. Cerberus FTP is distributed in Canada through C&C Software. Visit us today at

AzMERIT Secure Browser Installation Manual For Technology Coordinators

Introweb Remote Backup Client for Mac OS X User Manual. Version 3.20

Shellshock Security Patch for X86

Quick Start Guide for VMware and Windows 7

LOCKSS on LINUX. CentOS6 Installation Manual 08/22/2013

Installing TeamCall Server on Mac OS X

Audit4 Installation Requirements

HOMEROOM SERVER INSTALLATION & NETWORK CONFIGURATION GUIDE

Acronis Backup & Recovery 10 Server for Windows. Installation Guide

1. Installation Overview

Small Systems Solutions is the. Premier Red Hat and Professional. VMware Certified Partner and Reseller. in Saudi Arabia, as well a competent

First Steps after Installation Guide

CRYPTOLogon Agent. for Windows Domain Logon Authentication. Deployment Guide. Copyright , CRYPTOCard Corporation, All Rights Reserved.

CDH installation & Application Test Report

Table of Contents. Cisco Cisco VPN Client FAQ

Transcription:

Jeff Drake 1 Three Linux Security Basics The desktop has been dominated by the Microsoft s Window s platform for many years. The server room, although not as much so, has been equally affected by Microsoft s server operating systems. This being said, an increasing interest and implementation of Linux as an alternative in the server room is becoming more common place as an alternative to both Microsoft and Unix operating systems. However, one of the issues in adopting Linux often cited is the lack of trained personnel to support the operating system since much of the IT training centers around Microsoft products for arguably understandable reasons. The author s IT department is one of those shops that is adopting Linux in its server room to go alongside Microsoft and Unix systems. A concern though is having a clear plan outlined to secure the Linux systems as they are implemented. This paper will outline basic security issues and concerns as they relate to Linux server security and tools and techniques that can be implemented to harden the system. Specifically, this paper will focus on the administrative user account, file system permissions and firewall configuration. Linux Adoption Linux is becoming increasingly popular as an alternative to Unix and Linux systems in the market place and once adopted few turn back. One recent survey of small-tomedium businesses (SMB) indicated that of those who had adopted Linux only 3% were intending to decrease their usage whereas a third intended to increase their usage of Linux in their environments. (Rist, 2008) Usage and adoption of Linux is not limited to SMBs. The New York Stock Exchange is currently investing a lot of IT resources into Linux as they build their NYSE Hybrid Market trading system. (Thibodeau, 2007) They have setup more than 200 Linux servers to support this new environment and the CIO sees this as a way to take advantage of technology advances as they happen and is partly based on a desire to limit their relationship with proprietary operating systems. At the other extreme, Linux has found its way into smaller educational environments such as High Point University in High Point, NC, where a media services librarian trying to create laptop access for patrons figured out how to install a Linux based firewall program called Smooth Wall onto antiquated hardware to protect the rest of the network from unsecured patron laptops. (Vidrine, 2005) From New York to High Point Linux is gaining increasing exposure for several reasons. Linux is stable, reliable, cost-effective, perhaps obscenely so in some cases, and provides x86 platform hardware compatibility which gives you a Unix-like operating system on non-proprietary hardware. Or, as in the case of High Point University, hardware that no longer had any value was pieced together to create a firewall solution for free creating a business solution to a pressing problem. Although the scale is different in the examples of NYSE and High Point University, in many ways their rationale for Linux utilization was the same.

Jeff Drake 2 Because of this increased adoption, IT staffs formerly only tasked with managing a Windows environment are now wading out into the Linux seas with little knowledge of Linux security basics. One of the issues that can be initially confusing to Windows users is root, /root and /. root, /root, / Perhaps one area in which Linux creators exercised a degree of perverse humor was that of the three roots in Linux. / is the reference to the root of the file system similar to c:\ in Windows or Dos. /root is the absolute reference to the home directory of the administrative user account. Finally, there is root, which is the administrative user account on Linux systems. root is the most powerful [user] in Linux systems. [It has] the rights to perform all the administrative tasks. (Siddiqui, 2002) This being the case, understanding the root user and how it is implemented and how to protect it is vital. Since we are dealing with a user account one of the first methods of defense is password complexity. Linux distributions follow the same complexity requirements as Windows in requiring three of the standard four criteria (upper/lower case, number and non-alpha numeric character) and not it cannot be a dictionary word. Many Linux distributions such as Suse and others implement a module such as pam_pwcheck.so which checks the validity of a password and it will prevent users from selecting a nonsecure password. (Eckhart, 2007) Figure 1 Figure one shows how password rules are reflected to a normal user during a password change. Notice various indicators such as too short, too simple and based on a dictionary word. A normal user account is prevented from setting a password that is

Jeff Drake 3 not complex. However, the root user, which again is the administrative user for the Linux system, can choose to not follow these rules. Figure 2 Figure 2 shows a scenario where the root user is able to change the password for a non-privileged account to a non-complex password. Depending upon the perspective of the reader, this could be thought of as a feature or bug. But, what is more interesting is that root can also choose to give itself a non-complex password and thereby violate the rules on its own behalf. So, password complexity failure receives a warning when the root user does not follow the rules, but does not prevent non-complex password usage. So, the responsibility is on the root user to select complex passwords for her and others. Another powerful feature but security consideration regarding the root user password is its recoverability. To some it may seem unlikely but it is possible to forget an administrative password or not have access to the person who knows that password for whatever reason. Fortunately, or unfortunately depending upon your perspective, Linux makes it very easy to reset the root password if you have access to the console. By rebooting the computer, the user can enter an alternative run level in Linux. For Windows users, this is roughly akin to selecting a Safe Mode boot option. Linux utilizes different run levels, usually three or four depending upon the Linux distribution, to define what services are started. For example, in Red Hat run levels 3 and 5 are the same by default except that run level 5 provides a graphical environment whereas run level 3 does not. However, run level 1 or what Ubuntu literature refers to recovery mode will provide you with a root shell. (Hill, Burger, Jesse, & Ivan, 2007) In non-linux speak, this means that when the Linux system boots up, it will present the user with a terminal window that has full administrative privileges without ever entering a password. This can be extremely handy if you forget the root password but also for other

Jeff Drake 4 troubleshooting steps as well. However, it accents the need for physical security of the console. This is not a situation where the console should be made publicly available. However, no production machine is safe if console access is made available. Too many boot disks exist that allow password cracks and alterations to make any OS safe from console access. If concerns exist about this feature, a boot loader password can be created. Figure 3 Figure 3 shows one of the installation screens from the Fedora 8 Linux distribution which allows you to set a boot loader password during Fedora installation. Suse Linux and Ubuntu Linux also have this option and no doubt others as well. This forces a user to enter a password before being able to enter the commands or keystrokes necessary to access a root privileged run level but as Guzman points out is no guarantee of data security because simply taking a hard drive that has unencrypted data gives a would be data thief access to your data. (Guzman, 2007) This can also be done following installation by editing the grub.conf file and including a single line starting with the word password followed by the plain text password. Guzman also points out that if remote

Jeff Drake 5 boot is a necessary function then introducing a boot loader password is not an appropriate measure. Alternatively, some distributions may require editing the /boot/grub/menu.lst file instead of the /boot/grub/grub.conf file depending upon the distribution. The password can be encrypted in either location by creating the encrypted password first using the grubmd5-crypt command to generate the encrypted password and then placing it in the menu.lst file or grub.conf file. (Weidner, 2005) Finally, in regards to the root user, it should be noted that some distributions such as Ubuntu disable the root user account by default and allow access to root user privileges using the sudo (Super User Do) command at the command prompt. By default, the user account created at the installation of Ubuntu becomes a user with sudo privileges. So, at a terminal window a user might enter the command to edit a system configuration file like this. sudo vi /etc/fstab The user would then be prompted for their password. Arguably, Windows Vista mimics this behavior (or vice versa) with its User Access Control (UAC) feature. Most Linux distributions allow the configuration of the /etc/sudoers file which dictates which users are permitted root privileges using the sudo command and will actually permit configuration of limited access to certain privileged commands. So if you wanted a particular user to have root privileges to just the ifup command that could be configured via the /etc/sudoers file. In some cases this file is heavily commented to aid the administrator. File Permissions Linux file system security depends to a create extent on features common to most file systems. Files and directories have owners and file owners have associated permissions assigned to them. (Sawicki & Wells, 2006)

Jeff Drake 6 Figure 4 Figure 4 shows the results of an ls l command issued from a normal user. Looking for example at line 3 of the output which provides information on file1 we see first permissions. Linux has three basic file permissions. These are listed and described in Name Alpha Character Numeric Value Description Read r 4 Permits users to see file or directory contents Write w 2 Permits users to change, add or delete content Execute x 1 Permits user to run a script or enter and pass through a directory Sticky Bit Table 1 t 1 Set on directories to prevent other users from deleting others files Table 1. Additionally there is the so-called Sticky Bit which can be set on directories to prevent other users from deleting each other s files in a common area where several users have access such as a departmental share. Notice in Table 1 that permissions are signified by a name, a single character and a numeric value. The name is descriptive however the alpha character and numeric value represent not only the permission but either may be used in assigning the permission. But, before reviewing an example of permission assignment, consideration must also be given to the unique nature of file ownership in Linux file systems. In Linux (as well as Unix) files are owned by both a user and a group as well as having some default permissions assigned to everyone on the system via what is referred to as other. Table 2 lists these system owners.

Jeff Drake 7 Table 2 Name Alpha Character Description User u The user account that owns the file Group g The group account that owns the file Other o A non configurable group that represents everyone When a user account is created in Linux a corresponding group account is created simultaneously which represents that user. Then, when a user creates a file, his or her user account becomes the user owner and their corresponding group account becomes the group owner by default. Figure 5 When a normal user creates a file the user owner permissions are set to rw and group permissions are set to r while the other group permissions are also to read. This can be seen in figure 5. Permissions are listed in Figure 5 in both alpha and numeric format using a special script. The alpha character permissions for file1 are rw-r--r-- The first three places represent user permissions, the second three places represent group owner permissions and the third three places represent other permissions. The leading d in some entries simply denotes a directory. The octal permissions for file1 are 644

Jeff Drake 8 Where the six represents read(4) + write(2) and each 4 represents the read permission that is given by default to the group owner and other group in this example. The chmod command could be used to change the permissions on folder1 to give the user rwx, group rw and other r using the chmod command as seen in Figure 6. Figure 6 If desired, the group owner of the directory can be changed using the chgrp command as seen in Figure 7. Figure 7 For users accustomed to NTFS style access control lists, the Linux file system ownership and permissions may seem limiting, but for those systems which require similar level of granularity, similar access control list functionality can be enabled on Linux systems by editing the /etc/fstab file and including the acl option for any mount points that require that level of control. There are a series of acl command that permit assignment and review of the permissions. An example is shown in Figure 8 where user Leroy has been added to folder1 with rw permissions.

Jeff Drake 9 Figure 8 Finally in this discussion of file permissions a relatively new Linux security mechanism can be introduced. Linux was formerly not acceptable in environment where the possibility of one exploit taking down and entire system could be considered an acceptable risk. (Negus, 2007) Security Enhanced Linux (SELinux) was introduced to overcome this limitation. SELinux is not purely a mechanism by which to secure the file system but that is part of its function. It permits security to go beyond the traditional owner and permissions structure. It is not adequate to base access decisions only on user identity and ownership. It must be possible to consider additional security-relevant criteria such as the role of the user, the function and trustworthiness programs, or the sensitivity or integrity of data. As long as users have complete discretion over objects, it will not be possible to control data flows or enforce a system-wide security policy. (Loscocco & Smalley, 2001) Whenever a user accessed a file or executed a process that process or file typically ran as that user. Thus, that file or process could access whatever resources that user had access too. Couple this with the fact that services on Linux system run as a user account, this presents security issues since compromise of a service then compromises any part of the file system that service user account has access too. SELinux introduces 140 fine-grained permissions which are checked against regardless of the user or operation. (Loscocco & Smalley, 2001) These permission checks act as what can be loosely compared to policies in Microsoft speak which act beyond user and owner level permissions. This is referred to as Mandatory Access

Jeff Drake 10 Control (MAC) which implements rules for what all operating system components can and can t do. (Negus, 2007) Figure 9 Figure 9 shows an installation screen for Fedora 8 where the installer can choose whether or not to enable SELinux. Enforcing is the default which enforces default SELinux policies. Permissive does not enforce policies but reports when a policy would have been applied. Figure 10 is a graphical SELinux Administration tool found in Fedora and other Red Hat style Linux distributions. This tool allows you to view current SELinux settings and policies and alter existing settings and policies or disable SELinux altogether if desired.

Jeff Drake 11 Figure 10 Figure 11 shows the result of a sestatus v command which can be used in Linux installs that do not provide the gui functionality seen in Figure 9. Again, SELinux goes beyond the file system and allows policy configuration in a variety of areas that allow administrators to go beyond the all or nothing root or non-privileged user account architecture.

Jeff Drake 12 Figure 11 The Linux Firewall Linux comes in various distributions with sometimes very specific purposes. Distributions such as Smooth Wall and IPCop are designed to act as firewalls and indeed the Linux kernel or similar kernels are often used to operate common router and firewall products. The Linux firewall can be initially configured at installation time using the configuration page shown in Figure 12. The top drop down box permits the installer to enable or disable the firewall at installation. The firewall may be simply disabled by some administrators in preference of an alternative firewall protection strategy such as using VLANs and access control lists. For those interested in implementing an OS level firewall, firewall ports can be opened for popular services that are installed on the system simply by checking the appropriate button. If port access for an unlisted services is necessary, selecting the Add button permits the installer to add additional open ports in the firewall.

Jeff Drake 13 Figure 12 Figure 12 is the first opportunity to configure the firewall. Following installation of the Linux system, many distributions have an additional gui based firewall configuration tool such as the one seen in Figure 13 which is available in Fedora and Red Hat style Linux distributions. As the selection on the left side of the screen indicate, services and other permitted ports can be established as well as setting up more advanced functions such as masquerading which is a type of NATing functionality used if the outside interface is receiving its IP address dynamically. This gui tool has its limitations compared to the actual capabilities of the Linux firewall but if the device is being used as a server or simple router then this tool should be more than sufficient. If the tool does not provide the necessary functionality the iptables command used at the terminal can provide full functionality configuration in the Linux firewall. The iptables command is somewhat similar to the access control related commands in Cisco routing equipment. Discussion of this command is a paper or book in and of itself but Negus offers a good description of it as well as Red Hat documentation available on their website at www.redhat.com.

Jeff Drake 14 Figure 13 However, for the sake of further discussion, Figure 14 shows the partial output of he iptables --list command issued by the root user. This output shows the firewall rules that have been established for this particular Linux system. For those familiar with routing access control lists, much of the output would be relatively easily to interpret in terms of understanding the rules that have been established. Figure 14 also denotes the INPUT, FORWARD and OUTPUT chains. These chains are groupings of rules applied to packets based upon whether the packet is to coming to the device (INPUT), passing through the device from the outside (FORWARD) or coming from the device headed to another system (OUTPUT). Thus, rules are potentially applied in any of these three areas depending upon the traffic flow and origination.

Jeff Drake 15 Figure 14 Conclusion Ideally in this paper, the new Linux user has been introduced to three of the basic areas of Linux security that are critical for bringing a Linux server up and making it functional in a workplace environment. Linux affords businesses and organizations a powerful computing platform at minimal or not capital outlay in some situations but product familiarity is one of the drawbacks to adoption in many cases. As Linux gui tools have become more well developed hopefully the Windows user will begin to feel more comfortable in exploring the environment. It cannot be said that Linux gui tools seen in this paper are as robust as their Windows or Cisco counterparts necessarily, they certainly increase the ease of adoption by those interested in this not so new technology known as Linux.

Jeff Drake 16 Bibliography Eckhart, J. (2007). Advanced Suse Linux Enterprise Server Administration. Boston, MA: Course Technology. *Guzman, A. (2007, August 24). Adam's Home Page. Retrieved April 26, 2008, from Adam.Nemesis: http://adam.nemesis.googlepages.com/ Hill, B. M., Burger, C., Jesse, J., & Ivan, K. (2007). The Official Ubuntu Book. Upper Saddle River, NJ: Prentice Hall Pearson Education. *Loscocco, P. A., & Smalley, S. D. (2001). Paper Abstract: Meeting Critical Security Objectives with Security Enhanced Linux. Retrieved April 26, 2008, from National Security Agency Central Security Service: http://www.nsa.gov/selinux/papers/ottawa01.pdf Negus, C. (2007). Fedora 7 and Red Hat Enterprise Linux. Indianapolis, IN: Wiley. Rist, O. (2008, May). Choosing Linux. PC Magazine, p. 100. Sawicki, E., & Wells, N. (2006). Advanced Guide to Linux Networking and Security. Boston, MA: Course Technology. Siddiqui, S. (2002). Linux Security. Cincinatti, OH: Premier Press. Thibodeau, P. (2007, December 17). NYSE Places Buy on Linux, Hold on Unix. Computerworld, p. 1. Vidrine, E. (2005). A NETWORK SO CRAZY, IT JUST MIGHT WORK. American Libraries, 62 63. *Weidner, K. (2005, January 17). Home Page. Retrieved April 26, 2008, from UniForum Chicago: http://www.uniforum.chi.il.us/slides/hardeninglinux/ibm SLES EAL4 Configuration Guide.pdf