实验2Linux操作系统安全.docx
《实验2Linux操作系统安全.docx》由会员分享,可在线阅读,更多相关《实验2Linux操作系统安全.docx(22页珍藏版)》请在冰点文库上搜索。
实验2Linux操作系统安全
贵州大学实验报告
学院:
计算机科学与技术学院专业:
信息安全班级:
姓名
学号
实验组
实验时间
2015.05.27
指导教师
蒋朝惠
成绩
实验项目名称
实验二Linux操作系统安全
实验目的
(一)通过实验掌握Linux操作系统环境下的用户管理、进程管理以及文件管理的相关操作命令,掌握Linux中的相关安全配置方法,建立起Linux的基本安全框架。
(二)Apache是在Linux下发布的Web应用程序的主要软件包。
通过本实验的学习,了解Apache服务器的基本配置、访问控制、认证与授权的配置以及日志管理与分析方法。
掌握vsftpd服务器的安装和安全配置方法。
实验要求
掌握Linux操作系统的一些基本的安全配置和Web、FTP服务器的安全配置。
实验原理
(一)Linux操作系统中的安全配置:
1.用户管理:
Linux支持以命令行或窗口方式管理用户和用户组。
它提供了安全的用户和口令文件保护以及强大的口令设置规则,并对用户和用户组的权限进行了细粒度的划分。
Linux的用户和用户组的信息分别保存在/etc/shadow、/etc/passwd、/etc/group和/etc/gshadow等几个文件中,为这些文件设置较高的安全权限是完全必要的。
在较高安全要求的系统中,可以将这些文件设置为不可更改。
Linux中也带有一些常用的口令字典,以便在用户设置的口令不太安全时及时提醒用户。
2.文件管理:
在linux中,文件和目录的权限根据其所属的用户或用户组来划分:
1)文件所属的用户,即文件的创建者;
2)文件所属用户组的用户,即文件创建者所在的用户组中的其他用户;
3)其他用户,即文件所属用户组之外的其他用户。
每个文件或者目录的拥有者以及管理员root用户,可为以上三种用户或者用户组设置读,写或者可执行的权限。
用户也可以通过改变文件所属的用户或者用户组改变3类用户的去权限。
对文件夹设置SGID权限,任何在该文件所属的用户和子目录都将与其父目录属于同样的用户组。
这种管理有时是必要的,有时会带来一些安全的问题,因此在建立文件时要特别小心文件夹的SGID权限。
另一个容易带来安全问题的文件是/home/*/.bash_history(*表示某用户名)。
为了便于重复输入很长的命令,该文件保存了此用户经常使用的一组参数(默认为500或1000)的命令。
这样就保留了一些重要的信息,例如文件的路径,一些与用户有关的密码等,为攻击的黑客留下了可乘之机。
可以通过/etc/profile文件中的参数设置,减少保留的,命名数目。
3.插入式身份认证模板PAM:
PAM(pluggableauthenticationmodules)是插入式身份认证模块,它提供身份认证功能防止未授权的用户访问,其身份认证功能高度模块化,可以通过配置文件进行灵活的配置。
在高版本的linux中自动启用了PAM,用户也可以自行配置PAM文件。
但是,任何很小的错误改动都可能导致所以用户被阻塞,所以在进行相关的文件改动之前,应当先备份系统内核。
4.记录系统syslogd:
Linux使用了一系列的日子文件,为管理提供了很多关于系统安全状态的信息。
Syslogd是一种系统日子守护进程,它接受系统和应用程序,守护进程以及内核提供的信息,并根据在/etc/syslog.conf文件中的配置,对这些信息在不同日志文件中进行记录和处理。
绝大部分内部系统工具都会通过呼叫syslogd接口来提供这些记录到日志中的消息。
系统管理员可以通过设置/etc/syslogd.conf文件来设置希望记录的信息的类型或者希望监视的设备。
(二)Linux中Web、FTP服务器的安全配置:
1.Apache服务器的安全配置:
1)Apache的配置文件/etc/httpd/conf/httpd.conf
2)访问控制
3)认证与授权
4)日志管理配置与日志的统计分析
2.FTP服务器的安全配置:
FTP为文件传输协议,主要用于网络间的文件传输。
FTP服务器的特点是采用双端口工作方式,通常FTP服务器开放21端口与客户端进行FTP控制命令传输,这称为FTP的数据连接。
实验仪器
(一)Linux中的安全配置:
安装redhatlinux9.0操作系统的计算机
(二)Linux中Web、FTP服务器的安全配置:
一台安装WindowsXP/Server2003操作系统的计算机,磁盘格式配置为NTFS,预装MBSA工具
实验步骤、内容、数据
(一)Linux中的安全配置:
1.账户和安全口令:
(1)查看和添加账户
1)使用系统管理员账户root登录文本模式,输入下面的命令行:
[root@localhostroot]#useraddmyusername
使用useradd命令新建名为myusername的新账户。
2)使用cat命令查看账户列表,输入下列命令:
[root@localhostroot]#cat/etc/shadow
得出列表最后的信息为:
gdm:
!
!
:
14893:
0:
99999:
7:
:
:
desktop:
!
!
:
14893:
0:
99999:
7:
:
:
bitpx:
$1$k3ZeCzGg$67UDnyWYtRKiXMKLjTjTk1:
14893:
0:
99999:
7:
:
:
myusername:
!
!
:
16583:
0:
99999:
7:
:
:
用如下命令切换到myusername账户,然后在使用cat命令查看账户列表,如果刚才的账户添加成功,那么普通用户myusername不能查看该文件的权限,提示如下:
[root@localhostroot]#sumyusername
[myusername@localhostroot]$cat/etc/shadow
cat:
/etc/shadow:
权限不够
(2)添加和更改口令
切换到root用户,添加myusername的口令:
[root@localhostroot]#passwdmyusername
输入以上命令后,一次出现一下提示:
[root@localhostroot]#passwdmyusername
Changingpasswordforusermyusername.
Newpassword:
BADPASSWORD:
itisbasedonadictionaryword
Retypenewpassword:
passwd:
allauthenticationtokensupdatedsuccessfully.
(3)设置账户管理
输入命令行
[root@localhostroot]#chage–m0–M90–E0–W10myusername,
此命
令强制用户myusername首次登陆时必须更改口令,同时还强制该用户以后每90天更改一次口令,并提前10天提示。
(4)账户禁用与恢复
1)输入下列命令行,以管理员身份锁定新建的myusername账户,并出现锁定成功的提示:
[root@localhostroot]#passwd-lmyusername
Lockingpasswordforusermyusername.
passwd:
Success
表明锁定成功
2)输入以下命令行,检查用户nyusername的当前状态:
[root@localhostroot]#passwd-Smyusername
Passwordlocked.
3)如果要将锁定账户解锁,输入以下命令行,并出现相应的解锁提示:
[root@localhostroot]#passwd-umyusername
Unlockingpasswordforusermyusername.
passwd:
Success.
(5)建立用户组,将指定的用户添加到用户组中
1)输入以下命令,建立名为mygroup的用户组:
[root@localhostroot]#groupaddmygroup
2)如果要修改用户组的名称,使用如下命令行:
[root@localhostroot]#groupmod-nmygroup1mygroup
将新建的用户组更名为mygroup1
3)输入以下命令,将用户myusername加入到新建的组mygroup1中并显示提示:
[root@localhostroot]#gpasswd-amyusernamemygroup1
Addingusermyusernametogroupmygroup1
4)用下面的命令将myusername设置为该用户组的管理员:
[root@localhostroot]#gpasswd-Amyusernamemygroup1
(6)设置口令规则
使用命令[root@localhostroot]#vi/etc/login.defs编辑/etc/login.defs文件:
将PASS_MIN_LEN_参数改为8,PASS_MAX_DAYS参数改为90天。
如图:
(7)为账户和组相关系统文件加上不可更改属性,防止非授权用户获得权限
1)输入下列口令为口令文件加上不可更改属性:
[root@localhostroot]#chattr+i/etc/passwd
此刻若使用如下命令新建账户:
[root@localhostroot]#chattr+i/etc/passwd
出现不可更改提示:
[root@localhostroot]#useraddymm
useradd:
unabletoopenpasswordfile
2)可用同样的方法锁定/etc/shadow、/etc/group以及/etc/gshadow
3)如果要去除文件的不可修改属性,则输入以下命令:
[root@localhostroot]#chattr-i/etc/passwd
(8)删除用户和用户组
1)输入以下命令,删除新建的用户:
[root@localhostroot]#userdelmyusername
2)输入以下命令,删除新建的用户组:
[root@localhostroot]#groupdelmygroup1
2.文件系统管理及安全
(1)新建文件夹和文件
1)在终端输入下列命令行:
[root@localhostroot]#mkdirfolder
将在root目录下新建名为folder的文件夹
2)用mkdir命令在folder文件夹下建立一个名为childfolder的子文件夹
[root@localhostroot]#mkdirfolder/childfolder
3)用cd命令进入child文件夹下,并建立一个名为newfile的文件
[root@localhostroot]#cdfolder
[root@localhostfolder]#touchnewfile
(2)编辑文件
1)用vi命令编辑newfile文件,在插入模式下插入Thisisanewfile
2)按[Esc]键返回命令行格式,输入“:
wq”,保存退出
(3)查看文件内容和相关信息
1)使用cat命令查看文件内容:
[root@localhostfolder]#catnewfile
Thisisanewfile.
2)用ll命令查看相关文件的信息,输入如下代码:
[root@localhostfolder]#llnewfile
系统回显:
-rw-r--r--1rootroot195月2901:
39newfile
(4)设置文件的所属用户,用户组和权限
1)用chmod命令将newfile文件的访问权限设置为所属用户有读写和执行的权限,用户组有读写的权限,其他用户没有任何权限,命令行如下:
[root@localhostfolder]#chmod750newfile
再次查看并记录用户权限;
-rwxr-x---1rootroot195月2901:
39newfile
2)分别使用root和myusername用户,尝试读写操作并记录实验结果
使用root用户:
[root@localhostroot]#cat/root/folder/newfile
Thisisanewfile.
使用myusername用户:
[myusername@localhostroot]$cat/root/folder/newfile
cat:
/root/folder/newfile:
权限不够
3.查看和更改PAM模块设置
(1)查看用于控制口令选择和口令时效的PAM模块设置
1)查看/etc/pam.d文件夹中的文件列表,如图:
2)打开文件/etc/pam.d/passwd,查看与用户口令有关的PAM设置
[root@localhostroot]#cat/etc/pam.d/passwd
#%PAM-1.0
authrequiredpam_stack.soservice=system-auth
accountrequiredpam_stack.soservice=system-auth
passwordrequiredpam_stack.soservice=system-auth
3)查看文件/etc/pam.d/system-auth
[root@localhostroot]#cat/etc/pam.d/system-auth
显示结果如下:
#%PAM-1.0
#Thisfileisauto-generated.
#Userchangeswillbedestroyedthenexttimeauthconfigisrun.
authrequired/lib/security/$ISA/pam_env.so
authsufficient/lib/security/$ISA/pam_unix.solikeauthnullok
authrequired/lib/security/$ISA/pam_deny.so
accountrequired/lib/security/$ISA/pam_unix.so
passwordrequired/lib/security/$ISA/pam_cracklib.soretry=3type=
passwordsufficient/lib/security/$ISA/pam_unix.sonullokuse_authtokmd5
shadow
passwordrequired/lib/security/$ISA/pam_deny.so
sessionrequired/lib/security/$ISA/pam_limits.so
sessionrequired/lib/security/$ISA/pam_unix.so
(2)限制su命令的使用用户
1)输入下面的命令行,用cat命令查看系统中是否存在名为wheel的用户组,如果不存在,则新建该用户:
root:
x:
0:
root
…
kmem:
x:
9:
wheel:
x:
10:
root
mail:
x:
12:
mail
…
myusername:
x:
501:
显然存在wheel用户组
2)新建用户newuser,并将其加入到wheel组中
[root@localhostroot]#useraddnewuser
[root@localhostroot]#gpasswd-anewuserwheel
Addingusernewusertogroupwheel
3)再次查看组信息,终端显示
root:
x:
0:
root
…
kmem:
x:
9:
wheel:
x:
10:
root,newuser
mail:
x:
12:
mail
…
newuser:
x:
502:
4)输入下面的命令,用vi编辑su文件(/etc/pam.d/su):
[root@localhostroot]#vi/etc/pam.d/su
在文件的头部加入如下的一行,然后保存退出:
authrequired/lib/security/$ISA/pam_wheel.sogroup=wheel
5)输入下面的命令行,更改文件权限,限制只有wheel用户组的成员可以使用su命令:
[root@localhostroot]#chownroot:
wheel/bin/su
[root@localhostroot]#chmod4750/bin/su
6)用su命令在wheel用户成员root、newuser以及普通用户myusername之间互相切换,可以看到如下myusername用户被限制使用su命令的结果:
[root@localhostroot]#sunewuser
[newuser@localhostroot]$sumyusername
Password:
[myusername@localhostroot]$suroot
bash:
/bin/su:
权限不够
4.检查sysogr日志设置以及日志文件
(1)打开/etc/syslog.conf文件,查看syslog日志的相关设置
[myusername@localhostroot]#cat/etc/syslog.conf
显示信息如下:
#Logallkernelmessagestotheconsole.
#Loggingmuchelsecluttersupthescreen.
#kern.*/dev/console
#Loganything(exceptmail)oflevelinfoorhigher.
#Don'tlogprivateauthenticationmessages!
*.info;mail.none;news.none;authpriv.none;cron.none/var/log/messages
#Theauthprivfilehasrestrictedaccess.
authpriv.*/var/log/secure
#Logallthemailmessagesinoneplace.
mail.*/var/log/maillog
#Logcronstuff
cron.*/var/log/cron
#Everybodygetsemergencymessages
*.emerg*
#Savenewserrorsoflevelcritandhigherinaspecialfile.
uucp,news.crit/var/log/spooler
#Savebootmessagesalsotoboot.log
local7.*/var/log/boot.log
#
#INN
#
news.=crit/var/log/news/news.crit
news.=err/var/log/news/news.err
news.notice/var/log/news/news.notice
[root@localhostroot]#clear
[root@localhostroot]#cat/etc/syslog.conf
#Logallkernelmessagestotheconsole.
#Loggingmuchelsecluttersupthescreen.
#kern.*/dev/console
#Loganything(exceptmail)oflevelinfoorhigher.
#Don'tlogprivateauthenticationmessages!
*.info;mail.none;news.none;authpriv.none;cron.none/var/log/messages
#Theauthprivfilehasrestrictedaccess.
authpriv.*/var/log/secure
#Logallthemailmessagesinoneplace.
mail.*/var/log/maillog
#Logcronstuff
cron.*/var/log/cron
#Everybodygetsemergencymessages
*.emerg*
#Savenewserrorsoflevelcritandhigherinaspecialfile.
uucp,news.crit/var/log/spooler
#Savebootmessagesalsotoboot.log
local7.*/var/log/boot.log
#
#INN
#
news.=crit/var/log/news/news.crit
news.=err/var/log/news/news.err
news.notice/var/log/news/news.notice
(2)打开/var/log/message文件,查看系统的相关记录消息,找出用户身份认证的记录
(3)新建用户user,并以该用户名重复2次失败的系统登录。
(4)再次查看/var/log/message文件,可以查看到关于失败登录的记录消息
(二)Linux中Web、FTP服务器的安全配置:
1.Apache服务器的安全配置
(1)Apache的安装
通过下面的命令查看是否安装了Apache:
[root@localhostroot]#rpm-qa|grephttpd
如果回显如下内容,则说明已经安装了Apache:
httpd-manual-2.0.40-21
httpd-2.0.40-21
redhat-config-httpd-1.0.1-18
(2)Apache的启动
用下面命令查看Apache是否启动
[root@localhostroot]#servicehttpdstatus
如果出现以下信息:
httpd(pid108001079