033PPT

033PPT

第一单元 服务

服务

  • 网络服务,根据其使用的方法来分,可以被分为三类
  • 由init控制的服务
  • 由System V 启动脚本启动的服务
  • 由xinetd 管理的服务

由init控制的服务

  • 配置在/etc/inittab中
  • 可以设置respawn参数在服务每次被关闭时自动重启
  • inittab文件被改变后,可以用init q来使改动生效

由System V启动的服务

  • 由/etc/rc.d/init.d/目录下的System V脚本启动
  • /etc/rc.d/init.d/script {start | stop | restart}
  • 也可以用service命令来执行脚本。
  • 在不同运行级别下的默认开关可以不同
  • 用chkconfig来管理
  • 在有些地方也被称为standalone的服务

由xinetd管理的服务

  • 由xinetd管理
  • xinetd daemon
  • 服务管理文件放在/etc/xinetd.d/目录下
  • 编辑服务文件来开关服务
  • 重启xinetd

chkconfig

  • System V:
  • 决定在切换入某个运行级别下时,服务打开还是关闭
  • xinetd:
  • 在xinetd服务正在运行的情况下,直接开启或关闭基于xinetd的服务

第二单元 DNS

DNS

  • DNS:Domain Name Service/域名服务
  • 支持将计算机的域名解析成IP地址(正向搜索)
  • 支持将IP地址解析成计算机的域名(反向搜索)
  • 允许计算机根据逻辑组合成一个一个名字域

区、域及授权

  • 一个域(domain)包含一个完整的分级域名下层树
  • 一个区(zone)则是域的一部分,被一个具体详细的服务器所管理
  • 子域可以被授权成为附加的域
  • 一个区可以直接管理子域

英特网上的分级DNS

  • 根域名服务器
  • 作为区认证域名服务器的最高级别域名服务器存在
  • 为递归查询提供权威解释
  • 区认证域名服务器
  • 区的划分与认证
  • 主域名服务器与从域名服务器

主域和从域

  • 主域服务器
  • 拥有一个域的主复制数据
  • 从域服务器
  • 为主服务器提供自动数据备份
  • 每一个从服务器都会自动从主服务器处同步更新数据

客户端DNS

  • 客户端产生对IP与主机名解析的需求,通常DNS客户端上有许多程序运行时需要解析
  • 客户端检索本地数据文件的相关记录
  • 客户端将无法自行解释的需求,通过53端口送给指定的DNS服务器
  • 收回的数据也许并不权威

服务端DNS

  • 服务端接受请求
  • 如果自己无法给出回答,则可能将请求转发给上级服务器,或直接询问根域名服务器
  • 其上级服务器有可能给出回答,或进一步转交给其他域名服务器
  • 一个服务器上可以记录多个域的数据

BIND

  • BIND:Berkeley Internet Name Daemon
  • BIND是在Internet上应用最为广泛的DNS服务器
  • 提供稳定与可信赖的下层结构以提供域名与IP地址的转换

BIND服务一览

  • 后台进程:named
  • 脚本:/etc/rc.d/init.d/named
  • 使用端口:53(tcp,udp)
  • 所需RPM包:bind,bind-utils
  • 相关RPM包:bindconf,caching-nameserver
  • 配置文件:/etc/named.conf
  • 相关路径:/var/named/*

/etc/sysconfig/named

  • named进程被System V脚本激活后,会根据此文件的参数决定其运行参数:
  • 例如:OPTION=“-d 5”(将debug等级设为5)

/etc/named.conf

  • named.conf是BIND使用的默认配置文件
  • 在每一次named启动与挂起时都会被读取
  • 一个简单的文本文件,其中记录的可以包括options(全局参数)、zone(区域定义)、access control lists(访问控制列表)等

option

  • 在/etc/named.conf的options段中被宣告
  • 常用的参数包括
  • directory:指定zone file的存放位置
  • forwarders:指定其上级域名服务器
  • allow-query:指定允许向其提交请求的客户
  • allow-transfer:指定允许复制zone数据的主机

主域

  • 由一个zone段在/etc/named.conf中宣告
  • type master;
  • file:存放该zone数据的文件名
  • 必须存在于options段中提及的目录之下
  • 文件名可以随意
  • allow-update:允许动态更新该zone数据的客户机

从域

  • 由一个zone段在/etc/named.conf中宣告
  • type slave;
  • master:指定其主域名服务器
  • 对应的主域名服务器必须承认并存放有该区域的数据
  • file:本地用于存放zone数据的文件
  • 从域名服务器总是试图与其master联系并获取一份当前数据的副本

反解析域

  • 域的名字必须用.in-addr.arpa来结尾
  • 由一个zone段在/etc/named.conf中宣告
  • 反解析域一般对应到一个具体的IP段
  • 反解析域同样可以配置为从域
  • 许多服务会尝试进行反解析

根域

  • 根域“.”
zone "." IN {
type hint;
file "named.ca";
};

zone文件

  • 文件通常存放在/var/named目录下
  • 用于存放指定域内的各种资源与数据
  • 第一段资源记录被成为起始授权记录(SOA)
  • 每一个在/etc/named.conf中定义的zone都应该对应一个具体的zone文件

资源记录

  • SOA:定义起始授权
  • NS:指定域名服务器
  • MX:指定邮件服务器
  • A:将一个域名解析成其后的IP
  • CNAME:将一个域名设置为另一个域名的别名
  • PTR:将一个IP地址指向一个域名

SOA记录

  • SOA(Start of Authority):起始授权
  • 每一个域文件中都应该有一个SOA 段
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum

NS记录

  • NS(name server):域名服务器
  • 每一个主域名服务器和从域名服务器都应该拥有一条NS记录,以防止主服务器在出现故障后,从服务器不能及时提供服务
    @ IN NS server1.example.com.
    example.com IN NS server1.example.com.

资源记录

  • A记录
  • 用于将主机名对应成IP地址
  • CNAME记录
  • 用于定义某一个地址的别名
  • PTR记录
  • 用于将IP地址对应成一个主机名

MX与HINFO记录

  • MX:用于定义某一个域里负责的邮件服务器
  • 每一条MX记录前都需要指定优先级别
    example.com IN MX 5 mail
  • HINFO记录提供解析时对一台主机做补充注释
    server1 IN HINFO master server

Round Robin

  • 利用复数A记录来均衡数台服务器的访问负载
    www 0 IN A 192.168.0.3
    www 0 IN A 192.168.0.4
    www 0 IN A 192.168.0.5

r n d c

  • 域名服务器控制程序
  • 安全防范,远程控制运行的域名服务器
  • 使用TSIG 安全
  • 例如:
    [root @stationxx root]# rndc reload
  • rndc 默认只监听本地loopback端口

BIND语法检查工具

  • 在BIND出错时使用如下工具:
    named-checkconf
    默认检查的配置文件是 /etc/named.comf
    named-checkzone
    检查一个Zone文件的配置

redhat-config-bind

  • 图形界面下的BIND配置工具
  • 简单清晰地完成BIND配置
  • 可对应多个版本的BIND
  • 配置文件存放在/etc/alchemist/namespace/dns/local.adl

第三单元 Samba

SAMBA 原理概述

  • SAMBA:Send Message Block
  • 整合了SMB协议及Netbios协议,使其运做在TCP/IP上。
  • 能够让Unix based的机器与windows互动。
  • SAMBA服务有两个进程:
  • smbd:SMB服务器
  • nmbd:netbios名字服务器

SAMBA 服务一览

  • 后台进程:smbd,nmbd
  • 脚本:/etc/rc.d/init.d/smb
  • 使用端口:137,138,139
  • 所需RPM包:samba,samba-common,samba-client
  • 相关RPM包:samba-swat
  • 配置文件:/etc/samba/smb.conf

SAMBA 的配置

  • samba的配置文件:/etc/samba/smb.conf
  • 由数个[]将配置文件分成数段,例如:
    [global]:一些全局配置
    [homes]:让用户可以访问其主目录
    [printers]:定义共享的打印机资源
  • 图形界面下的配置工具
  • SWAT(Samba Web Admin Tool)
  • redhat-config-samba

全局设置

  • 全局设置写在[global]段内,主要是指samba服务器的一些全局设定
  • workgroup
  • server string
  • hosts allow
  • security
  • encrypt passwords
  • smb passwd file

共享段

  • 共享段用于在samba服务器上开放共享目录
  • 一般每一个[ ] 表示一个指定的共享目录,[ ]内写的是目录的共享名

测试samba服务

  • 用户可以利用testparm指令来检查smb.conf文件的语法。
  • 只能检查关键字段的拼写错误。对于配置值错误需要结合日志文件来判断。
  • 用户可以用service smb status判断samba服务的开启状况
  • 用户可以用nmblookup来检查本机上的samba服务是否正确开启

管理smb用户

  • samba服务支持用户级别的共享限制
  • 使用smbadduser添加可以使用smb服务的用户。
  • 语法:smbadduser linux帐号:windows帐号
  • 使用smbpasswd改变用户的密码。
  • 用户密码存放在/etc/samba/smbpasswd文件中
  • 用户映射存放在/etc/samba/smbuser文件中

smbclient

  • 可以用来向服务器请求samba服务资源列表
  • smbclient –L 主机名
  • 可以用来象一个ftp客户端一样访问samba共享资源
  • smbclient -U student%XXX //server1/tmp

smbmount

  • smbmount可以将远端的一个window共享目录,或Unix系统通过samba服务共享出来的目录,挂载到自己的Linux文件系统上。
  • 语法:smbmount //server1/tmp /mnt/tmp –o \
    username=student,password=XXX
  • 用于替代mount –t smb

第四单元 电子邮件服务

邮件发送模型

  • 邮件用户代理(MUA)将信息传送给邮件传输代理(MTA)
  • 邮件传输代理决定信息送至目的地的路由,然后根据情况决定是否还需要将信息交给中介邮件传输代理
  • 域邮件传输代理将邮件送至邮件投递代理(MDA)
  • 用户收到邮件

SMTP协议

  • SMTP:Simple Mail Transfer Protocol/简单邮件传送协议
  • 定义邮件传送
  • 基于TCP服务的应用层
  • RFC0821
  • 明文传送

SMTP协议的使用

  • SMTP协议使用25端口
  • SMTP协议命令
  • HELO:通报来访者地址
  • MAIL FROM:发件人地址
  • RCPT TO:收件人地址
  • DATA:输入正文内容,用单独的.为行结束
  • QUIT:连线结束

安全与反垃圾邮件策略

  • 安全策略
  • 拒绝从无法解析的域送来的邮件
  • 建立各种基于主机、用户、域的访问控制
  • 默认配置仅允许本地收发
  • 不再使用setuid的工具
  • 反垃圾邮件策略
  • 默认情况下不做转发
  • 建立访问数据库
  • 检查邮件信头

sendmail

  • sendmail是使用十分广泛的邮件提交工具(MSP)
  • 在邮件模型中承担着MTA及MDA的作用
  • 支持多种类型的邮件地址寻址
  • 支持虚拟域及虚拟用户
  • 允许用户及主机伪装
  • 提供在投递失败后自动重发等多种错误应对策略

sendmail服务一览

  • 后台进程:sendmail
  • 脚本:/etc/init.d/sendmail
  • 使用端口:25(smtp)
  • 所需RPM包:sendmail,sendmail-cf,sendmail-doc
  • 配置文件:/etc/sendmail.cf,/etc/aliases,/etc/mail/,/usr/share/sendm ail-cf/
  • 相关服务:procmail

sendmail的主要配置文件

  • /etc/sendmail.cf是默认的sendmail主要配置文件
  • 包含域别名段,信头格式段,转发规则等数据
  • 很少被直接修改
  • /etc/mail/submit.cf被用于每次sendmail被一个用户工具所调用的时候
  • 通常不需要修改

用m4生成sendmail.cf

  • m4是UNIX下使用的传统宏处理器
  • sendmail.cf可以由一个宏文件经m4处理后得到
  • Red Hat默认使用/etc/mail/sendmail.mc为/etc/sendmail.cf的宏文件
    m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
  • 我们推荐使用m4处理sendmail.mc来得到sendmail.cf

编辑sendmail.mc

  • 每一个sendmail.mc宏应该定义了操作系统类型、文件位置、请求特征及邮件发送工具、用户列表
  • 在每一行的开头添加dnl表示注释
  • 默认情况下,sendmail服务器只侦听本地的连接
  • 注释
    DAEMON_OPTION(‘PORT=smtp,Addr=127.0.0.1,Name=MTA’)

其他有用的配置

  • FEATURE(’accept_unresolvable_domains’)
  • 接受无法反向解析的域来的邮件
  • FEATURE(’dnsbl’)
  • 支持根据dns黑洞列表来拒绝垃圾邮件
  • FEATURE(’relay_based_on_MX’)
  • 自动接受DNS中MX记录来源的邮件转发
  • FEATURE(’blacklist_recipients’)
  • 允许使用黑名单查禁收件人

/etc/mail/access

  • 用于定义接受或拒绝的邮件来源:
  • 格式:
    IP/域名 设定值
  • 设定值:
  • REJECT:拒绝
  • OK:无条件接受
  • RELAY:允许转发
  • DISCARD:丢弃

/etc/mail/virtusertable

/etc/aliases

  • 定义本地用户的别名
  • 别名后的映射对象可以是:
  • 一个本地用户
  • 多个本地用户(用逗号分隔)
  • 本地文件(需要指出路径)
  • 指令(需要管道)
  • 另一个email地址
  • 设定完/etc/aliases后,需要运行newaliases更新aliases.db

邮件收取

  • MDA将收到的信件根据用户存放在/var/spool/mail下
  • /var/spool/mail目录下每一个文件对应与文件名同名的用户
  • 用户使用mail等工具阅读完信后,未被删除的邮件会自动转存到用户主目录下的mbox文件中

POP3协议

  • POP3:Post Office Protocol 3/邮局协议第三版
  • POP3协议适用于不能时时在线的邮件用户。支持客户在服务器上租用信箱,然后
    利用POP3协议向服务器请求下载
  • 基于TCP/IP协议与客户端/服务端模型
  • POP3的认证与邮件传送都采用明文

使用pop3协议

  • POP3协议使用110端口
  • POP3协议命令
  • USER:通报用户名
  • PASS:输入密码
  • LIST:列出所有邮件大小
  • RETR:阅读邮件
  • DELE:删除邮件
  • QUIT:连线结束

配置pop3服务器

  • pop3服务一般是基于xinetd的服务
  • 可以通过两种方式开启和关闭服务
  • 编辑/etc/xinetd.d/ipop3并重启xinetd
  • 使用chkconfig来开启或关闭服务

IMAP

  • IMAP:Internet Message Access Protocol/英特网信息存取协议
  • 另一种从邮件服务器上获取邮件的协议
  • 与POP3相比,支持在下载邮件前先行下载邮件头以预览邮件的主题来源
  • 基于TCP/IP
  • 使用143端口

邮件接收工具

  • mozilla-mail
  • mozilla下的邮件接收工具
  • 采用netscape mail的风格
  • evolution
  • GNOME下的默认邮件接收工具
  • 采用windows下的outlook风格
  • kmail
  • kde下的邮件接收工具
  • fetchmail
  • 字符界面下的邮件接收工具

配置fetchmail

  • fetchmail支持多种邮件接收协议
  • fetchmail的配置文件是用户主目录下的.fetchmailrc文件
  • “.fetchmailrc”中每一行代表一个邮件信箱
  • 范例:
    poll pop.provider.net protocol pop3 username “kevinzou” password “nopass”

procmail

  • procmail是一个非常强大的邮件转发工具
  • 可以用来:
  • 对收到来信进行排序,并送入不同目录
  • 预处理邮件
  • 在收到一封邮件后激活一个事件或程序
  • 自动转发邮件给其他用户
  • 默认情况下sendmail会将procmail设定为本机转发邮件工具
  • 有可能在短时间内产生大量转发邮件,因此配置时应小心谨慎

简单配置procmail

  • procmail的配置文件是用户主目录下的 ”.procmailrc”
  • 如需将来自kevinz关于linux的邮件转发给todd,并复制入linux目录:
:0
*^From.*kevinz
*^Subject:.*linux
{ :0 c
! todd@wenhua.org
:0
linux
}

邮件读写工具

  • 图形界面下的邮件接受工具一般也可以用来读写邮件
  • 字符界面下的邮件读写工具
  • mail
  • 非常简单地邮件读写工具
  • pine
  • 支持添加附件
  • 支持将已读文件存入指定目录

第五单元 WEB服务器

http 服务原理

  • 超文本传送协议
  • 基于客户端 服务端模型
  • 协议流程:
  • 连接:客户端与服务端建立连接
  • 请求:客户端向服务端发送请求
  • 应答:服务端响应,将结果传给客户端
  • 关闭:执行结束后关闭

web服务器 apache

  • 应用广泛的web服务器
  • 支持进程控制
  • 在需要前自动复制进程
  • 进程数量自动使用需求
  • 支持动态加载模块
  • 不需重编译就可扩展其用途
  • 支持虚拟主机
  • 允许使用一台web服务器提供多个web站点的共享

apache服务一览

  • 后台进程:httpd
  • 脚本:/etc/rc.d/init.d/httpd
  • 使用端口:80(http),443(https)
  • 所需RPM包:apache,apache-devel,apache-manual
  • 相关RPM包:apacheconf
  • 配置路径:/etc/httpd/,/var/www/

apache的配置文件

  • 配置文件储存为
     /etc/httpd/conf/httpd.conf
  • 设置标准网络服务器参数、虚拟主机、模块
  • 定义文件名与mime类型
  • 访问控制
  • 默认的html存放位置
  • /var/www/html

全局配置

  • ServerType:选择系统激活服务器的方式。可以是inetd或standalone
  • ServerRoot:设定Apache安装的绝对路径
  • TimeOut:设定服务器接收至完成的最长等待时间
  • KeepAlive:设定服务器是否开启连续请求功能
  • MaxKeepAliveRequests:设定服务器所能接受的最大连续请求量

全局配置(二)

  • KeepAliveTimeout:使用者 ‘连续’ 请求的等待时间上限
  • MinSpareServers:设定最小闲置子进程数
  • MaxSpareServers:设定最大闲置子进程数
  • StartServers:设定激活时所需建立的子进程数
  • MaxClients:设定同时能够提供使用者的最大服务请求数

主机配置

  • Port:设定http服务的默认端口。
  • User/Group:设定服务器程序的执行者与属组
  • ServerAdmin:设定站点管理者的电子邮件
  • ServerName:设定服务器的名称
  • DocumentRoot:设定服务器的共享路径
  • DirectoryIndex:设定默认调用文件顺序
  • ErrorLog:设定错误记录文件名称

虚拟主机

  • 在同一台服务器上配置多个共享服务
  • 在虚拟主机中未指定的配置即采用主机配置
<VirtualHost 192.168.0.254>
ServerName www254.example.com
DocumentRoot /var/www/virtual
</VirtualHost>

访问控制

  • Apache提供目录级别与文件级别的基于主机的多种访问控制
  • Apache提供目录级别基于用户密码的访问控制

.htaccess

  • Apache支持在需要限制访问的目录下,建立 .htaccess文件来实行访问限制。
  • 用户可以根据httpd.conf中记录的AllowOverride内容,在 .htaccess文件添加访问控制语句以取代在httpd.conf中的记录。
  • 改变 .htaccess文件设置不需要重启httpd

CGI

  • CGI程序只能放在有设定ScriptAlias的目录下才可以使用。
    ScriptAlias /cgi-bin/ /cgi-bin/
  • Apache 可以通过加载模块来倍化CGI程序的速度

Apache加密网站

  • Apache用443端口提供https服务
  • 需要加载mod_ssl模块
  • 相关配置文件在/etc/httpd/conf.d/ssl.conf
  • 加密配置
  • 认证:conf/ssl.crt/server.crt
  • 私钥:conf/ssl.key/server.key
  • 认证/钥匙生成
  • /usr/share/ssl/certs/Makefile
  • 个人签名认证:make testcert
  • 认证签名需要:make certreq

Squid Web Proxy Cache

  • Squid支持为FTP、HTTP等其他数据流做代理
  • Squid会将SSL请求直接转给目标服务器或另一个代理
  • Squid提供诸如访问控制列表、缓存管理及HTTP服务器加速

第六单元 NFS、FTP和DHCP

NFS

  • NFS:Network File System/网络文件系统
  • Linux与Linux之间的文件共享
  • 提供远端读存文件的服务

NFS 原理概述

  • 建立在RPC协议上的服务,使用时需要打开portmap
  • 基于客户端 服务器端模型
  • 服务端为多个客户端提供服务
  • 客户端也可以从多个服务端处获得文件目录

NFS 服务一览

  • 后台进程:nfsd,lockd,rpciod,rpc.mounted,rpc.rquotad,rpc.statd
  • 脚本:/etc/init.d/nfs,/etc/init.d/nfslock
  • 使用端口:由portmap (111)分配
  • 所需RPM包:nfs-utils
  • 相关RPM包:portmap(必需)
  • 配置文件:/etc/exports

NFS 客户端策略

  • 检查服务端的nfs共享资源
  • showmount -e server
  • 将服务端开放的nfs共享目录挂载到本机上的一个目录
  • mount -t nfs server:/share /mnt/nfs

NFS 服务端配置

  • 编辑/etc/exports文件以配置开放路径
  • 路径 对象(方式)
  • 确保portmap服务已开启
  • 打开或重启nfs服务
  • service nfs start/restart

FTP

  • vsftpd是RedHat Linux默认使用的ftp服务端软件
  • vsftpd 不再依赖于xinetd服务
  • 允许匿名或本地用户访问
  • 匿名访问不须额外的RPM包
  • /etc/vsftpd/vsftpd.conf是默认的配置文件

ftp服务一览

  • 后台进程:vsftpd
  • 类型:System V 服务
  • 使用端口:20(ftp-data),21(ftp)
  • 所需RPM包:vsftpd
  • 配置文件:/etc/vsftpd/vsftpd.conf
    /etc/vsftpd.ftpusers
    /etc/pam.d/vsftpd
  • 日志:/var/log/vsftpd.log

FTP用户控制

  • /etc/vsftpd.ftpusers
  • /etc/vsftpd.user_list

FTP测试工具

  • ftpwho:查看当前使用ftp的用户
  • ftpcount:查看当前连线数目

DHCP

  • DHCP:动态主机配置协议
  • 使用服务端的dhcpd来提供服务
  • dhcpd可以同时为DHCP及BOOTP客户端提供服务

dhcp服务一览

  • 后台进程:dhcpd
  • 脚本:/etc/rc.d/init.d/dhcpd
  • 使用端口:67(bootps),68(bootpc)
  • 所需RPM包:dhcpd
  • 相关RPM包:
  • 配置文件:/etc/ftpaccess,/etc/ftphosts,/etc/ftpusers
  • 日志:/var/log/xferlog

配置dhcp服务

  • /etc/dhcpd.conf
  • 范例:
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.253;
default-lease-time 21600;
max-lease-time 43200;
option domain-name “example.com”;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
}

常用dhcp配置参数

  • subnet X.X.X.X netmask X.X.X.X
  • 指定dhcp服务工作网段
  • range
  • 指定分配地址段
  • default-lease-time
  • 默认租期(请求续租时间)
  • max-lease-time
  • 最大租期

常用dhcp配置参数(二)

  • option routers
  • 分配路由器
  • option domain-name
  • 分配域名
  • option domain-name-servers
  • 分配DNS server

IP绑定

  • host
  • 为绑定主机起名(并不是分配给对方的名字)
  • hardware ethernet
  • 指定硬件地址
  • fixed-address
  • 指定IP地址或主机名
  • 支持为绑定主机单独分配其他网络数据

第七单元 安全及策略

安全术语

  • 什么是安全?
  • 加密
  • 数据完整
  • 可用
  • 系统安全由系统中最小的安全组件决定
    (木桶原理)

基础网络安全

  • 大多数的计算机都连接到网络上—局域网、广域网或者Internet
  • 由于连接在网络上,增加了对操作系统和后台服务的危胁

常用术语的定义

  • 黑客
  • 破解者(骇客)
  • 拒绝服务
  • 缓冲溢出
  • 病毒
  • 特洛伊木马
  • 蠕虫

安全策略

  • 物理上的安全性
  • 用户限制
  • 服务限制
  • 网络限制
  • 加密

安全策略 (续)

  • 安全策略是为了加强对系统安全特性和管理而定义的规则
  • 审核
  • 让我们检查使用的安全工具
  • 实际中使用的安全策略

审核

  • 分析 目前的情况
  • 了解 安全需求
  • 确定 如何实现它们
  • 实施 安全机制
  • 测试 安装

入侵检测

  • 工具
  • 嗅探器(sniffers)
  • 渗透检测器
  • 记录
  • 日志
  • 日志工具

发现入侵后的措施

  • 反应,保护,镜像,恢复,搜索,报告
  • 第一步:反应
  • 第二步:保护

发现入侵后的措施 续1

  • 反应,保护,镜像,恢复,搜索,报告
  • 第三步:镜像
  • 第四步:恢复

发现入侵后的措施 续2

  • 反应,保护,镜像,恢复,搜索,报告
  • 第五步:搜索
  • 第六步:报告

备份策略

  • 一个好的备份策略可以使你从灾难中恢复出来
  • 通常备份策略由以下组成:
  • 一次定期的完全备份
  • 每日增量备份
  • 备份媒体远距离存储

第八单元 NIS

什么是NIS服务

  • NIS:Network Information Service
  • 基于客户端 服务端模型
  • 公用资料集中存放在服务端管理
  • 提供复数的客户端访问使用
  • 基于RPC协议

NIS服务一览

  • 服务类型:SystemV
  • 后台进程:ypserv,ypbind,yppasswdd
  • 使用端口:由portmap (111)分配
  • 所需RPM包:ypserv,ypbind,yp-tools
  • 相关RPM包:portmap
  • 服务端配置文件:/etc/ypserv.conf /var/yp/*

NIS服务端与客户端

  • NIS客户端的后台进程是ypbind,服务端的后台进程是ypserv
  • 服务端支持NIS协议第一版与第二版
  • 客户端还多支持NIS+(v3)
  • NIS的局限性
  • 安全性差
  • 可扩展性不足
  • unix-only

NIS客户端基础

  • NIS客户端工具ypbind可以通过两种方式获知其域内的服务器是谁
  • 在NIS域内广播
  • 通过/etc/yp.conf读取本域内NIS服务器的位置
  • 使用工具配置客户端
  • 使用authconfig将本机添加入一个NIS域
  • 指定一个NIS服务器

/etc/nsswitch.conf

  • nsswitch.conf记录了系统查询用户密码、组、主机名等资源的遵循顺序
  • 确定nsswitch.conf文件中需要向服务器查询数据的资源顺序中包含NIS项
  • 查询资源可以是:
  • files:本地文件
  • dns:域名服务器
  • nis/nisplus:NIS服务器
  • ldap:ldap服务器
  • db:数据库

NIS服务器布局

  • 扁平结构
  • 一个主服务器负责一个域
  • 一个主服务器可以带领多个从服务器
  • 提供容错
  • 负载均衡

配置NIS服务端

  • 在/etc/sysconfig/network中设定一个NIS domain:NISDOMAIN=mydomain
  • 修改/var/yp/Makefile决定需共享的数据
  • 在/var/yp/securenets中指定许可共享的网段
  • 执行/usr/lib/yp/ypinit -m
  • 执行service ypbind start
  • 执行service ypserv start

配置NIS从服务器

  • 将所有从服务器名放在/var/yp/ypservers文件中
  • 在每一个从服务器上安装ypserv
  • 使用以下指令:
    /usr/lib/yp/ypinit –s 主服务器名

NIS工具

  • ypcat:列出来自NIS server的map信息
  • ypinit:建立并安装NIS database
  • ypwhich:列出NIS server的名称
  • ypset:强制指定某台机器当NIS server
  • makedbm:创造NIS map的dbm档

第九单元 系统安全

监视文件系统

  • 监视文件系统可以防止:
  • 硬盘空间被占满
  • 可能造成安全问题的错误权限
  • 监视文件系统包括:
  • 数据正确性检验
  • 搜寻不需要或可能造成系统破坏的文件

常规搜寻

  • 搜寻所有设置了强制位的文件
    find / -type f –perm +6000
  • 搜寻可以被任何用户写入的文件
    find / -type f –perm 2
  • 搜寻不属于任何用户与组的文件
    find / -nouser –o -nogroup

Tripwire

  • 系统文件应该时时处于周密的监视下
  • 配置文件被更改可能造成服务的启动与运行故障
  • 可执行文件被更改可能造成更大的问题
  • tripwire可以根据配置监测文件/目录的大小、更改时间、inode状态、所属用户/组及一系列属性

配置与使用tripwire

  • 安装tripwire RPM包
  • 编辑twcfg.txt与twpol.txt,根据安装情况来定义配置与监视策略
  • 运行/etc/tripwire/twinstall.sh
  • 用tripwire –init在/var/lib/tripwire/下建立原始数据库{$HOSTNAME}.twd
  • 用tripwire –check来根据数据库检查系统
  • 用‘twprint –m r –twrfile 文件名’来阅读监视报告

为Boot Loader加密

  • LILO
  • 密码明文存放在/etc/lilo.conf中
  • 可以应用于全局及局部
  • 用于防止用户进入操作系统
  • GRUB
  • 密码经过md5加密
  • 可以应用于全局及局部
  • 用于防止用户更改启动参数

插装型认证模块(PAM)

  • /lib/security
  • 动态可加载库
  • 集中安全管理
  • 配置在模块被调用时即生效
  • /etc/pam.d
  • 为PAM ‘客户’配置文件
  • 选择需要的库
  • 满足所有条件通过认证或失败

PAM 配置

  • /etc/pam.d/system-auth
  • 控制标志
  • 决定PAM如何使用模块调用后的返回值
  • required,sufficient,或optional
  • /etc/security/下包含了部分配置文件

核心PAM模块

  • pam_env:环境变量初始化
  • pam_unix
  • 标准unix认证
  • 允许更改密码
  • pam_cracklib:强制使用好密码

常用的pam模块

  • pam_nologin
  • 如果/etc/nologin存在,则除了root用户,任何用户不能登录
  • pam_securetty
  • 在/etc/securetty文件中存放的,是root用户可以登录的终端
  • 不限制用户登录完成后用su切换成root

常用的pam模块(二)

  • pam_access
  • 用一个简单的配置文件完成基于用户、组、及来源的访问限制
  • 使用/etc/security/access.conf为其配置文件
  • pam_listfile
  • 允许用户针对某一服务单独建立文件来建立基于用户、组、本地终端、远端主机的限制

常用的pam模块(三)

  • pam_limits
  • 允许在许可用户使用服务后,对用户的使用资源,进行各种设置
  • pam_time
  • 使用一个简单的配置文件,来建立基于时间的服务访问限制
  • 使用/etc/security/time.conf为配置文件

sudo

  • 让一般用户有可能使用root才可以使用的系统管理指令
  • 需要配置/etc/sudoers文件,来定义哪些用户可以使用哪些指令,以及使用时是否需要密码
  • 用visudo编辑/etc/sudoers文件
  • 用‘sudo 系统指令’执行系统指令

第十单元 防火墙和IP伪装

iptables

  • iptables是Red Hat Linux里默认使用的防火墙
  • iptables提供多个设定参数可以用来定义过滤规则,包括IP/MAC地址、协议、端口、子网掩码
  • iptables支持在路由算法发生前后进行网络地址转换

iptables结构

  • iptables将防火墙的功能分成多个tables
  • filter:数据包过滤
  • NAT:Network Address Translation/网络地址转换
  • tables又包含多个chains
  • 5条默认基础操作chains
  • 允许用户自行定义chains

iptables语法

iptables [-t table] <action> [pattern] [-j target]
- action包括:
-A chain:在chain中增添一条规则
-D chain:在chain中删除一条规则
-L chain:列出chain中的规则
-F chain:清空chain中的规则
-P chain:为chain指定新的默认策略,可以是:
- ACCEPT:未经禁止全部许可
- DROP:未经许口全部禁止

iptables语法(二)

  • pattern包括:
    -s

filter table

  • 用于过滤数据包的接送
  • chain INPUT:
  • 设定远端访问主机时的规则
  • 来源是远端访问者,目标是本地主机
  • chain OUTPUT:
  • 设定主机访问远端主机的规则
  • 来源是本地主机,目标是远端被访问主机
  • chain FORWARD:
  • 设定主机为其他主机转发数据包时的规则
  • 来源是请求转发的主机,目标是远端被访问的主机

NAT table

  • 用于处理网络地址转换
  • chain PREROUTING:
  • 路由算法发生之前
  • 转换数据包内的来源地址
  • chain POSTROUTING:
  • 路由算法发生之后
  • 转换数据报内的目标地址

用NAT table完成IP伪装

  • 对于负责内部子网的路由器,需要为保留地址进行IP伪装
  • 使用IP伪装功能需要打开本机上的IP转发功能
  • 范例:
    iptables –t nat –A POSTROUTING -s 192.168.0.0/24 -o eth1 –j MASQUERADE

第十一单元 网络安全

基础网络安全

  • 越来越多的计算机被连接到网络上
  • 与网络连通对操作系统和后台进程意味着冒险,被寄生与攻击的可能

基于主机的安全

  • 限制不受欢迎的来源
  • 封锁不作利用的端口
  • 不安装与启动不使用的服务
  • 一般,每一种服务本身一般都会提供方式做相关限制
  • 配制防火墙保护主机

tcp_wrapper

  • 基于主机与服务
  • 使用简单的配置文件来设置访问限制
  • /etc/hosts.allow
  • /etc/hosts.deny
  • 基于xinetd的服务也能在其配置中调用libwrap
  • 配置一旦被改变,立刻生效

tcp_wrapper的配置

  • 访问控制判断顺序:
  • 访问是否被明确许可
  • 否则,访问是否被明确禁止
  • 如果都没有,默认许可
  • 配置文件
  • 许可用:/etc/hosts.allow
  • 禁止用:/etc/hosts.deny
  • 基本语法:
    后台进程列表:客户端列表 [:参数]

后台进程描述

  • 后台进程列表应该是:
  • 服务的可执行工具名
  • 允许指定多项服务
  • 允许使用ALL来匹配所有服务
  • 允许可执行工具名后添加IP或主机名,如果本机有多个网络界面

客户端列表

  • 客户端描述可以包含:
  • IP地址(192.168.0.254)
  • 域名或主机名(.example.com, www.wenhua.org )
  • 子网掩码(192.168.0.0/255.255.255.0)
  • 网络名(@mydomain)

高级语法

  • 通配符
  • ALL:所有
  • LOCAL:所以主机名中不包含.的主机
  • UNKNOWN:无法被解析的主机
  • KNOWN:可以双向解析的主机
  • PARANOID:正向解析成功但无法反向解析的主机
  • EXCEPT
  • 可用于服务列表与客户端列表
  • 可以层层套用

基于xinetd的服务

  • xinetd服务支持两种访问限制
  • 基于主机
  • 基于时间
  • 在xinetd与tcp_wrapper都限制的情况下:
  • 先检查tcp_wrapper
  • 如果tcp_wrapper允许,再检查xinetd是否也允许

0 配置xinetd访问限制

  • 可以写在/etc/xinetd.conf中,也可以写在/etc/xinetd.d/目录下的文件中
  • 可以使用的控制语句:
  • only_from = 客户端描述
  • no_access =客户端描述
  • access_time =客户端描述
  • per_source = 数量

第十二单元 加密与保护

加密的意义

  • 数据不加密可能造成的后果
  • 密码/数据被盗听
  • 数据被篡改
  • 认证被操纵
  • 不安全的服务和协议
  • 密码不安全:telnet,ftp,pop3等等
  • 数据不安全:sendmail,nfs等等
  • 认证不安全:rsh,rcp等等

单向校验

  • 对数据文件用工具求值,并与原文件求得值做比较以验证文件是否为原文件
  • 常用的工具:
  • sum(CRC-32)
  • md5sum(MD5)
  • sigen(CRC-32/MD5/SHA/HAVAL)

不对称加密

  • 基于公钥与私钥组
  • 原理:
  • 先由收信人生成一对公钥与私钥
  • 收信人将公钥发布出去,留下私钥
  • 送信人获取公钥,然后用公钥将传送给收信人的信息加密
  • 收信人收到加密信息后再用私钥将信息解密

数字签名

  • 另一种同样基于公钥与私钥组的不对称加密
  • 原理:
  • 发信人先生成一对公钥与私钥
  • 发信人将公钥发布出去,留下私钥
  • 发信人用私钥将所传送的信息加密,然后送出
  • 收信人用获得的公钥将信息解密

openssh

  • openssh用来普遍替代了不安全的基本网络通讯工具
  • 支持用户与基于标记的认证
  • 需要预先安装openssl
  • openssh基础配置放在/etc/ssh下

ssh客户端

  • ssh:安全shell进程
  • ssh 主机名
  • ssh 用户@主机名
  • ssh 主机名 远端指令
  • scp:基于ssh的安全远端拷贝文件与目录
  • scp 文件 用户@主机名:远端目录
  • scp –r 用户@主机名:远端目录 本地目录
  • sftp:基于ssh的安全ftp传送
  • sftp 主机名
  • sftp –C 用户@主机名

ssh服务端

  • 配置ssh服务端,需要安装openssh-server
  • 后台进程sshd,作为一个System V服务,可以用/etc/init.d/sshd脚本来控制
  • 采用公钥与私钥组机制
  • 使用22为其服务端口
  • 支持libwrapper的限制

RPM检验

  • 未经检验的RPM包可能是危险的
  • Red Hat对其认证过的RPM包提供md5及gpg-key的认证
  • 用户可以自行检验RPM包是否经过认证
    rpm –K RPM包名
  • 导入gpg-key
    gpg –import /mnt/cdrom/RPM-GPG-KEY

第十三单元 服务 排错

排除的步骤

  • 从最简单的问题找起
  • 在修改配置之前先看日志文件
  • 使用服务的调试模式
  • 使用相应的语法检查器
  • 更多的问题可以去http://bugzilla.redhat.com 查寻

关于服务的问题

  • 检查服务的log文件
  • 检查是否可以正确的解析域名或是IP地址
  • 检查相依赖的服务或是网络的配置
  • 检查安全设置和访问控制连接许可

网络的问题

  • 域名解析的问题
  • Ip地址配置的问题
  • 默认网关的问题
  • 路由的问题
  • 网卡模块的问题
  • 设备激活的问题

猜你喜欢

转载自blog.csdn.net/caodenghua/article/details/80304834
PPT