zoukankan      html  css  js  c++  java
  • Ubuntu系统微调

    本章讲述了基本的基于命令行界面的系统配置方法。在学习本章前,你需要先阅读 Ubuntu 系统安装提示, 第 3 章.

    如是你很关心安全方面的信息,你应该阅读 Securing Debian Manual,它在 harden-doc 软件包中。

    [编辑]系统初始化

    Ubuntu 使用 System V 的 init 脚本系统。参阅 init程序, 第 2.4.1 节的介绍。

    [编辑]自定义 init 脚本

    最简单的控制 init 脚本的方法是改变 /etc/default 目录下,与 init 脚本同名的文件里的环境变量设置。 例如,/etc/default/hotplug 可以控制 /etc/init.d/hotplug 的行为。文件 /etc/default/rcS 可以用来定制 motd、sulogin 等为默认启动。

    如果你不能通过设置这些变量来得到你所需要的行为,你可以去修改 init 脚本:它们都是配置文件。

    [编辑]自定义系统日志

    可通过 /etc/syslog.conf 配置系统日志记录方式。如果想为日志文件上色可安装 colorize 软件包。参阅 syslogd(8) 和 syslog.conf(5)。

    [编辑]硬件存取优化

    有一部分硬件优化的配置工作 Ubuntu 留给了系统管理员。

    • hdparm
      • 硬盘存取优化。效果显著。
      • 危险。务必先阅读 hdparm(8)。
      • hdparm -tT /dev/hda 测试硬盘存取速度。
      • hdparm -q -c3 -d1 -u1 -m16 /dev/hda 加速新型 IDE 系统。(有一定风险。)
    • setcd
      • 压缩磁盘存取优化。
      • setcd -x 2 减速至 2x speed。
      • 参阅 setcd(1)。
    • setserial
      • 串行接口管理工具集。
    • scsitools
      • SCSI 硬件管理工具集。
    • memtest86
      • 内存硬件管理工具集。
    • hwtools
      • 低级硬件管理工具集。
        • irqtune:修改设备的 IRQ 优先级,使那些需要高优先级和快速服务的硬件(例如,串行接口、调制解调器)获得它所要的资源。对串口/调制解调器加速后获得原来 3 倍的吞吐量。
        • scanport:扫描 I/O 空间的 0x100 至 0x3ff 地址段,查找已安装的 ISA 设备。
        • inb:一个小巧的黑客工具,用来阅读 I/O 端口信息并将其值转换成十六进制和二进制。
    • schedutils
      • Linux 日程安排工具包。
      • 包括 taskset、irqset、lsrt 和 rt。
      • 再加上 nice 和 renice(不包括在工具包内),就可对进程的日程安排进行全面的管理。

    使用 noatime 选项挂载文件系统可有效提高文件的读取速度。参阅 fstab(5) 和 mount(8)。

    通过 proc 文件系统,Linux 内核可直接调节某些硬件参数。参阅 通过 proc 文件系统调整内核, 第 7.3 节。

    Ubuntu 中有许多专门的硬件配置工具包。其中有不少是针对笔记本电脑的。这儿有一些有趣的软件包:

    • tpconfig - 一个配置触摸屏设备的程序
    • apmd - 高级电源管理(APM)工具
    • acpi - 显示 ACPI 设备信息
    • acpid - ACPI 使用工具
    • lphdisk - 识别 Phoenix NoteBIOS 下的隐藏分区。
    • sleepd - 笔记本电脑处于非工作状态时进入休眠
    • noflushd - 让空闲硬盘进入减速状态
    • big-cursor - X 下的巨型鼠标指针
    • acme - 激活笔记本电脑上的“多媒体按钮”
    • tpctl - IBM ThinkPad 硬件配置工具
    • mwavem - Mwave/ACP modem 支持
    • toshset - 访问大部分 Toshiba笔记本电脑的硬件接口
    • toshutils - Toshiba 笔记本电脑工具集
    • sjog - 激活 Sony Vaio 笔记本电脑上“Jog Dial”功能的程序
    • spicctrl - Sony Vaio 控制器程序可增亮 LCD 背光

    ACPI 是一种比 APM 更新的电源管理系统。

    某些软件包需要专门的内核模块。它们已经包含在许多最新的内核源码中。如果遇此问题,则需要手动打上最新的内核补丁。

    [编辑]访问限制(Restricting access)

    [编辑]用 PAM 来控制登录

    PAM(Pluggable Authentication Modules 可嵌入认证模块)允许你控制用户是如何登录的。

    /etc/pam.d/*             # PAM 管理文件
    /etc/pam.d/login         # PAM 登录管理文件
    /etc/security/*          # PAM 模块参数
    /etc/securetty           # 管理通过控制台进行的 root 登录(login)
    /etc/login.defs          # 管理登录行为(login)
    

    如果想在控制台终端不用密码直接登录系统,可按下面的方法修改 /etc/pam.d/login 文件的内容,风险自负。

    #auth       required   pam_unix.so nullok
    auth       required   pam_permit.so
    

    该方法亦可用于 xdm、gdm,实现无密码 X 控制台。

    相反,如果你希望强化密码政策,可安装 cracklib2 并按下面的方法修改/etc/pam.d/passwd:

    password required       pam_cracklib.so retry=3 minlen=6 difok=3
    

    使用一次性登录密码激活帐户也很有用。要实现该功能,在 passwd 命令后加上 -e 参数,参阅 passwd(1)。

    要设置系统最大进程数,可在 Bash shell 中设定 ulimit -u 1000 或设置 PAM 的 /etc/security/limits.conf 文件。其它参数如 core 等的设置方法与之类似。PATH 的初始值可在 /etc/login.defs 中先于 shell 启动脚本设置。

    PAM 的文档位于 libpam-doc 软件包内。其中 The Linux-PAM System Administrator's Guide 一文涵盖了 PAM 配置、可用模块等内容,文档中还包括了The Linux-PAM Application Developers' Guide 和 The Linux-PAM Module Writers' Guide

    [编辑]“为什么 GNU su 命令不支持 wheel group”

    这是 Richard M. Stallman 的一句名言,位于旧版 info su 页面末尾。别担心:在 Ubuntu 中,当前版本的 su 使用 PAM,因此你可以用 /etc/pam.d/su 下的 pam_wheel.so 来限制任何用户组使用 su 的能力。下面的操作将在 Ubuntu 系统中赋予 adm 用户等同于 BSD wheel 用户组的权限,而且该组成员不需要密码就能使用 su 命令。

    # anti-RMS configuration in /etc/pam.d/su
    auth       required   pam_wheel.so group=adm
    
    # Wheel members to be able to su without a password
    auth       sufficient pam_wheel.so trust group=adm
    

    [编辑]各标准用户组的目的

    一些有趣的用户组:

    • 如果 pam_wheel.so 不带任何 group== 参数,root group 就是 su默认的 wheel group。
    • adm group 可以阅读日志文件。
    • cdrom group 可在本地赋予一组用户访问 CD-ROM 驱动器的权限。
    • floppy group 可在本地赋予一组用户访问软盘驱动器的权限。
    • audio group 可在本地赋予一组用户访问声音设备的权限。
    • src group 拥有源代码以及 /usr/src 目录下的文件。它可以在本地赋予某个用户管理系统源代码的权限。
    • 对于管理桌面或低级别的系统管理员,可设置他们为 staff 成员,该类成员可以在 /usr/local 下工作并且可以在 /home 下创建目录。

    完整列表参阅 Securing Debian Manual 的“FAQ”章节,亦见于 Woody 中的 harden-doc 软件包。新的 base-passwd (>3.4.6)软件包亦包含了权威列表:/usr/share/doc/base-passwd/users-and-groups.html。

    [编辑]更安全地工作 – sudo

    使用 sudo 最主要的目的是保护自己少做蠢事,我认为使用系统时使用 sudo 比总是使用 root 帐号更好。

    Ubuntu 系统默认使用 sudo,来工作,你建立的第一个帐户将自动加入到 admin 组, admin 组的成员拥有 sudo 的权限。

    安装 sudo 然后编辑 sudoers 中有关选项激活它。还可在 /usr/share/doc/sudo/OPTIONS 中查看 sudo 的用户组特性。

    样例中的配置,设定“staff”用户组成员可通过 sudo 执行任何 root 权限的命令而“src”用户组成员只可执行规定的一部分 root 权限的命令。

    使用 sudo 的好处在于只需一个普通用户密码登录,并且所有的活动都受到监控。用它为低级别的系统管理员赋权是个好主意。例如:

    $ sudo chown -R myself:mygrp .
    

    当然,如果你知道 root 密码(绝大部分在家安装系统的用户都会知道),就可以在普通用户下执行任何 root 命令:

    $ su -c "shutdown -h now"
    Password:
    

    (我想我该严格限制 admin 帐号的 sudo 特权,但对于家中的服务器,就不用考虑那么多了。)

    想了解其它允许普通用户执行 root 权限命令的程序,可以看看 super 软件包。

    [编辑]服务的访问限制

    对于 Internet 超级服务器,inetd 会在系统启动时通过 /etc/rc2.d/S20inetd(for RUNLEVEL=2)加载,S20inetd 是一个指向 /etc/init.d/inetd 的符号链接。本质上,inetd 允许一个运行中的守护进程(daemon)调用其它多个守护进程,以减轻系统的负载。

    当某个服务请求到达,系统会查询 /etc/protocols 和 /etc/services 中的数据库,确定该请求所指定的相关协议和服务,接着 inetd 会在 /etc/inetd.conf 数据库中查找普通 Internet 服务或 /etc/rpc.conf 中查找基于 Sun-RPC 的服务。

    为了系统安全,请在 /etc/inetd.conf 中关闭所有不用的服务。涉及到 NFS 和其它基于 RPC 的程序时需要激活 Sun-RPC 服务。

    有时,inetd 并不直接打开请求的服务,而是在 /etc/inetd.conf 中将该服务名作为的参数,打开 tcpd TCP/IP 守护进程包装程序。这时,tcpd 首先登记请求并使用 /etc/hosts.deny 和 /etc/hosts.allow 进行附加的检查,然后再运行相应的服务程序。

    如果新版的 Ubuntu 系统进行远程访问时出现问题,可以在 /etc/hosts.deny 中注释掉“ALL: PARANOID”,如果有该行的话。

    更多信息参阅 inetd(8)、inetd.conf(5)、protocols(5)、services(5)、tcpd(8)、hosts_access(5) 和 hosts_options(5)。

    有关 Sun-RPC 的更多信息参阅 rpcinfo(8)、portmap(8) 和 /usr/share/doc/portmap/portmapper.txt.gz。

  • 相关阅读:
    try,catch,finally的简单问题
    设置类可序列化,写入VIewState
    jQuery实现购物车物品数量的加减 (针对GirdView的类似事件)
    js获取Gridview中的控件id
    asmx ASp.net AJAX使用 ScriptManager
    js返回上一页并刷新,JS实现关闭当前子窗口,刷新父窗口
    asp.net(c#)网页跳转七种方法小结
    在触发器中回滚和提交
    redis 缓存对象、列表
    spring cloud 停止服务
  • 原文地址:https://www.cnblogs.com/aquester/p/9891876.html
Copyright © 2011-2022 走看看