linux security chapter 21 (section 1-7) by yanjun zuo

40
Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Upload: silvester-gilbert

Post on 28-Dec-2015

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Linux Security

Chapter 21 (section 1-7)

ByYanjun Zuo

Page 2: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

“Morris” worm Robert Morris, a graduate student

at Connell university, released an Internet worm in 1988

This worm made use of the open nature of mail transport agents (a debug program) to spread

Since then, computer security entered a new stage

Page 3: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Security A recent survey (by CSI/FBI in April 2001)

showed 91% of organizations have reported security breaches in the past 12 months

95% of these reporting organizations used security tools such as commercial firewalls

This facts at least teach us security is a complicated issue and some commercial security products are not complete solutions by themselves

Page 4: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Linux security Like other OS, Linux is not secure - Linux is optimized for convenience and

doesn’t make security easy or nature - Linux security is effectively binary: all

or nothing in term of power. Facilities such as setuid execution tend to give a way in the middle

- Linux is developed by a large community of programmers and is open source

Page 5: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Linux security The most important security issues

to consider for a Linux system - Packet filtering: there must be a

packet filtering router or firewall between the Linux system and the outside world (iptables)

- Unnecessary services (examine the contents of /etc/inetd.conf)

Page 6: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Linux security - Software patches: update software

security patches regularly and as soon as possible

- Backups: any other methods may fail so it is important to make backups

- Passwords: it is no longer secure to send plaintext reusable passwords on line. Use SSH or other authentication systems

Page 7: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

How security is compromised Unreliable wetware: human users and

administrators may be the weakest link in the chain of security

Software bugs: user programs, system, and network vulnerabilities

Open doors: many software are configured as “not-so-secure” by default

Page 8: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

/etc/passwd and /etc/shadow files These two files are the system’s

first line of defense against intruders

It is very important to regularly check every login has a password

Pseudo-users such as “daemon” who own files but never login should have a star (*) in their encrypted password field

Page 9: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

/etc/passwd and /etc/shadow files The command perl –F: -ane `print if not $F[1];` /etc/shadow

can be used to find null passwords Use the cron program to run this

command and send mail to you about any null password

Page 10: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

/etc/passwd and /etc/shadow files /etc/shadow is read only by root /etc/passwd and /etc/group should

be written only by root Passwords chosen by users should

be at least 8 character long and should include numbers, punctuation, or changes in case

Page 11: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

PAM: pluggable authentication module PAM can be used to integrate login

services with different authentication technologies, such as RSA, DCE, Kerberos, S/Key, and smart card based authentication systems [1]

Page 12: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

PAM: pluggable authentication module Applications enabled to make use of PAM

can be plugged-in to new technologies without modifying the existing applications. This flexibility allows administrators to do the following:

Select any authentication service on the system for an application

Use multiple authentication mechanisms for a given service Add new authentication service modules without modifying

existing applications Use a previously entered password for authentication with

multiple modules [2]

Page 13: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

PAM: pluggable authentication module The concept of Linux-PAM: programs that

require authentication only need to know that there is a module available that will perform the authentication for them

PAM is set up so that modules can be added,deleted, and reconfigured at any time- it is not necessary for modules to be linked in at the time a utility is compiled

Page 14: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

PAM: pluggable authentication module It is the purpose of the Linux-PAM

project to separate the development of privilege granting software from the development of secure and appropriate authentication schemes. This is accomplished by providing a library of functions that an application may use to request that a user be authenticated [3]

Page 15: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Format of PAM configuration file entries Configuration file for PAM is in the

directory of /etc/pam.d - entry of the configure file has the

format: module-type control-flag module-path

arguments

Page 16: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Format of PAM configuration file entries Module-type field: auth, account,

session, or password Control-flag field: required,

requisite, sufficient, or optional Module-path: pathname for the

dynamically loaded module object Argument: the argument for the

dynamically loaded module object

Page 17: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

An example of PAM Additions to /etc/pam.d/passwd to

enable the passwd to perform strong password checking by using a PAM module derived from the crack library might look like this:

password required pam-cracklib.so retry=3

password required pam_pwdb.so use_authtok

Page 18: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Group logins and shared logins Don’t recommend to allow users to

share logins with family or friends Recommend to use sudo program

to control access to rootly power

Page 19: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Rootly entries A common way for hackers to install a

back door once they have obtained a root shell is to edit new root logins into /etc/passwd

The following script can be used to find any lines in the passwd file that have null or 0 UIDs

perl –F: -ane `print if not $F[2];` /etc/passwd

Page 20: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Setuid programs The setuid commands distributed with Linux

are theoretically secure; but they have security holes

Try to minimize the number of setuid programs

Although a shell spawned to execute a script doesn’t necessarily read the user’s shell configuration files, it can be influenced by the user’s environment, by the contents of the current directory, or by the manner in which the script is invoked

Page 21: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Setuid program A setuid program can be run as a

pseudo user instead of root Use a low UID for the pseudo user,

put a star in the passwd field, and make the pseudo user’s home directory be /etc/null

Page 22: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Setuid programs Setuid and Setgid execution on

individual filesystem can be disabled through use of the –o nosuid option to mount

Page 23: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Setuid programs It is useful to scan disks periodically to

look for new setuid programs A hacker who has breached the security of

your system will sometimes create a private setuid shell or utility to facility repeat virists

The command can find and a list of all setuid files and mail to the “admin” user

find ~user root –perm –4000 –print | mail –s “Setuid root files” admin

Page 24: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Important file permissions /dev/kmem should only be readable by

the owner and group, never by the world since this file allows access to the kernel’s own virtual address space

If your /dev/kmem file is publicly readable, a competent programmer can then look for things like unencrypted passwords in the kernel data structures and buffers. Change that not allow world readable

Page 25: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Important file permissions Directories that are accessible through

anonymous FTP should not be publicly writable

Such directories create a nest for hackers to distributed illegally copied software and other sensitive files

Setting up anonymous FTP usually involves copying a skeleton password file into ~ftp/etc/passwd so that ls will work correctly

Page 26: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Important file permissions Having read or write permission on a disk

device file is essentially the same as having read or write permission on every file in the filesystem it represents

Only root should have both read and write permission

The group owner is sometimes given read permission to facilitate backups, but there should be no permissions for the world

Page 27: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Remote event logging Forward log information to a file, a list

of users, or another host on the network Set up a secure host that acts as a

central logging machine and print out security violations

This precaution prevents hackers from covering their tracks by rewriting or erasing log files

Page 28: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Secure terminals Linux can be configured to restrict

root logins to specific “secure” terminals

It is good idea to disable root logins on channels such as dial-up modems

Network pseudo-terminals are often set to disable root logins

Page 29: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Secure terminals The secure channels are specified as a

list of TTY devices in the configuration file /etc/securetty

It is also possible to restrict nonroot logins to particular locations with entries in the file /etc/security/access.conf or to particular times with entries with entries in the file /etc/security/time.conf

Page 30: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

/etc/hosts.equiv and ~/.rhosts These two files define hosts as being

administratively “equivalent” to one another

rshd and rlogind, the server processes that read .rhosts and hosts.equiv, are recommended to be disabled

The functionalities of telent, rlogin, rsh, or rcp can be replaced with high-security equivalents such as SSH

Page 31: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

rexecd and tftpd Rexecd is another remote command

execution daemon, which is the server for the rexec library routine

Requests send to rexecd include a plaintext password

Tftpd is a server for the Trivial File Transfer Protocol

It allows machines on the network to request files from your hard disks. Hence it is a potential security hole

Page 32: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

fingerd finger is a Linux command that

prints a short report about a particular user

Information collected from finger is potentially useful to hackers

It is recommended to disable fingerd in /etc/inetd.conf

Page 33: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Security and NIS NIS maintains and distributes files

such as /etc/group, /etc/passwd, and /etc/hosts

NIS’s very nature of “easy information access” makes it tasty hacker bait

A late replacement is NIS+

Page 34: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Security and NFS Access to NFS volumes is granted by

/etc/exports This is a weak form of security because

the server trusts the clients to tell it who they are

It is easy to make clients lie about their identities

The TCP wrappers package can help limit the hosts that can access NFS filesystems (through /etc/hosts.deny)

Page 35: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Security and NFS File-level access control to NFS

filesystems is managed according to UID, GID, and file permissions

Once again, the NFS sever trusts the client to tell it who is accessing files

It is strongly recommended to use globally unique UIDs and the root_squash option

Page 36: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Security and NFS It is a good idea to block access to

TCP and UDP ports 2049 (used by NFS) when configuring firewalls

You should also block access to the portmap daemon, which normally listens on TCP and UDP ports 111

Page 37: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Security and sendmail Sendmail is a massive network system

and a large part of it runs as root Sendmail accepts arbitrary user-

supplied input and deliver it to local users, files, or shells

It has often been subject to the attacks

Numerous vulnerabilities have been exposed over time

Page 38: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Trojan horses Programs aren’t what they seem to

be It is remarkable how few Trojan

hose incidents there have been

Page 39: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

References(1)http://java.sun.com/security/jaas/doc/

pam.html

(2)http://publib16.boulder.ibm.com/pseries/en_US/aixbman/security/pam_overview.htm

(3)http://www.tldp.org/HOWTO/User-Authentication-HOWTO/x101.html

Page 40: Linux Security Chapter 21 (section 1-7) By Yanjun Zuo

Questions

or

Comments?