Linux安全策略配置
- 格式:doc
- 大小:71.50 KB
- 文档页数:18
Linux操作系统安全策略浅析下面,针对市面上常见的RedHat、Sues、Defiant等Linux操作系统,通过总结归纳其中的一些共性设置,提出一些适合的安全策略。
1 初步安装操作,合理规划实现多系统共存现在许多用户习惯使用Windows、Linux双系统,鉴于这种情况,建议使用双硬盘,分别安装Windows和Linux操作系统。
具体操作如下:找两块硬盘,现在多是SATA接口的,第一块硬盘安装Windows系统,第二块硬盘安装好Linux服务器版和默认安装GRUB(引导装载管理器),并确保GRUB安装在第二块硬盘的主引导扇区,接好两块硬盘的数据线,借助Linux的GRUB进行配置,自动接管双重系统的启动选单。
2 制定密码策略,多管齐下保证系统安全登录密码是保证系统安全的第一道防线,因此,必须要有一个强健的密码。
密码设置的原则:足够长,不要用完整的单词,尽可能要包括数字、字母、特殊字符和大小写混写,经常进行修改。
在Linux系统中除了要遵循以上原则外。
还要注意以下方面:首先,在Linux登录和登出过程中的密码安全问题有很多容易忽视的地方,比如:BIOS的密码设置不要和系统密码相同。
此外Linux是一个多用户操作系统,为了保证系统安全,在登出和锁定屏幕的时候也是非常重要的,特别是在系统上是唯一用户时,建议锁定屏幕保证系统安全。
其次,在启动和加载程序时,要尽量使用GRUB而不要使用LILO,因为ULO在配置文件中使用的是明文口令,而GRUB使用的是MD5加密算法,可以防止使用被定制的内核来启动系统。
再次,建议使用SELinux安全策略,SELinux(Security_EnhancedLinux)是由美国国家安全局NSA开发的访问控制机制。
与日常Linux系统相比,SELinux系统安全性能要高很多。
它通过对用户进程权限进行最小化限制,即使受到外部侵入或者用户进程被劫持,也不会对整个系统造成重大影响。
Linux登录提示(静态/动态MOTD)在用户输入口令或使用密钥成功登录后,让服务器自动为我们执行几个简单的操作,如打印提示信息,打印异常信息,执行一个脚本,或者发送邮件等。
能够预先提示信息给登录者,让我们在登录机器采取任何操作之前,可以快速的了解这台机器的重要信息。
看起来是不是很有意思呢? 也许我们会想,这对于服务器的安全加固并没有直接的影响,而且每次刚刚登录就执行一系列命令、脚本(如收集服务器资源使用情况的信息),似乎也有点多余。
因此,如果是在生产环境的Linux服务器并且需要配置登录提示,诸如登录执行命令、脚本等这些操作,我们不必为此写一个复杂的、庞大的脚本,脚本的执行时间很关键,如果你不想在正确输入登录密码后仍需等待几秒或更长的时间,那么,尽可能地把脚本的执行耗时优化到几毫秒,甚至更低。
(登录后的提示或操作尽可能简单的、有利的是最好的。
如果你想这么做)在大多数Linux分发版中,可以直接修改/etc/motd文件来定制任何想要的提示信息,修改方法是将需要打印的提示消息文件粘贴到该文件中即可(一些可执行命令或脚本在文件中仅仅被当作是普通字符/文本)。
/etc/motd内的文本消息是固定不变,除非我们手动修改它。
因此,在/etc/motd中定制的消息是静态MOTD。
如果你使用过Debian/Ubuntu分发版,你可能已经发现,Ubuntu默认就已经有一个动态的MOTD信息提示(通过SSH或本地登录时显示系统当前的一些信息)。
在RHEL/CentOS中不可能实现像在Debian/Ubuntu 中这样的功能,因为RHEL/CentOS并没有提供与之相关的任何脚本。
我们可以通过环境变量文件,如/etc/profile、/etc/bashrc等,将需要执行的命令或脚本添加到这些文件末尾,这样当每次用户登陆时,系统就会读取这些文件,执行文件里定义好的脚本。
除此之外,也可以结合使用crontab计划任务,将预先准备好的脚本,如系统监控,异常信息收集通过crontab在后台定期执行,并把收集到的信息重定向写到/etc/motd文件中。
linux安全策略与实例
在Linux操作系统中,安全性是非常重要的一个环节。
以下是一些建议的Linux安全策略,以及对应的实例。
安全策略一:最小权限原则
最小权限原则是指只授予用户和应用程序执行其任务所需的最小权限。
这可以减少潜在的安全风险,例如权限提升或数据泄露。
实例:在设置Linux文件权限时,只给予文件所有者读写权限,而不是给予整个用户组或其他人读写执行权限。
安全策略二:防火墙配置
防火墙是保护Linux系统免受未经授权访问的第一道防线。
通过配置防火墙规则,可以限制对系统的网络访问。
实例:使用iptables配置防火墙规则,只允许特定的IP地址或IP地址范围访问特定的端口。
安全策略三:使用强密码
强密码是防止未经授权访问的关键。
强密码应该包含大小写字母、数字和特殊字符,并且长度至少为8个字符。
实例:设置密码"AbcD@123",它包含了大写字母、小写字母、数字和特殊字符,长度为8个字符。
安全策略四:及时更新系统
及时更新系统可以防止已知的漏洞被利用。
Linux发行版通常会定期发布安全更新。
实例:使用apt-get或yum命令定期更新系统,并安装所有安全更新。
安全策略五:使用加密技术保护数据
加密技术可以保护数据在传输和存储过程中的安全性。
使用加密技术可以防止数据被窃取或篡改。
实例:使用SSH协议进行远程登录,使用加密技术保护数据传输;使用LUKS 加密技术对硬盘进行加密,保护数据存储安全。
linux安全策略密码策略:1、密码有效期/etc/login.defs中PASS_MAX_DAYS180PASS_MIN_DAYS0PASS_MIN_LEN12PASS_WARN_AGE15UMASK 027USERGROUPS_ENAB yesENCRYPT_METHOD SHA5122、密码复杂度检查/etc/security/pwquality.confminlen=10minclass=33、密码错误尝试次数/etc/ssh/sshd_config中取消MaxAuthTries注释符号#并设置MaxAuthTries 34、检查密码重用是否受限制在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改,只在末尾加了remember=5。
SSH策略:1、SSH空闲超时退出时间/etc/ssh/sshd_config中ClientAliveInterval 600ClientAliveCountMax 22、禁止SSH空密码用户登录/etc/ssh/sshd_config中PermitEmptyPasswords no3、调整SSH Loglevel/etc/ssh/sshd_config中LogLevel INFO文件策略:1、访问控制配置文件权限设置运行如下命令:chown root:root /etc/hosts.allowchown root:root /etc/hosts.denychmod 644 /etc/hosts.deny2、设置用户权限配置文件的权限运行如下命令:chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow chmod 0644 /etc/groupchmod 0644 /etc/passwdchmod 0400 /etc/shadowchmod 0400 /etc/gshadowchmod 644 /etc/hosts.allow其他策略:1、开启地址空间布局随机化/etc/sysctl.conf中kernel.randomize_va_space = 2并运行命令:sysctl -w kernel.randomize_va_space=22、开启日志服务运行命令启用rsyslog服务systemctl enable rsyslogsystemctl start rsyslog。
linux7 系统用户密码安全策略在Linux 7系统中,用户密码安全策略可以通过以下几种方式进行设置和管理:1.密码策略文件:可以通过编辑/etc/login.defs文件来设置密码策略。
这个文件包含了与账户密码相关的各种配置选项。
例如,你可以设置密码有效期(PASS_MAX_DAYS)、密码最小使用期限(PASS_MIN_DAYS)、密码最小长度(PASS_MIN_LEN)等。
2.PAM配置文件:PAM(Pluggable Authentication Modules)是Linux下的一个身份验证机制,可以通过配置PAM来实施更复杂的密码策略。
例如,你可以在/etc/pam.d/common-password 文件中添加配置,实现密码强度检查。
3.定期更换密码:为了增强安全性,建议定期更换用户密码。
你可以通过设置PASS_MAX_DAYS参数来控制密码的有效期,然后设置一个提醒系统,在密码过期前通知用户更换。
4.密码强度要求:为了防止弱密码导致的安全风险,可以设置密码强度检查。
例如,你可以要求密码至少包含大小写字母、数字和特殊字符等。
5.禁用root账户:在大多数情况下,直接使用root账户进行日常操作是不安全的。
建议为普通用户分配权限,然后通过sudo 等方式执行需要root权限的操作。
6.审计和监控:使用审计工具定期检查和监控系统上的用户活动,包括登录、密码修改等,以便及时发现任何可疑行为。
7.使用两步验证:为了提高安全性,可以考虑使用两步验证。
这意味着用户在登录时除了输入密码外,还需要提供另一种验证方式(如手机验证码、硬件令牌等)。
8.安全地存储和管理密码:对于管理员和具有敏感权限的用户,建议使用加密和安全的密码管理工具来存储和管理密码。
以上只是一些基本的策略和建议,实际的安全措施应根据组织的具体需求和风险承受能力来制定。
《Linux服务器安全策略详解》完整版下载pdf下载地址:/thread-2443988-1-1.html 要注册账号,就可以免费下载,非常好的资料,与大家分享!希望对大家有帮助!Linux主要用于架设网络服务器。
如今关于服务器和网站被黑客攻击的报告几乎每天都可以见到,而且随着网络应用的丰富多样,攻击的形式和方法也千变万化。
如何增强Linux服务器的安全性是Linux系统管理员最关心的问题之一。
本书用20章和8个附录的内容,全面解析Linux服务器安全策略分四部分内容:第一部分分级介绍对Linux服务器的攻击情况,以及Linux网络基础;第二部分是本书的核心,针对不同的Linux服务器分别介绍各自的安全策略;第三部分介绍Linux服务器的安全工具;第四部分是8个附录,介绍Linux帮助信息和Linux常用命令汇总。
本书适合作为大专院校计算机专业师生的教材或教参书,也适合于Linux网络管理员和系统管理员,以及对安全方面感兴趣的读者。
目录第1章Linux网络基础与Linux第1章服务器的安全威胁 11.1 Linux网络基础 11.1.1 Linux网络结构的特点 11.1.2 TCP/IP四层模型和OSI七层模型 2 1.1.3 TCP/IP提供的主要用户应用程序 4 1.1.4 端口号分配 41.2 Linux的TCP/IP网络配置 61.2.1 Linux的TCP/IP网络配置文件 7 1.2.2 网络配置工具 71.2.3 配置网络接口 91.3 分级解析对Linux服务器的攻击 14 1.3.1 攻击者使用什么操作系统 151.3.2 典型的攻击者有什么特征 151.3.3 攻击者典型的目标是什么 151.3.4 实施攻击的原因是什么 151.3.5 攻击级别 161.3.6 反击措施 181.4 开源软件网络安全概述 191.5 本章小结 21第2章OpenSSL与Linux网络安全 22 2.1 理解SSL和OpenSSL如何工作 22 2.1.1 SSL功能 222.1.2 SSL协议简介 232.1.3 SSL工作流程 232.1.4 OpenSSL简介 252.1.5 OpenSSL的组成 252.2 理解服务器证书(CA) 262.2.1 X.509协议简介 262.2.2 金字塔结构的优缺点 272.2.3 相关名词解释 272.3 Linux下安装和配置OpenSSL 28 2.3.1 下载OpenSSL源代码 282.3.2 安装OpenSSL 292.3.3 产生CA凭证 302.3.4 CA产生次级凭证 302.3.5 OpenSSL应用 322.3.6 OpenSSL常用命令 352.4 数字证书在客户端的应用 372.5 OpenSSL面临的安全问题及其2.5 解决思路 382.5.1 OpenSSL面临的安全问题 382.5.2 解决思路 392.6 本章小结 39第3章PAM与Open LDAP 403.1 PAM工作原理 403.1.1 什么是PAM 403.1.2 为什么使用PAM 413.1.3 PAM体系结构 413.1.4 PAM工作流程图 423.2 PAM配置文件 433.3 建立PAM应用程序 443.4 PAM常用认证模块及其应用 463.4.1 PAM常用认证模块 463.4.2 PAM模块应用实例 473.5 安全应用PAM 483.5.1 删除不再需要的PAM配置文件和3.5.1 模块 483.5.2 对PAM配置进行备份 483.5.3 设置资源限制 483.5.4 限制su命令 493.6 动手制作Linux下基于PAM机制3.6 的USB Key 493.6.1 什么是USB Key 493.6.2 建立pam_usb应用 493.7 Liunx目录服务器介绍 513.8 安装配置OpenLDAP服务器 533.8.1 安装OpenLDAP服务器 533.8.2 配置OpenLDAP 服务器 533.8.3 启动OpenLDAP服务器 553.9 配置OpenLDAP客户端 563.9.1 配置Linux OpenLDAP客户端 56 3.9.2 Outlook如何使用OpenLDAP 56 3.10 监控OpenLDAP服务器 573.10.1 使用uptime命令 573.10.2 使用cron命令定时监测3.10.2 系统负载 573.10.3 OpenLDAP进程的监控 573.10.4 端口的监控 583.11 安全管理OpenLDAP服务器 583.11.1 自动启动OpenLDAP服务器 58 3.11.2 使用访问控制(Access Control)3.11.2 实现用户认证 583.11.3 禁止整个服务器的匿名访问 59 3.11.4 配置OpenLDAP使用TLS通信 59 3.11.5 管理OpenLDAP服务器 593.11.6 OpenLDAP在Linux上集群的3.11.6 应用 613.12 本章小结 61第4章Linux网络服务和xinetd 624.1 Linux启动过程 624.1.1 Linux的启动过程详解 624.1.2 Linux运行级 664.1.3 /etc/inittab文件详解 674.1.4 init和/etc/inittab 684.2 守护进程 694.2.1 Linux守护进程的概念 694.2.2 Linux系统提供的服务及其守护4.2.2 进程列表 704.2.3 Linux守护进程的运行方式 734.3 xinetd 754.3.1 什么是xinetd 754.3.2 xinetd的特色 754.3.3 使用xinetd启动守护进程 764.3.4 解读/etc/xinetd.conf和4.3.4 /etc/xinetd.d/* 764.3.5 配置xinetd 774.3.6 xinetd防止拒绝服务攻击4.3.6 (Denial of Services)的原因 824.4 Linux服务管理工具 834.4.1 redhat-config-services 834.4.2 ntsysv 844.4.3 chkconfig 854.5 安全选择Linux服务 854.6 本章小结 86第5章DNS服务器的安全策略 875.1 DNS服务器的工作原理 875.2 域名服务的解析原理和过程 885.3 DNS服务器面临的安全问题 905.3.1 DNS欺骗 905.3.2 拒绝服务攻击 925.3.3 缓冲区漏洞攻击 925.3.4 分布式拒绝服务攻击 925.3.5 缓冲区溢出漏洞攻击 935.3.6 不安全的DNS动态更新 935.4 增强DNS安全性的方法 945.4.1 选择安全没有缺陷的DNS版本 94 5.4.2 保持DNS服务器配置正确、可靠 94 5.5 建立一个完整的DNS 955.5.1 DNS分类 955.5.2 安装BIND域名服务器软件 95 5.5.3 named配置文件族内容 965.5.4 配置惟高速存域名服务器 965.5.5 配置主域名服务器 965.5.6 配置辅助域名服务器 985.5.7 配置域名服务器客户端 995.6 DNS故障排除工具 1005.6.1 dlint 1005.6.2 DNS服务器的工作状态检查 101 5.7 全面加固DNS服务器 1035.7.1 使用TSIG技术 1035.7.2 使用DNSSEC技术 1055.8 配置安全的DNS服务器 1065.8.1 隔离DNS服务器 1065.8.2 为BIND创建chroot 1065.8.3 隐藏BIND的版本号 1075.8.4 避免透露服务器的信息 1075.8.5 关闭DNS服务器的glue fetching 5.8.5 选项 1075.8.6 控制区域(zone)传输 1075.8.7 请求限制 1085.8.8 其他强化措施 1085.8.9 为DNS服务器配置5.8.9 DNS Flood Detector 1095.8.10 建立完整的域名服务器 1105.8.11 建立DNS日志 1115.8.12 增强DNS服务器的防范5.8.12 DoS/DDoS功能 1125.8.13 使用分布式DNS负载均衡 112 5.8.14 防范DNS服务器网络 1135.8.15 配置防火墙 1135.9 本章小结 113第6章Web服务器的安全策略 114 6.1 Web服务器软件Apache简介 114 6.1.1 Apache的发展历史 1146.1.2 市场情况 1156.1.3 Apache的工作原理 1166.1.4 Apache服务器的特点 1176.2 Apache服务器面临的安全问题 118 6.2.1 HTTP拒绝服务 1186.2.2 缓冲区溢出 1196.2.3 攻击者获得root权限 1196.3 配置一个安全的Apache服务器 119 6.3.1 勤打补丁 1196.3.2 隐藏和伪装Apache的版本 1206.3.3 建立一个安全的目录结构 1206.3.4 为Apache使用专门的用户和6.3.4 用户组 1216.3.5 Web目录的访问策略 1216.3.6 Apache服务器访问控制方法 1226.3.7 管理Apache服务器访问日志 122 6.3.8 Apache服务器的密码保护 1306.3.9 减少CGI和SSI风险 1326.3.10 让Apache服务器在“监牢”6.3.10 中运行 1336.3.11 使用SSL加固Apache 1356.3.12 Apache服务器防范DoS 1406.3.13 利用LDAP对Apache进行认证 140 6.3.14 其他安全工具 1416.4 本章小结 142第7章电子邮件服务器的安全策略 143 7.1 电子邮件系统的组成和相关协议 143 7.1.1 操作系统 1447.1.2 邮件传输代理MTA 1447.1.3 邮件分发代理MDA 1467.1.4 邮件用户代理MUA 1467.1.5 电子邮件服务器协议及其7.1.5 相关命令 1467.2 电子邮件服务器的工作原理 1527.2.1 电子邮件的工作流程 1527.2.2 电子邮件的历史 1537.2.3 电子邮件地址的组成 1537.2.4 电子邮件系统和DNS的联系 154 7.3 电子邮件服务器面临的安全隐患 155 7.3.1 Linux病毒 1557.3.2 网络攻击 1557.3.3 垃圾邮件及其防范 1557.4 安装安全的Sendmail服务器 1597.4.1 安装Sendmail服务器 1597.4.2 提高Sendmail的防垃圾邮件能力 160 7.4.3 其他保护Sendmail的安全措施 162 7.4.4 配置基于Sendmail的Webmail 163 7.4.5 增强Webmail邮件服务器的安全 167 7.4.6 监控Sendmail的日志文件 1687.5 安装安全的Postfix服务器 1697.5.1 安装Postfix服务器 1697.5.2 保护Postfix服务器 1737.5.3 自动监控Postfix 邮件服务器 1747.6 本章小结 177第8章FTP服务器的安全策略 1788.1 FTP的工作原理 1788.1.1 FTP简介 1788.1.2 FTP的功能 1798.1.3 FTP服务器登录方式的分类 179 8.1.4 FTP的工作原理 1798.1.5 FTP的典型消息和子命令 1818.1.6 Linux服务器端的主要FTP软件 184 8.2 FTP服务器面临的安全隐患 1858.2.1 缓冲区溢出攻击 1858.2.2 数据嗅探 1858.2.3 匿名访问缺陷 1858.2.4 访问漏洞 1868.3 配置安全的Wu-ftpd服务器 1868.3.1 配置Wu-ftpd服务器 1868.3.2 Wu-ftpd服务器的配置文件8.3.2 /etc/ftpaccess 1878.3.3 其他配置文件 1908.3.4 增强Wu-ftpd服务器安全性的8.3.4 方法 1918.4 配置安全的ProFTPD服务器 1958.4.1 配置ProFTPD服务器 1958.4.2 增强ProFTPD服务器安全性的8.4.2 方法 1988.5 配置安全的Vsftpd服务器 2078.5.1 快速构建Vsftpd服务器 2078.5.2 Vsftpd配置文件 2088.5.3 Vsftpd的设置选项 2098.5.4 通过Web浏览器管理Vsftpd8.5.4 服务器 2158.5.5 分析Vsftpd服务器的日志文件 217 8.5.6 使用BlockHosts对抗暴力破解 218 8.5.7 在RHEL 4.0下安装支持SSL的8.5.7 最新版本的Vsftpd 2188.5.8 使用quota为ftpuser加入磁盘8.5.8 限额 2188.6 安全使用客户端工具 2198.6.1 命令行模式 2198.6.2 图形界面模式(gFTP) 2208.7 本章小结 221第9章Samba服务器的安全策略 222 9.1 Samba简介 2229.1.1 什么是Samba 2229.1.2 Samba的历史起源 2229.1.3 SMB协议 2239.1.4 为什么使用Samba 2239.1.5 Samba 软件包的功能 2249.2 安装配置Samba服务器 2259.2.1 安装Samba服务器 2259.2.2 Samba配置文件 2259.2.3 设置Samba密码文件 2299.2.4 启动Samba服务器 2309.2.5 测试Samba配置文件 2309.2.6 在Windows环境测试RHEL 4.09.2.6 默认配置 2319.3 配置Samba服务器共享文件及9.3 打印机 2339.3.1 配置文件共享 2339.3.2 配置共享打印机 2349.3.3 在Linux环境下应用Samba服务 235 9.4 其他配置Samba的方法和用好9.4 Linux 下的网络邻居 2369.4.1 图形化配置工具system-config-9.4.1 samba 2369.4.2 使用SW A T管理工具管理Samba 239 9.4.3 其他工具 2419.4.4 用好Linux下的网络邻居 2419.5 Samba服务器面临的安全隐患 2459.5.1 非法访问数据 2459.5.2 计算机病毒 2459.5.3 Samba文件服务器的安全级别 245 9.6 提升Samba服务器的安全性 2469.6.1 不要使用明语密码 2469.6.2 尽量不使用共享级别安全 2469.6.3 尽量不要浏览器服务访问 2469.6.4 通过网络接口控制Samba访问 247 9.6.5 通过主机名称和IP地址列表9.6.5 控制Samba访问 2479.6.6 使用pam_smb对Windows NT/2000 9.6.6 服务器的用户进行验证 2479.6.7 为Samba配置防范病毒软件 2489.6.8 使用Iptables防火墙保护Samba 249 9.6.9 使用Gsambad管理监控Samba9.6.9 服务器 2499.6.10 使用SSL加固Samba 2529.7 本章小结 252第10章NFS服务器的安全策略 25310.1 NFS服务器的工作原理 25310.1.1 NFS简介 25310.1.2 为何使用NFS 25410.1.3 NFS协议 25410.1.4 什么是RPC(Remote10.1.4 Procedure Call) 25510.2 安装配置NFS服务器 25710.2.1 NFS网络文件的系统结构 257 10.2.2 配置/etc/exports文件 25810.2.3 激活服务portmap和nfsd 25910.2.4 exportfs 命令 25910.2.5 检验目录/var/lib/nfs/xtab 25910.2.6 showmount 25910.2.7 观察激活的端口号 26010.2.8 NFS服务器的启动和停止 260 10.3 NFS的图形化配置 26010.3.1 NFS服务器配置窗口 26110.3.2 添加NFS共享 26110.3.3 常规选项 26210.3.4 用户访问 26210.3.5 编辑NFS共享 26310.4 NFS的客户端配置 26310.4.1 使用mount命令 26410.4.2 扫描可以使用的NFS Server10.4.2 目录 26510.4.3 卸载NFS网络文件系统 26510.4.4 应用实例 26510.4.5 其他挂载NFS文件系统的方法 266 10.5 NFS服务器面临的安全隐患 267 10.6 提升NFS服务器的安全性 26710.6.1 使用tcp_wrappers 26710.6.2 注意配置文件语法错误 26710.6.3 使用Iptables防火墙 26710.6.4 把开放目录限制为只读权限 268 10.6.5 禁止对某些目录的访问 26810.6.6 root Squashing访问问题 26810.6.7 使用nosuid和noexec选项 268 10.6.8 保护portmap的安全性 26910.6.9 保留ACL 26910.7 本章小结 270第11章DHCP服务器的安全策略 271 11.1 DHCP服务器的工作原理 27111.1.1 DHCP简介 27111.1.2 为什么使用DHCP 27111.1.3 DHCP的工作流程 27211.1.4 DHCP的设计目标 27311.2 安装DHCP服务器 27311.2.1 DHCP配置文件 27311.2.2 配置实例 27411.2.3 启动DHCP服务器 27611.2.4 设置DHCP客户端 27811.3 DHCP服务器的故障排除 27911.3.1 客户端无法获取IP地址 27911.3.2 DHCP客户端程序和DHCP11.3.2 服务器不兼容 28011.4 提升DHCP服务器的安全性 280 11.4.1 管理监控DHCP服务器 28011.4.2 让DHCP服务器在监牢中运行 282 11.4.3 提供备份的DHCP设置 28411.5 本章小结 285第12章Squid服务器的安全策略 286 12.1 代理服务器的工作原理 28612.1.1 各种代理服务器的比较 28612.1.2 Squid工作原理和流程图 28712.1.3 代理服务器的优点 28812.1.4 代理服务器的分类及特点 289 12.2 配置安全的Squid代理服务器 289 12.2.1 Squid的启动 29012.2.2 Squid的配置文件 29012.2.3 Squid的命令参数 29112.3 代理服务器面临的安全隐患 293 12.3.1 客户端非法访问不良网站 293 12.3.2 计算机病毒 29412.4 提升Squid代理服务器的安全性 294 12.4.1 控制对客户端访问 29412.4.2 管理代理服务器端口 29612.4.3 使用用户认证 29612.5 全面监控Squid代理服务器12.5 的运行 29712.6 关注Squid代理服务器的日志 301 12.6.1 Squid日志格式 30212.6.2 分析access.log日志文件 30212.6.3 使用Linux命令 30212.6.4 使用专业软件分析 30312.7 为Squid代理服务器串联HA VP 307 12.8 本章小结 308第13章SSH服务器的安全策略 309 13.1 SSH服务器的工作原理 30913.1.1 传统远程登录的安全隐患 309 13.1.2 SSH能保护什么 30913.1.3 SSH服务器和客户端工作流程 310 13.2 安装配置OpenSSH服务器 31113.2.1 安装与启动OpenSSH 31113.2.2 配置文件 31213.3 SSH服务器面临的安全隐患 315 13.3.1 软件漏洞 31513.3.2 口令暴力破解 31513.3.3 SSH所不能防范的网络攻击 315 13.3.4 OpenSSH中可能安放有13.3.4 特洛伊木马 31513.4 提升SSH服务器的安全性 31613.4.1 升级旧版本 31613.4.2 使用xinetd模式运行OpenSSH 316 13.4.3 使用BlockHosts对抗暴力破解 317 13.4.4 使用TCP会绕程序 31713.4.5 管理SSH监听端口 31813.4.6 关闭Telnet服务 31913.4.7 禁止root用户登录SSH服务器 319 13.4.8 启用防火墙保护OpenSSH13.4.8 服务器 31913.4.9 使用Protocol 2 31913.4.10 不使用r系列命令 31913.4.11 修改配置文件 32013.5 如何安全应用SSH客户端 32113.5.1 安全应用Linux下的SSH13.5.1 客户端 32113.5.2 生成密钥对 32513.5.3 命令测试 32613.5.4 使用Windows SSH客户端登录13.5.4 OpenSSH服务器 32813.6 本章小结 334第14章Linux防火墙 33514.1 防火墙简介 33514.1.1 什么是防火墙 33514.1.2 防火墙的功能 33514.1.3 防火墙技术分类 33614.2 Linux 防火墙 33814.2.1 Linux防火墙的历史 33814.2.2 Netfilter/Iptables 系统是如何14.2.2 工作的 33914.2.3 Iptables的基础 34014.2.4 建立规则和链 34614.3 Iptables配置实战 35014.3.1 初试化配置方案 35014.3.2 Web服务器设置 35114.3.3 DNS服务器设置 35114.3.4 邮件服务器Sendmail设置 35114.3.5 不回应ICMP封包 35114.3.6 防止IP Spoofing 35114.3.7 防止网络扫描 35214.3.8 允许管理员以SSH方式连接到14.3.8 防火墙修改设定 35214.3.9 快速构架Linux个人防火墙 352 14.4 升级Iptables控制BT 35614.4.1 P2P应用现状 35714.4.2 下载软件 35714.4.3 安装 35714.4.4 测试 35714.4.5 使用 35914.5 本章小结 359第15章Linux网络环境下的VPN构建 360 15.1 VPN概述 36015.1.1 VPN定义 36015.1.2 VPN的功能 36115.1.3 VPN的分类 36115.1.4 VPN的隧道协议 36215.2 Linux下的主要VPN技术 36415.2.1 IPSec(Internet Protocol15.2.1 Security) 36415.2.2 PPP OVER SSH 36415.2.3 CIPE(Crypto IP15.2.3 Encapsulation) 36415.2.4 PPTP 36415.3 构建基于CIPE技术的15.3 Linux VPN 36515.3.1 CIPE概述 36515.3.2 使用Red Hat Linux 的网络管理15.3.2 工具来配置CIPE VPN 36615.3.3 通过配置文件配置CIPE VPN 369 15.4 构建基于PPTP技术的15.4 Linux VPN 37315.4.1 PPTP以及Poptop简介 37315.4.2 PPP简介 37315.4.3 在Linux2.4内核下安装配置15.4.3 PPTP服务器 37415.4.4 在Linux2.6内核下安装配置15.4.4 PPTP服务器 37815.4.5 Linux下PPTP客户端连接15.4.5 VPN服务器 37915.5 构建基于SSH VNC技术的15.5 Linux VPN 38215.5.1 VNC技术概述 38215.5.2 使用NHC+SSH建立Linux和15.5.2 Windows的安全隧道 38315.5.3 使用SSHTools实现Linux下15.5.3 远程VPN办公 38515.5.4 VNC服务器维护技巧 39015.6 构建基于IPSec技术的15.6 Linux VPN 39215.6.1 IPSec及IKE简介 39215.6.2 在RHEL 4.0配置IPSec 39215.7 本章小结 395第16章使用IDS保护Linux服务器 396 16.1 什么是IDS 39616.1.1 IDS定义 39616.1.2 IDS的工作流程 39616.1.3 IDS部署的位置 39716.1.4 IDS的功能 39816.1.5 IDS(入侵检测系统)模型 398 16.1.6 IDS分类 39916.2 Linux下配置基于主机的IDS 399 16.2.1 RPM包管理器作为一种IDS 399 16.2.2 其他基于主机的IDS 40016.2.3 安装配置Tripwire 40116.3 Linux下配置基于网络的IDS 403 16.3.1 什么是基于网络的IDS 40316.3.2 Snort简介 40416.4 Snort的安装配置 40416.4.1 配置IDS的网络拓扑结构 405 16.4.2 安装Snort 40616.4.3 建立Snort数据库 40616.4.4 安装配置ACID 40716.4.5 配置Apache服务器用户认证 407 16.4.6 建立Snort规则 40816.4.7 启动Apache和MySQL16.4.8 服务进程 40816.4.8 为Snort创建专用的用户和组16.4.8 来启动Snort 40816.4.9 使用Web浏览器监控Snort 409 16.5 建立分布式Snort入侵检测系统 40916.5.1 安装SnortCenter3 40916.5.2 修改配置文件 41016.5.3 snortcenter-agent下载配置步骤 410 16.5.4 完成配置 41016.6 本章小结 411第17章Linux网络监控策略 41317.1 安装配置MRTG监控Linux17.1 网络 41317.1.1 SNMP简介和MRTG监控过程 413 17.1.2 Linux下MRTG的安装与配置 414 17.1.3 建立MRTG监控中心 41517.1.4 MRTG软件的不足和RRDTool的17.1.4 对比 41617.2 安装配置NTOP监控Linux网络 417 17.2.1 P2P对于网络流量提出挑战 417 17.2.2 NTOP的安装 41917.2.3 软件使用方法 42217.3 NTOP的安全策略 42717.3.1 经常查看NTOP的进程和日志 428 17.3.2 进行Web访问认证 42817.3.3 加密连接NTOP 42917.3.4 NTOP使用技巧和总结 43017.4 本章小结 431第18章Linux常用安全工具 43218.1 使用SAINT执行安全审核 43218.1.1 什么是SAINT 43218.1.2 工作模式 43318.1.3 安装SAINT 43318.1.4 SAINT设置 43418.1.5 启动SAINT 43518.2 使用端口扫描软件Nmap 43918.2.1 Nmap简介 43918.2.2 使用Nmap 43918.2.3 nmap命令实例 43918.2.4 Nmap图形前端 44218.2.5 Nmap使用注意事项 44218.3 使用网络数据采集分析工具18.3 Tcpdump 44218.3.1 Tcpdump简介 44218.3.2 Tcpdump的安装 44318.3.3 Tcpdump的命令行选项 44318.3.4 Tcpdump的过滤表达式 44418.3.5 Tcpdump过滤数据包实例 445 18.3.6 Tcpdump的输出结果 44518.4 使用Ethereal分析网络数据 44718.4.1 Ethereal简介 44718.4.2 安装Ethereal 44718.4.3 使用Ethereal 44718.5 使用EtherApe分析网络流量 451 18.5.1 EtherApe简介 45118.5.2 EtherApe软件下载安装 45218.5.3 EtherApe软件使用方法 45218.6 使用GnuPGP进行数据加密 45418.6.1 GnuPGP简介 45418.6.2 GnuPGP安装 45418.6.3 生成密钥 45418.6.4 查看密钥 45518.6.5 公钥的使用 45518.6.6 GnuPGP应用实例(软件包18.6.6 签名验证) 45618.6.7 GnuPGP应用实例(在Mutt中18.6.7 使用GnuPG) 45618.7 其他安全工具简介 45618.7.1 密码分析工具John the ripper 456 18.7.2 系统管理工具sudo 45718.7.3 开放源代码风险评估工具18.7.3 Nessus 45718.7.4 网络瑞士军刀Netcat 45718.7.5 网络探测工具Hping2 45718.7.6 列出打开的文件命令工具LSOF 457 18.7.7 强大的无线嗅探器Kismet 45718.7.8 802.11 WEP密码破解工具18.7.8 AirSnort 45718.7.9 安全管理员的辅助工具SARA 458 18.7.10 高级的traceroute 工具18.7.10 Firewalk 45818.7.11 主动操作系统指纹识别工具18.7.11 XProbe2 45818.8 本章小结 458第19章防范嗅探器攻击和Linux病毒 459 19.1 防范嗅探器攻击 45919.1.1 嗅探器攻击原理 45919.1.2 嗅探器的检测技术 46019.1.3 嗅探器的安全防范 46119.2 Linux病毒的防范 46319.2.1 Linux病毒的历史 46319.2.2 Linux平台下的病毒分类 46419.2.3 Linux病毒的防治 46519.2.4 Linux防病毒软件 46519.2.5 安装配置f-prot反病毒软件 466 19.3 本章小结 474第20章Linux数据备份恢复技术 475 20.1 Linux备份恢复基础 47520.1.1 什么是备份 47520.1.2 备份的重要性 47620.2 Linux备份恢复策略 47620.2.1 备份前需考虑的因素 47620.2.2 备份介质的选择 47620.2.3 Linux备份策略 47820.2.4 确定要备份的内容 47920.2.5 Linux常用备份恢复命令 48020.3 Linux常用备份恢复工具 48520.3.1 Xtar 48620.3.2 Kdat 48720.3.3 Taper 48720.3.4 Arkeia 48820.3.5 Ghost for Linux 48920.3.6 mkCDrec 49020.3.7 NeroLINUX 49120.3.8 K3b 49220.3.9 KOnCD 49320.3.10 CD Creator 49320.3.11 X-CD-Roast 49420.3.12 webCDcreator 49520.3.13 rsync 49620.3.14 mirrordir 49620.3.15 partimage 49620.3.16 dvdrecord 49720.3.17 DVD+RW-Tools 49820.4 Linux备份恢复实例 49920.4.1 用mirrordir做硬盘分区镜像 499 20.4.2 使用partimage备份恢复20.4.2 Linux分区 50020.4.3 Linux异构网络中共享光盘刻录 509 20.5 本章小结 522附录A使用Linux帮助信息 523附录B Linux用户和用户组管理命令 534 附录C Linux文件处理命令 547附录D Linux网络设备管理命令 569附录E Linux进程管理命令 584附录F Linux磁盘管理维护命令 594附录G Linux设备管理命令 606附录H Linux其他常用命令 616。
linux操作系统安全配置内容
1. 更新操作系统:确保在系统中安装了最新的安全补丁和更新,以修复已知的漏洞和弱点。
2. 强密码策略:设置密码策略,要求用户使用强密码,包括至少8个字符,包含字母、数字和
特殊字符,并定期更改密码。
3. 用户权限管理:为每个用户分配适当的权限,并限制对敏感文件和系统配置的访问权限。
避
免使用管理员权限进行常规操作。
4. 防火墙设置:配置防火墙以限制网络流量,并只允许必要的端口和服务通过。
拒绝来自未知
来源或可疑IP地址的连接。
5. 安全审计:启用并配置安全审计工具,以跟踪对系统和文件的访问、登录尝试和其他安全事件。
6. 文件和目录权限:设置适当的文件和目录权限,以防止未经授权的用户访问和修改敏感文件。
7. 禁用不必要的服务和端口:禁用不必要的服务和端口,以减少攻击面。
8. 加密通信:对重要的网络通信采取加密措施,如使用SSL/TLS进行安全的远程登录、传输
和数据传输。
9. 安全日志管理:配置日志记录和监控系统,以及定期检查日志以发现潜在的安全问题。
10. 定期备份:定期备份系统和重要数据,以防止数据丢失和恶意破坏。
11. 安全性测试和漏洞扫描:进行定期的安全性测试和漏洞扫描,以发现并修复系统中的安全
漏洞。
12. 非必要软件和服务的删除:删除不必要的软件和服务,减少系统的攻击面。
13. 安全培训和意识提升:为用户提供安全培训和意识提升,教育他们遵循最佳的安全实践,
如不点击垃圾邮件的链接或下载未知来源的文件。
RHEL密码设置策略问题1、当一个用户试图多次登录失败后,如何锁住这个用户?PAM(可插入的验证模块)的pam_tally模块可以跟踪不成功的登录次数。
当到达一个预先设定的限制值后,禁止这个用户的帐号。
也就是通常讲的锁住用户。
为了使一个用户尝试登录4次失败,锁住这个用户,需要在/etc/pam.d/system- auth文件中加入下面两行:auth required /lib/security/pam_tally.so nerr=fail no_magic_rootaccount required /lib/security/pam_tally.so deny=3 no_magic_root reset下面是上面使用的选项的具体描述:* nerr=fail如果一些奇怪的事情发生,例如不能打开文件,这个决定了模块应该如何反应。
* no_magic_root表示如何这个模块是由一个uid=0的用户触发,那么计数器就增加。
系统管理员应该使用这个选项用于例如:telnet/rsh/login之类的服务。
* deny=3这个选项表明如果这个用户登录3次失败,就拒绝访问。
* reset这个选项指示模块对成功的实体,应复位到0。
下面是一个实现这种策略的一个完全的例子:auth required /lib/security/pam_env.soauth required /lib/security/pam_tally.so nerr=fail no_magic_rootauth sufficient /lib/security/pam_unix.so likeauth nullokauth required /lib/security/pam_deny.soaccount required /lib/security/pam_unix.soaccount required /lib/security/pam_tally.so deny=5 no_magic_root resetpassword requisite /lib/security/$ISA/pam_cracklib.so retry=3password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadowpassword required /lib/security/$ISA/pam_deny.sosession required /lib/security/$ISA/pam_limits.sosession required /lib/security/$ISA/pam_unix.so=============================================================================== 2、如何设置密码过期时间,比如说设置密码后, 90天后密码过期,需要重设密码?修改/etc/login.defs里面的PASS_MAX_DAYS,比如修改所有用户的密码过期时间是30天:PASS_MAX_DAYS 30如果这个值是99999,那么表示密码永不过期。
Linux安全策略配置目录一、关闭不必要的服务 (3)二、控制使用开放的服务的用户 (4)三、"/ETC/EXPORTS"文件设置 (6)四、禁止使用控制台程序 (7)五、"/ETC/ALIASES"文件 (8)六、使系统对PING没有反应 (9)七、不要显示系统提示信息 (10)八、"/ETC/HOST.CONF"文件 (10)九、防止源路由 (11)十、使TCP SYN COOKIE保护生效 (12)十一、特殊的帐号 (12)十二、防止任何人都可以用SU命令成为ROOT (14)十三、把RPM程序转移到一个安全的地方,并改变默认的访问许可 (15)十四、登录SHELL (16)十五、改变"/ETC/RC.D/INIT.D/"目录下的脚本文件的访问许可 (17)十六、"/ETC/RC.D/RC.LOCAL"文件 (17)一、关闭不必要的服务Linux的服务分为两种,一种是由inetd超级服务器来启动的,如:ftp、telnet等;对于这些服务来说,系统并不总是运行telnetd、 ftpd等服务进程,而是由inetd进程监听这些服务的服务端口,一旦有服务请求到达就启动对应的服务进程(如:telnetd等)来提供服务。
另外一种是独立的服务器,系统一直运行有对应的服务进程。
关闭这两种服务的方法是不同的,对于inetd启动的进程:inetd超级服务器的配置文件为/etc/inetd.conf,该文件指示了inetd应该监听哪些服务请求,并在请求时启动对应的服务。
因此只要通过编辑/etc/inetd.conf文件就可以实现关闭不需要的服务,例如希望关闭pop3服务,则在编辑/etc/inetd.conf文件以前文件中有如下的内容:pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d要关闭pop3服务则在该行前添加注释符即可:#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d通过编辑该文件,实现关闭不需要的服务(例如我的系统我仅仅开放了telnet和ftp服务)以后,则需要重新启动inetd超级服务器。
首先找到inetd 的进程号:[root@aid /etc]# ps ax|grep inetd358 ? S 0:00 inetd然后重新启动inetd服务器:[root@aid /etc]# kill -HUP 358最后因为inetd.conf应该不允许普通用户读写,因此设置其访问权限为600:chmod 600 /etc/inetd.conf而且该文件应该不被任何用户修改,包括root用户。
因此为了防止用户错误的修改该文件,为该文件添加不可修改位:chattr i /etc/inetd.conf对于独立服务器,则需要通过/usr/sbin/ntsysv命令来修改:只需要服务前面通过空格键来选择是否在系统启动时启动该服务就可以实现关闭某个服务器,如:希望系统关闭dhcpd服务,则通过上下键选中该服务器,然后通过空格键去掉该服务前[ ]内的星号即表示系统启动时不开放该服务。
若希望了解某个服务的具体含义,可以选择该服务以后按F1键来查看该服务的含义。
设置完毕以后,只有希望打开的服务前的[ ]内才会有星号。
然后通过Tab 键选择OK,按空格键。
重新启动机器。
重新启动机器以后,可以通过下面的命令来察看系统打开了哪些服务,来决定是否已经关闭了不需要的服务,例如我仅仅希望提供telnet服务则:[ideal@aid ideal]$ netstat -lnActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 0.0.0.0:23 0.0.0.0:* LISTENraw 0 0 0.0.0.0:1 0.0.0.0:* 7raw 0 0 0.0.0.0:6 0.0.0.0:* 7Active UNIX domain sockets (only servers)Proto RefCnt Flags Type State I-Node Path从上面的命令输出可以看到系统仅仅开放了23号端口,也就是telnet服务。
二、控制使用开放的服务的用户在上面提到的/etc/inetd.conf的配置文件中,我们看到pop3服务配置一行的最后两个字段为:/usr/sbin/tcpd ipop3d很显然,pop3的服务器程序为ipop3d,那么/usr/sbin/tcpd又是什么含义呢?这是一个称为Tcp wrapper的安全程序。
该程序用来在启动某个服务以前查看两个配置文件来决定该用户是否允许使用该服务。
在/etc目录下,有两个文件: hosts.deny hosts.allow。
通过配置这两个文件,你可以指定哪些客户机允许使用这些服务。
配置这两个文件是通过一种简单的访问控制语言来实现的,访问控制语句的基本格式为:程序名列表,主机名/IP地址列表。
程序名列表指定一个或者多个提供相应服务的程序的名字,名字之间用逗号或者空格分隔,可以在inetd.conf文件里查看提供相应服务的程序名:如上面的文件示例中,pop所在行的最后一项就是所需的程序名:ipop3d。
主机名/IP地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格分隔。
程序名和主机地址都可以使用通配符,实现方便的指定多项服务和多个主机。
当服务请求到达服务器时,访问控制软件就按照下列顺序查询这两个文件,直到遇到一个匹配为止:1. 当在/etc/hosts.allow里面有一项与请求服务的主机地址项匹配,那么就允许该主机获取该服务2. 否则,如果在/etc/hosts.deny里面有一项与请求服务的主机地址项匹配,就禁止该主机使用该项服务3. 若均没有匹配,则允许使用该服务。
若相应的配置文件不存在,访问控制软件就认为是一个空文件,所以可以通过删除或者移走配置文件实现对所有主机关闭所有服务。
在文件中,空白行或者以#开头的行被忽略,你可以通过在行前加 # 实现注释功能。
Linux提供了下面灵活的方式指定进程或者主机列表:1. 一个以"."起始的域名串,如 那么就和这一项匹配成功2. 以.结尾的IP串如 202.37.152. 那么IP地址包括202.37.152.的主机都与这一项匹配3. 格式为n.n.n.n/m.m.m.m表示网络/掩码,如果请求服务的主机的IP地址与掩码的位与的结果等于n.n.n.n 那么该主机与该项匹配。
4. ALL表示匹配所有可能性5. EXPECT表示除去后面所定义的主机。
如:list_1 EXCEPT list_2 表示list_1主机列表中除去List_2所列出的主机6. LOCAL表示匹配所有主机名中不包含.的主机上面的几种方式只是Linux提供的方式中的几种,但是对于我们的一般应用来说是足够了。
我们通过举几个例子来说明这个问题:例一:我们只希望允许同一个局域网的机器使用服务器的ftp功能,而禁止上面的ftp服务请求,本地局域网由 202.39.154. 、202.39.153. 和202.39.152. 三个网段组成。
在hosts.deny文件中,我们定义禁止所有机器请求所有服务:ALL:ALL 在hosts.allow文件中,我们定义只允许局域网访问ftp功能:in.ftpd: 202.39.154 202.39.153. 202.39.152.这样,当非局域网的机器请求ftp服务时,就会被拒绝。
而局域网的机器可以使用ftp服务。
然后重新启动你的 inetd进程:/etc/rc.d/init.d/inet restart但是hosts.deny|allow文件只控制/etc/inetd.conf文件中包含的服务的访问这些服务有/usr/bin/tcpd管理,监听接入的网络请求,然后与在hosts.allow和hosts.deny的中的服务比较,然后做出允许或拒绝的决定。
最后因为hosts.allow|hosts.deny应该不允许普通用户读写,因此设置其访问权限为600:chmod 600 /etc/hosts.*并且该文件应该不被任何用户修改,包括root用户。
因此为了防止用户错误的修改该文件,为该文件添加不可修改位:chattr i /etc/hosts.*三、"/etc/exports"文件设置如果通过NFS把文件共享出来,那么一定要配置"/etc/exports"文件,使得访问限制尽可能的严。
这就是说,不要用通配符,不允许对根目录有写权限,而且尽可能只给只读权限。
编辑exports文件(vi /etc/exports)加入:例如:/dir/to/export (ro,root_squash)/dir/to/export (ro,root_squash)"/dir/to/export"是你想共享出来的目录,是允许访问这个目录的计算机。
代表只读,代表不允许对根目录进行写操作。
使这些改变生效,你还要运行"/usr/sbin/exportfs -a"命令。
注意:在服务器上装NFS服务是会有安全隐患的,就我个人而言,不建议你使用NFS。
四、禁止使用控制台程序一个最简单而且最常用的保证系统安全的方法就是禁止使用所有的控制台程序,如:shutdown和halt。
可以运行下面的命令来实现:[root@aid /]# rm -f /etc/security/console.apps/servicename这里servicename是你要禁止的控制台程序名。
除非你使用xdm,否则不要把xserver文件删掉,如果这样除了root之外,没有人可以启动 X服务器了。
(如果使用xdm启动X服务器,这时root是唯一需要启动X服务器的用户,这才有必要把xserver文件删掉)。
例如:[root@deep]# rm -f /etc/security/console.apps/halt[root@deep]# rm -f /etc/security/console.apps/poweroff[root@deep]# rm -f /etc/security/console.apps/reboot[root@deep]# rm -f /etc/security/console.apps/shutdown[root@deep]# rm -f /etc/security/console.apps/xserver (如果删除,只有root可以启动X).这些命令就可以禁止所有的控制台程序:halt、poweroff、reboot和shutdown。