Linux系统安全10
10.1 Linux的主要安全问题操作系统的安全与否,直接影响用户的工作和应用,以及整个网络的安全。因此分析 Linux系统的安全机制,找出可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。本节将从系统安全、
用户安全和网络服务安全等方面介绍基本的安全知识
。
系统安全
( 1)设置 BIOS密码
( 2)分区安全
( 3)文件权限安全对于系统中的某些关键文件,可修改其属性,防止意外修改和被普通用户查看。
用户安全
( 1)帐号安全应禁用默认被操作系统启用但不需要的帐号。
( 2)口令安全增加口令的最小长度,限制口令的使用时间。
( 3) root用户安全
( 4)用户资源限制为了防止大量恶意的请求和攻击,可以对系统中的用户都设置资源限制,如最大进程数,内存数量等。
网络服务安全
( 1)系统运行服务的安全修改 /etc/services文件来关闭不使用的服务。
统计当前系统打开的服务:
# ps -eaf | wc –l //统计当前系统打开服务的总数
( 2)系统启动脚本安全通过修改启动脚本来设置系统启动的服务和程序。
( 3) ping命令安全禁止主机系统对该命令做出响应。
10.2 PAM认证机制
PAM( Pluggable Authentication Modules,
插入式认证模块)是由 Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的 API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以根据需要给不同的服务配置以不同的认证方式
,且无需更改服务程序,同时也便于向系统中添加新的认证手段。 PAM最初是集成在 Solaris中,目前已移植到其它系统中,如 Linux,SunOS和 HP-UX 9.0等
。
PAM的分层体系结构
PAM为了实现插件功能和易用性,采取了分层设计思想,让各认证模块从应用程序中独立出来,然后通过 PAM API作为两者之间的接口。
PAM的分层体系结构认证模块层处于整个结构的最底层,它向上层接口层提供用户认证等服务,所有具体的认证工作都是由该层的模块来完成的。
1 认证模块层
2 应用接口层应用接口层位于 PAM结构的中间部分,它对上层应用程序屏蔽了用户认证等过程的具体细节,对下调用模块层中的具体模块所提供的特定服务。它主要由 PAM API和配置文件两部分组成。
10.2.2 PAM配置实例
( 1)控制可以登录系统的用户;只有 root可以从本地登录,bxs以及 stu用户可以从 192.168.100.0网段
telnet登录,其他用户均不可以登录系统。
修改 /etc/pam.d/login文件,在原来的基础上加入了以下这一条规则:
account required pam_access.so
accessfile=/etc/login.conf
PAM配置实例(续 1)
/etc/login.conf文件内容如下:
+:root:LOCAL
//root用户可以从本地登录
+:bxs stu:192.168.100.
//bxs和 stu可以从 192.168.100.0/24网段 telnet登录
-:ALL:ALL
//拒绝其他任何人登录
10.3 包过滤防火墙防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,也是信息的唯一出入口。它可通过监测、限制和更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。逻辑上,防火墙是分离器、
限制器和分析器,有效地监控内部网和 Internet之间的活动,保证内部网络的安全。
防火墙逻辑位置示意图防火墙地作用
( 1)保护脆弱的服务
( 2)控制对系统的访问
( 3)集中的安全管理
( 4)增强的保密性
( 5)记录和统计网络利用数据以及非法使用数据
( 6)策略执行
( 1)应用级网关应用级网关也就是通常提到的代理服务器。它适用于特定的互联网服务,如 HTTP服务,FTP服务等。
( 2)状态监测防火墙状态监测防火墙使用了在网关上执行网络安全策略的软件模块 ——监测引擎,采用抽取有关数据的方法对网络通信的各层实施监测防火墙形式包过滤防火墙
( 3)包过滤防火墙包过滤防火墙的工作原理
( 1)使用过滤路由器。
用于过滤数据包的路由器被称为过滤路由器。数据包过滤是通过对数据包的 IP头和 TCP或 UDP头的检查来实现的
( 2)过滤路由器的实现。
过滤路由器检查数据包,除了决定是否有到达目的地址的路径外,还要决定是否应该发送数据包,“应该与否”是由路由器的过滤策略决定并强行执行的。
包过滤路由器操作的基本过程包过滤路由器操作的基本过程(续 1)
具体步骤如下:
( 1)在包过滤设备上存储包过滤规则
( 2)包到达端口时,对包头进行分析,包括检查 IP,UDP
,TCP报头中的字段。
( 3)应用于包的规则的顺序,与设备上包过滤规则的顺序相同。
( 4)若一条规则阻止包传输或接受,则此包不被允许
( 5)若一条规则允许包传输或接受,则此包被继续处理。
( 6)若包不满足任何一条规则,则此包被阻止。
Netfilter/iptables简介
Netfilter是 Linux核心中的一个通用架构,它提供了一系列的表( tables),每个表由若干链( chains
)组成,而每条链中由一条或数条规则( rule)组成
。因此,可以理解 netfilter是表的容器,表是链的容器,而链又是规则的容器。
Netfilter总体结构
Netfilter的工作有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,可能有以下三种情况:
( 1)如果数据包的目的地址是本机,则系统将数据包送往 INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢弃。
Netfilter的工作(续 1)
( 2)如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往 FORWARD链,
如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉。
( 3)如果数据包是由本地系统进程产生的,则系统将其送往 OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉。
数据包在 Filter表中的流程图(续 1)
iptables语法
iptables [-t table] CMD [chain] [rule-matcher] [-j target]
table:表名。 iptable使用三个表分别是 filter,nat和 mangle。
对于包过滤防火墙只使用默认的表 filter。
CMD:操作命令,包括添加、删除、更新等。
chain:链名,对于包过滤防火墙可操作 filter表中的 INPUT链、
OUTPUT链和 FORWARD链。也可以操作由用户自定义的链。
rule-matcher:规则匹配器。可以指定各种规则匹配,如 IP地址
、端口和包类型等。
target:目标动作。当规则匹配一个包时,要执行的任务标识。
最常用的有 ACCEPT和 DROP。
iptables工具的调用语法如下:
对链的操作
对规则的操作
指定源地址和目的地址
指定协议
指定网络接口
指定 IP碎片
指定非
TCP匹配扩展
mac匹配扩展
limit匹配扩展
LOG目标扩展
REJECT目标扩展
iptables配置实例包过滤防火墙结构图
iptables配置实例(续 1)
防火墙的建立过程遵循以下步骤:
( 1)在 /etc/rc.d/目录下建立空的脚本文件,并添加可执行权限。
# touch /etc/rc.d/filter-firewall
# chmod u+x /etc/rc.d/filter-firewall
( 2)编辑 /etc/rc.d/rc.local文件,在末尾加上
/etc/rc.d/filter-firewall以确保开机自动执行该脚本。
# echo ―/etc/rc.d/filter-firewall‖>>/etc/rc.d/rc.local
( 3)使用文本编辑器编辑 /etc/rc.d/filter-firewall文件
10.1 Linux的主要安全问题操作系统的安全与否,直接影响用户的工作和应用,以及整个网络的安全。因此分析 Linux系统的安全机制,找出可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。本节将从系统安全、
用户安全和网络服务安全等方面介绍基本的安全知识
。
系统安全
( 1)设置 BIOS密码
( 2)分区安全
( 3)文件权限安全对于系统中的某些关键文件,可修改其属性,防止意外修改和被普通用户查看。
用户安全
( 1)帐号安全应禁用默认被操作系统启用但不需要的帐号。
( 2)口令安全增加口令的最小长度,限制口令的使用时间。
( 3) root用户安全
( 4)用户资源限制为了防止大量恶意的请求和攻击,可以对系统中的用户都设置资源限制,如最大进程数,内存数量等。
网络服务安全
( 1)系统运行服务的安全修改 /etc/services文件来关闭不使用的服务。
统计当前系统打开的服务:
# ps -eaf | wc –l //统计当前系统打开服务的总数
( 2)系统启动脚本安全通过修改启动脚本来设置系统启动的服务和程序。
( 3) ping命令安全禁止主机系统对该命令做出响应。
10.2 PAM认证机制
PAM( Pluggable Authentication Modules,
插入式认证模块)是由 Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的 API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以根据需要给不同的服务配置以不同的认证方式
,且无需更改服务程序,同时也便于向系统中添加新的认证手段。 PAM最初是集成在 Solaris中,目前已移植到其它系统中,如 Linux,SunOS和 HP-UX 9.0等
。
PAM的分层体系结构
PAM为了实现插件功能和易用性,采取了分层设计思想,让各认证模块从应用程序中独立出来,然后通过 PAM API作为两者之间的接口。
PAM的分层体系结构认证模块层处于整个结构的最底层,它向上层接口层提供用户认证等服务,所有具体的认证工作都是由该层的模块来完成的。
1 认证模块层
2 应用接口层应用接口层位于 PAM结构的中间部分,它对上层应用程序屏蔽了用户认证等过程的具体细节,对下调用模块层中的具体模块所提供的特定服务。它主要由 PAM API和配置文件两部分组成。
10.2.2 PAM配置实例
( 1)控制可以登录系统的用户;只有 root可以从本地登录,bxs以及 stu用户可以从 192.168.100.0网段
telnet登录,其他用户均不可以登录系统。
修改 /etc/pam.d/login文件,在原来的基础上加入了以下这一条规则:
account required pam_access.so
accessfile=/etc/login.conf
PAM配置实例(续 1)
/etc/login.conf文件内容如下:
+:root:LOCAL
//root用户可以从本地登录
+:bxs stu:192.168.100.
//bxs和 stu可以从 192.168.100.0/24网段 telnet登录
-:ALL:ALL
//拒绝其他任何人登录
10.3 包过滤防火墙防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,也是信息的唯一出入口。它可通过监测、限制和更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。逻辑上,防火墙是分离器、
限制器和分析器,有效地监控内部网和 Internet之间的活动,保证内部网络的安全。
防火墙逻辑位置示意图防火墙地作用
( 1)保护脆弱的服务
( 2)控制对系统的访问
( 3)集中的安全管理
( 4)增强的保密性
( 5)记录和统计网络利用数据以及非法使用数据
( 6)策略执行
( 1)应用级网关应用级网关也就是通常提到的代理服务器。它适用于特定的互联网服务,如 HTTP服务,FTP服务等。
( 2)状态监测防火墙状态监测防火墙使用了在网关上执行网络安全策略的软件模块 ——监测引擎,采用抽取有关数据的方法对网络通信的各层实施监测防火墙形式包过滤防火墙
( 3)包过滤防火墙包过滤防火墙的工作原理
( 1)使用过滤路由器。
用于过滤数据包的路由器被称为过滤路由器。数据包过滤是通过对数据包的 IP头和 TCP或 UDP头的检查来实现的
( 2)过滤路由器的实现。
过滤路由器检查数据包,除了决定是否有到达目的地址的路径外,还要决定是否应该发送数据包,“应该与否”是由路由器的过滤策略决定并强行执行的。
包过滤路由器操作的基本过程包过滤路由器操作的基本过程(续 1)
具体步骤如下:
( 1)在包过滤设备上存储包过滤规则
( 2)包到达端口时,对包头进行分析,包括检查 IP,UDP
,TCP报头中的字段。
( 3)应用于包的规则的顺序,与设备上包过滤规则的顺序相同。
( 4)若一条规则阻止包传输或接受,则此包不被允许
( 5)若一条规则允许包传输或接受,则此包被继续处理。
( 6)若包不满足任何一条规则,则此包被阻止。
Netfilter/iptables简介
Netfilter是 Linux核心中的一个通用架构,它提供了一系列的表( tables),每个表由若干链( chains
)组成,而每条链中由一条或数条规则( rule)组成
。因此,可以理解 netfilter是表的容器,表是链的容器,而链又是规则的容器。
Netfilter总体结构
Netfilter的工作有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,可能有以下三种情况:
( 1)如果数据包的目的地址是本机,则系统将数据包送往 INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢弃。
Netfilter的工作(续 1)
( 2)如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往 FORWARD链,
如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉。
( 3)如果数据包是由本地系统进程产生的,则系统将其送往 OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉。
数据包在 Filter表中的流程图(续 1)
iptables语法
iptables [-t table] CMD [chain] [rule-matcher] [-j target]
table:表名。 iptable使用三个表分别是 filter,nat和 mangle。
对于包过滤防火墙只使用默认的表 filter。
CMD:操作命令,包括添加、删除、更新等。
chain:链名,对于包过滤防火墙可操作 filter表中的 INPUT链、
OUTPUT链和 FORWARD链。也可以操作由用户自定义的链。
rule-matcher:规则匹配器。可以指定各种规则匹配,如 IP地址
、端口和包类型等。
target:目标动作。当规则匹配一个包时,要执行的任务标识。
最常用的有 ACCEPT和 DROP。
iptables工具的调用语法如下:
对链的操作
对规则的操作
指定源地址和目的地址
指定协议
指定网络接口
指定 IP碎片
指定非
TCP匹配扩展
mac匹配扩展
limit匹配扩展
LOG目标扩展
REJECT目标扩展
iptables配置实例包过滤防火墙结构图
iptables配置实例(续 1)
防火墙的建立过程遵循以下步骤:
( 1)在 /etc/rc.d/目录下建立空的脚本文件,并添加可执行权限。
# touch /etc/rc.d/filter-firewall
# chmod u+x /etc/rc.d/filter-firewall
( 2)编辑 /etc/rc.d/rc.local文件,在末尾加上
/etc/rc.d/filter-firewall以确保开机自动执行该脚本。
# echo ―/etc/rc.d/filter-firewall‖>>/etc/rc.d/rc.local
( 3)使用文本编辑器编辑 /etc/rc.d/filter-firewall文件