最好的Linux系统安全教程.pptx_第1页
最好的Linux系统安全教程.pptx_第2页
最好的Linux系统安全教程.pptx_第3页
最好的Linux系统安全教程.pptx_第4页
最好的Linux系统安全教程.pptx_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux系统安全 BIOS安全LILO安全口令和帐号安全取消不必要的服务限制网络访问防止攻击替换常见网络服务应用程序防火墙常见安全工具 一 BIOS安全 一定要给Bios设置密码 以防通过在Bios中改变启动顺序 而可以从软盘启动 这样可以阻止别人试图用特殊的启动盘启动你的系统 还可以阻止别人进入Bios改动其中的设置 比如允许通过软盘启动等 二 LILO安全 LILO是LInuxLOader的缩写 它是LINUX的启动模块 可以通过修改 etc lilo conf 文件中的内容来进行配置 在 etc lilo conf 文件中加入下面三个参数 time out restricted password 这三个参数可以使你的系统在启动lilo时就要求密码验证 配置步骤 编辑lilo conf文件 vi etc f 假如或改变这三个参数 boot dev hdamap boot mapinstall boot boot btime out 00 把这行改为00promptDefault linux 二 LILO安全 restricted 加入这行password 加入这行并设置自己的密码image boot vmlinuz 2 2 14 12label linuxinitrd boot initrd 2 2 14 12 imgroot dev hda6read only因为 etc lilo conf 文件中包含明文密码 所以要把它设置为root权限读取 root kapil chmod600 etc lilo conf更新系统 以便对 etc lilo conf 文件做的修改起作用 Root kapil sbin lilo v使用 chattr 命令使 etc lilo conf 文件变为不可改变 root kapil chattr i etc lilo conf这样可以防止对 etc lilo conf 任何改变 以外或其他原因 三 口令和帐号安全 1 删除所有的特殊账户应该删除所有不用的缺省用户和组账户 比如lp sync shutdown halt mail 不用sendmail服务器可删除帐号news uucp operator games 不用Xwindows服务器可删掉帐号gopher删除语法 删除用户 root kapil userdelLP删除组 root kapil groupdelLP 三 口令和帐号安全 2 取消普通用户的控制台访问权限应该取消普通用户的控制台访问权限 比如shutdown reboot halt等命令 root kapil rm f etc security console apps xx xx是你要注销的程序名 3 口令安全杜绝不设口令的帐号存在杜绝不设口令的帐号存在可以通过查看 etc passwd文件发现 例如 test 100 9 home test bin bash第二项为空 说明test这个帐号没有设置口令 这是非常危险的 应将该类帐号删除或者设置口令 三 口令和帐号安全 修改一些系统帐号的Shell变量系统帐号如uucp ftp和news等 还有一些仅仅需要FTP功能的帐号 一定不要给他们设置 bin bash或者 bin sh等Shell变量 方法 可以在 etc passwd中将它们的Shell变量置空 例如设为 bin false或者 dev null等 也可以使用usermod s dev nullusername命令来更改username的Shell为 dev null 这样使用这些帐号将无法Telnet远程登录到系统中来 三 口令和帐号安全 修改密码长度在你安装linux时默认的密码长度是5个字节 但这并不够 要把它设为8 修改最短密码长度需要编辑login defs文件 vi etc login defs 把下面这行PASS MIN LEN5改为PASS MIN LEN8login defs文件是login程序的配置文件 三 口令和帐号安全 打开密码的shadow支持功能打开密码的shadow功能 来对password加密 使用 usr sbin authconfig 工具打开shadow功能 如果你想把已有的密码和组转变为shadow格式 可以分别使用 usr sbin pwconv usr sbin grpconv 命令 三 口令和帐号安全 4 自动注销帐号的登录root账户是具有最高特权的 如果系统管理员在离开系统之前忘记注销root账户 那将会带来很大的安全隐患 应该让系统会自动注销 通过修改账户中 TMOUT 参数 可以实现此功能 TMOUT按秒计算 编辑你的profile文件 vi etc profile 在 HISTFILESIZE 后面加入下面这行 TMOUT 300如果系统中登陆的用户在5分钟内都没有动作 那么系统会自动注销这个账户 你可以在个别用户的 bashrc 文件中添加该值 以便系统对该用户实行特殊的自动注销时间 改变这项设置后 必须先注销用户 再用该用户登陆才能激活这个功能 三 口令和帐号安全 5 禁止任何人通过su命令改变为root用户su SubstituteUser替代用户 命令允许你成为系统中其他已存在的用户 如果你不希望任何人通过su命令改变为root用户或对某些用户限制使用su命令 你可以在su配置文件 在 etc pam d 目录下 的开头添加下面两行 编辑su文件 vi etc pam d su 在文件的头部加入下面两行 authsufficient lib security pam rootok sodebugauthrequired lib security pam wheel sogroup wheel然后把您想要执行su成为root的用户放入wheel组 root sound usermod G10admin 四 取消不必要的服务 察看 etc inetd conf 文件 通过注释取消所有你不需要的服务 在该服务项目之前加一个 然后用 sighup 命令升级 inetd conf 文件 更改 etc inetd conf 权限为600 只允许root来读写该文件 chmod600 etc inetd conf确定 etc inetd conf 文件所有者为root 编辑 etc inetd conf文件 vi etc inetd conf 取消不需要的服务 shell login exec talk ntalk imap pop 2 pop 3 finger auth等等 grep v etc inetd conf用chattr命令把 ec inetd conf文件设为不可修改 这样就没人可以修改它 chattr i etc inetd conf察看哪些服务在运行 netstat na ip 五 限制网络访问 NFS访问使用NFS网络文件系统服务 应该确保你的 etc exports具有最严格的访问权限设置 也就是意味着不要使用任何通配符 不允许root写权限并且只能安装为只读文件系统 编辑文件 etc exports并加入如下两行 dir to ro root squash dir to ro root squash dir to export是你想输出的目录 是登录这个目录的机器名 ro意味着mount成只读系统 root squash禁止root写入该目录 为了使改动生效 运行如下命令 usr sbin exportfs a 五 限制网络访问 Inetd设置首先要确认 etc inetd conf的所有者是root 且文件权限设置为600 命令是 chmod600 etc inetd conf然后 编辑 etc inetd conf禁止以下服务 命令是 ftptelnetshellloginexectalkntalkimappop 2pop 3fingerauth为了使改变生效 运行如下命令 killall HUPinetd 五 限制网络访问 TCP WRAPPERS默认的 RedhatLinux允许所有的请求 这是很危险的 如果用TCP WRAPPERS来增强我们站点的安全性简直是举手之劳 你可以将禁止所有的请求放入 ALL ALL 到 etc hosts deny中 然后放那些明确允许的请求到 etc hosts allow中 如 sshd 192 168 1 10 表示允许IP地址192 168 1 10和主机名允许通过SSH连接 配置完成后 可以用tcpdchk检查 tcpdchktcpchk是TCP Wrapper配置检查工具 它检查你的tcpwrapper配置并报告所有发现的潜在 存在的问题 五 限制网络访问 登录终端设置 etc securetty文件指定了允许root登录的tty设备 由 bin login程序读取 其格式是一个被允许的名字列表 你可以编辑 etc securetty且注释掉如下的行 tty1 tty2 tty3 tty4 tty5 tty6这时 root仅可在tty1终端登录 五 限制网络访问 避免显示系统和版本信息如果你希望远程登录用户看不到系统和版本信息 可以通过以下操作改变 etc inetd conf文件 telnetstreamtcpnowaitroot usr sbin tcpdin telnetd h加 h表示telnet不显示系统信息 而仅仅显示 login 六 防止攻击 阻止ping如果没人能ping通你的系统 安全性自然增加了 为此 可以在 etc rc d rc local文件中增加如下一行 echo1 proc sys net ipv4 icmp echo ignore all防止IP欺骗编辑host conf文件并增加如下几行来防止IP欺骗攻击 orderbind hostsmultioffnospoofon 六 防止攻击 防止DoS攻击对系统所有的用户设置资源限制可以防止DoS类型攻击 如最大进程数和内存使用数量等 例如 可以在 etc security limits conf中添加如下几行 hardcore0 hardrss5000 hardnproc20然后必须编辑 etc pam d login文件检查下面一行是否存在 sessionrequired lib security pam limits so命令禁止corefiles core0 限制进程数为 nproc50 且限制内存使用为5M rss5000 七 替换常见网络服务应用程序 1 WuFTPD WuFTPDWuFTD从1994年就开始就不断地出现安全漏洞 黑客很容易就可以获得远程root访问 RemoteRootAccess 的权限 而且很多安全漏洞甚至不需要在FTP服务器上有一个有效的帐号 最近 WuFTP也是频频出现安全漏洞 它的最好的替代程序是ProFTPD ProFTPD的优点 ProFTPD很容易配置 在多数情况下速度也比较快 而且它的源代码也比较干净 缓冲溢出的错误比较少 ProFTPD的另一个优点就是既可以从inetd运行又可以作为单独的daemon运行 这样就可以很容易解决inetd带来的一些问题 如 拒绝服务的攻击 denialofserviceattack 等 七 替换常见网络服务应用程序 TelnetTelnet用明文来传送密码 它的安全的替代程序是OpenSSH Linux的发行商应该采用OpenBSD的策略 安装OpenSSH并把它设置为默认的 安装Telnet但是不把它设置成默认的 SendmailSendmail是以root权限运行而且代码很庞大容易出问题 它的两个替代程序Qmail和Postfix都比它安全 速度快 而且特别是Postfix比它容易配置和维护 七 替换常见网络服务应用程序 susu是用来改变当前用户的ID 转换成别的用户 su本身是没有问题的 但是它会让人养成不好的习惯 如果一个系统有多个管理员 必须都给他们root的口令 su的一个替代程序是sudo namednamed以前是以root运行的 只要用命令行 named u g 让named以非root的用户运行 现在绝大多数Linux的发行商都让named以普通用户的权限运行 八 防火墙 防火墙是一套能够在两个或两个以上的网络之间 明显区隔出实体线路联机的软硬件设备组合 被区隔开来的网络 可以透过封包转送技术来相互通讯 透过防火墙的安全管理机制 可以决定哪些数据可以流通 哪些资料无法流通 藉此达到网络安全保护的目的 iptables指令语法 iptables ttable command match jtarget jump 说明 t参数用来指定规则表 内建的规则表有三个 分别是 nat mangle和filter 当未指定规则表时 则一律视为是filter 各个规则表的功能如下 nat此规则表拥有Prerouting和postrouting两个规则炼 主要功能为进行一对一 一对多 多对多等网址转译工作 SNAT DNAT 由于转译工作的特性 需进行目的地网址转译的封包 就不需要进行来源网址转译 反之亦然 因此为了提升改写封包的效率 在防火墙运作时 每个封包只会经过这个规则表一次 如果我们把封包过滤的规则定义在这个数据表里 将会造成无法对同一封包进行多次比对 因此这个规则表除了作网址转译外 请不要做其它用途 mangle此规则表拥有Prerouting FORWARD和postrouting三个规则炼 filter这个规则表是预设规则表 拥有INPUT FORWARD和OUTPUT三个规则炼 这个规则表顾名思义是用来进行封包过滤的处理动作 例如 DROP LOG ACCEPT或REJECT 我们会将基本规则都建立在此规则表中 八 防火墙 常用命令列表 命令 A append范例iptables AINPUT 说明新增规则到某个规则炼中 该规则将会成为规则炼中的最后一条规则 命令 D delete范例iptables DINPUT dport80 jDROPiptables DINPUT1说明从某个规则炼中删除一条规则 可以输入完整规则 或直接指定规则编号加以删除 命令 R replace范例iptables RINPUT1 s192 168 0 1 jDROP说明取代现行规则 规则被取代后并不会改变顺序 八 防火墙 命令 I insert范例iptables IINPUT1 dport80 jACCEPT说明插入一条规则 原本该位置上的规则将会往后移动一个顺位 命令 L list范例iptables LINPUT说明列出某规则炼中的所有规则 命令 F flush范例iptables FINPUT说明删除某规则炼中的所有规则 命令 Z zero范例iptables ZINPUT说明将封包计数器归零 封包计数器是用来计算同一封包出现次数 是过滤阻断式攻击不可或缺的工具 八 防火墙 命令 N new chain范例iptables Nallowed说明定义新的规则炼 命令 X delete chain范例iptables Xallowed说明删除某个规则炼 命令 P policy范例iptables PINPUTDROP说明定义过滤政策 也就是未符合过滤条件之封包 预设的处理方式 命令 E rename chain范例iptables Ealloweddisallowed说明修改某自订规则炼的名称 八 防火墙 常用封包比对参数 参数 p protocol范例iptables AINPUT ptcp说明比对通讯协议类型是否相符 可以使用 运算子进行反向比对 例如 p tcp 意思是指除tcp以外的其它类型 包含udp icmp 等 如果要比对所有类型 则可以使用all关键词 例如 pall 参数 s src source范例iptables AINPUT s192 168 1 1说明用来比对封包的来源IP 可以比对单机或网络 比对网络时请用数字来表示屏蔽 例如 s192 168 0 0 24 比对IP时也可以使用 运算子进行反向比对 例如 s 192 168 0 0 24 参数 d dst destination范例iptables AINPUT d192 168 1 1说明用来比对封包的目的地IP 设定方式同上 八 防火墙 参数 i in interface范例iptables AINPUT ieth0说明用来比对封包是从哪片网卡进入 可以使用通配字符 来做大范围比对 例如 ieth 表示所有的ethernet网卡 也可以使用 运算子进行反向比对 例如 i eth0 参数 o out interface范例iptables AFORWARD oeth0说明用来比对封包要从哪片网卡送出 设定方式同上 参数 sport source port范例iptables AINPUT ptcp sport22说明用来比对封包的来源埠号 可以比对单一埠 或是一个范围 例如 sport22 80 表示从22到80埠之间都算是符合条件 如果要比对不连续的多个埠 则必须使用 multiport参数 详见后文 比对埠号时 可以使用 运算子进行反向比对 八 防火墙 参数 dport destination port范例iptables AINPUT ptcp dport22说明用来比对封包的目的地埠号 设定方式同上 参数 tcp flags范例iptables ptcp tcp flagsSYN FIN ACKSYN说明比对TCP封包的状态旗号 参数分为两个部分 第一个部分列举出想比对的旗号 第二部分则列举前述旗号中哪些有被设定 未被列举的旗号必须是空的 TCP状态旗号包括 SYN 同步 ACK 应答 FIN 结束 RST 重设 URG 紧急 PSH 强迫推送 等均可使用于参数中 除此之外还可以使用关键词ALL和NONE进行比对 比对旗号时 可以使用 运算子进行反向比对 八 防火墙 参数 syn范例iptables ptcp syn说明用来比对是否为要求联机之TCP封包 与iptables ptcp tcp flagsSYN FIN ACKSYN的作用完全相同 如果使用 运算子 可用来比对非要求联机封包 参数 mmultiport source port范例iptables AINPUT ptcp mmultiport source port22 53 80 110说明用来比对不连续的多个来源埠号 一次最多可以比对15个埠 可以使用 运算子进行反向比对 参数 mmultiport destination port范例iptables AINPUT ptcp mmultiport destination port22 53 80 110说明用来比对不连续的多个目的地埠号 设定方式同上 八 防火墙 参数 mmultiport port范例iptables AINPUT ptcp mmultiport port22 53 80 110说明这个参数比较特殊 用来比对来源埠号和目的埠号相同的封包 设定方式同上 注意 在本范例中 如果来源端口号为80但目的地埠号为110 这种封包并不算符合条件 参数 icmp type范例iptables AINPUT picmp icmp type8说明用来比对ICMP的类型编号 可以使用代码或数字编号来进行比对 请打iptables picmp help来查看有哪些代码可以用 参数 mlimit limit范例iptables AINPUT mlimit limit3 hour说明用来比对某段时间内封包的平均流量 上面的例子是用来比对 每小时平均流量是否超过一次3个封包 除了每小时平均一次外 也可以每秒钟 每分钟或每天平均一次 默认值为每小时平均一次 参数如后 second minute day 除了进行封包数量的比对外 设定这个参数也会在条件达成时 暂停封包的比对动作 以避免因骇客使用洪水攻击法 导致服务被阻断 八 防火墙 参数 limit burst范例iptables AINPUT mlimit limit burst5说明用来比对瞬间大量封包的数量 上面的例子是用来比对一次同时涌入的封包是否超过5个 这是默认值 超过此上限的封包将被直接丢弃 使用效果同上 参数 mmac mac source范例iptables AINPUT mmac mac source00 00 00 00 00 01说明用来比对封包来源网络接口的硬件地址 这个参数不能用在OUTPUT和Postrouting规则炼上 这是因为封包要送出到网卡后 才能由网卡驱动程序透过ARP通讯协议查出目的地的MAC地址 所以iptables在进行封包比对时 并不知道封包会送到哪个网络接口去 参数 mark范例iptables tmangle AINPUT mmark mark1说明用来比对封包是否被表示某个号码 当封包被比对成功时 我们可以透过MARK处理动作 将该封包标示一个号码 号码最大不可以超过4294967296 八 防火墙 参数 mowner uid owner范例iptables AOUTPUT mowner uid owner500说明用来比对来自本机的封包 是否为某特定使用者所产生的 这样可以避免服务器使用root或其它身分将敏感数据传送出去 可以降低系统被骇的损失 可惜这个功能无法比对出来自其它主机的封包 参数 mowner gid owner范例iptables AOUTPUT mowner gid owner0说明用来比对来自本机的封包 是否为某特定使用者群组所产生的 使用时机同上 参数 mowner pid owner范例iptables AOUTPUT mowner pid owner78说明用来比对来自本机的封包 是否为某特定行程所产生的 使用时机同上 八 防火墙 参数 mowner sid owner范例iptables AOUTPUT mowner sid owner100说明用来比对来自本机的封包 是否为某特定联机 SessionID 的响应封包 使用时机同上 参数 mstate state范例iptables AINPUT mstate stateRELATED ESTABLISHED说明用来比对联机状态 联机状态共有四种 INVALID ESTABLISHED NEW和RELATED INVALID表示该封包的联机编号 SessionID 无法辨识或编号不正确 ESTABLISHED表示该封包属于某个已经建立的联机 NEW表示该封包想要起始一个联机 重设联机或将联机重导向 RELATED表示该封包是属于某个已经建立的联机 所建立的新联机 例如 FTP DATA联机必定是源自某个FTP联机 八 防火墙 常用的处理动作 j参数用来指定要进行的处理动作 常用的处理动作包括 ACCEPT REJECT DROP REDIRECT MASQUERADE LOG DNAT SNAT MIRROR QUEUE RETURN MARK 分别说明如下 ACCEPT将封包放行 进行完此处理动作后 将不再比对其它规则 直接跳往下一个规则炼 nat postrouting REJECT拦阻该封包 并传送封包通知对方 可以传送的封包有几个选择 ICMPport unreachable ICMPecho reply或是tcp reset 这个封包会要求对方关闭联机 进行完此处理动作后 将不再比对其它规则 直接中断过滤程序 范例如下 iptables AFORWARD pTCP dport22 jREJECT reject withtcp resetDROP丢弃封包不予处理 进行完此处理动作后 将不再比对其它规则 直接中断过滤程序 八 防火墙 REDIRECT将封包重新导向到另一个端口 PNAT 进行完此处理动作后 将会继续比对其它规则 这个功能可以用来实作通透式porxy或用来保护web服务器 例如 iptables tnat APREROUTING ptcp dport80 jREDIRECT to ports8080MASQUERADE改写封包来源IP为防火墙NICIP 可以指定port对应的范围 进行完此处理动作后 直接跳往下一个规则炼 mangle postrouting 这个功能与SNAT略有不同 当进行IP伪装时 不需指定要伪装成哪个IP IP会从网卡直接读取 当使用拨接连线时 IP通常是由ISP公司的DHCP服务器指派的 这个时候MASQUERADE特别有用 范例如下 iptables tnat APOSTROUTING pTCP jMASQUERADE to ports1024 31000 八 防火墙 LOG将封包相关讯息纪录在 var log中 详细位置请查阅 etc syslog conf组态档 进行完此处理动作后 将会继续比对其它规则 例如 iptables AINPUT ptcp jLOG log prefix INPUTpackets SNAT改写封包来源IP为某特定IP或IP范围 可以指定port对应的范围 进行完此处理动作后 将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论