系统管理指南:安全性服务

Procedure如何临时禁用对主机上的服务的验证

有时可能需要在网络应用程序服务器上,临时禁用对服务(如 rloginftp)的验证机制。例如,可能希望在执行维护过程时禁止用户登录到系统。使用 ktutil 命令,可以通过从服务器的密钥表文件中删除服务主体来完成此任务,而不需要 kadmin 权限。要再次启用验证,只需要将保存的原始密钥表文件复制回其原始位置。


注 –

缺省情况下,大多数服务都被设置为要求验证。如果某服务未设置为要求验证,则即使对该服务禁用验证,该服务仍然会运行。


  1. 成为包含密钥表文件的主机的超级用户。


    注 –

    尽管可以创建由其他用户拥有的密钥表文件,但使用密钥表文件的缺省位置需要 root 拥有权。


  2. 将当前密钥表文件保存到临时文件。

  3. 启动 ktutil 命令。


    # /usr/bin/ktutil
    
  4. 使用 read_kt 命令将密钥表文件读入密钥列表缓冲区。


    ktutil: read_kt keytab
    
  5. 使用 list 命令显示密钥列表缓冲区。


    ktutil: list
    

    此时会显示当前的密钥列表缓冲区。请注意要禁用的服务的槽号。

  6. 要临时禁用主机的服务,请使用 delete_entry 命令从密钥列表缓冲区中删除特定的服务主体。


    ktutil: delete_entry slot-number
    

    其中,slot-number 指定要删除的服务主体的槽号,可使用 list 命令来显示它。

  7. 使用 write_kt 命令,将密钥列表缓冲区写入新的密钥表文件。


    ktutil: write_kt new-keytab
    
  8. 退出 ktutil 命令。


    ktutil: quit
    
  9. 移动新的密钥表文件。


    # mv new-keytab keytab
    
  10. 如果要再次启用该服务,请将临时(原始)密钥表文件复制回其原始位置。


示例 24–19 临时禁用主机上的服务

在以下示例中,临时禁用了 denver 主机上的 host 服务。要重新启用 denver 上的主机服务,应将 krb5.keytab.temp 文件复制到 /etc/krb5/krb5.keytab 文件中。


denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp

denver # /usr/bin/ktutil

    ktutil:read_kt /etc/krb5/krb5.keytab

    ktutil:list

slot KVNO Principal

---- ---- ---------------------------------------

   1    8 root/denver@EXAMPLE.COM

   2    5 host/denver@EXAMPLE.COM

    ktutil:delete_entry 2

    ktutil:list

slot KVNO Principal

---- ---- --------------------------------------

   1    8 root/denver@EXAMPLE.COM

    ktutil:write_kt /etc/krb5/new.krb5.keytab

    ktutil: quit

denver # cp /etc/krb5/new.krb5.keytab /etc/krb5/krb5.keytab