Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134104
  • 博文数量: 21
  • 博客积分: 576
  • 博客等级: 中士
  • 技术积分: 319
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-23 16:19
个人简介

没评论

文章分类

全部博文(21)

文章存档

2013年(1)

2012年(20)

我的朋友

分类: 系统运维

2012-07-30 11:26:06

Q:     

I'm running BIND on Red Hat Enterprise Linux or Fedora Core -

Why can't named update slave zone database files?

Why can't named create DDNS journal files or update the master zones from

journals?

Why can't named create custom log files?

A:     

Red Hat Security Enhanced Linux (SELinux) policy security protections :

 Red Hat have adopted the National Security Agency's SELinux security policy

( see ) and recommendations for BIND security ,

which are more secure than running named in a chroot and make use of the

bind-chroot environment unnecessary .

 By default, named is not allowed by the SELinux policy to write, create or

delete any files EXCEPT in these directories:

 $ROOTDIR/var/named/slaves

$ROOTDIR/var/named/data

$ROOTDIR/var/tmp

           

where $ROOTDIR may be set in /etc/sysconfig/named if bind-chroot is

installed.

 

The SELinux policy particularly does NOT allow named to modify the

$ROOTDIR/var/named directory, the default location for master zone database

files.

 

SELinux policy overrules file access permissions - so even if all the files

under /var/named have ownership named:named and mode rw-rw-r--, named will

still not be able to write or create files except in the directories above,

with SELinux in Enforcing mode.

 

So, to allow named to update slave or DDNS zone files, it is best to locate

them in $ROOTDIR/var/named/slaves, with named.conf zone statements such as:

 

zone "slave.zone." IN {

        type slave;

        file "slaves/slave.zone.db";

        ...

};  

zone "ddns.zone." IN  {

        type master;

        allow-updates {...};

        file "slaves/ddns.zone.db";

};

           

To allow named to create its cache dump and statistics files, for example,

you could use named.conf options statements such as:

 

options {

        ...

        dump-file "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        ...

};

           

You can also tell SELinux to allow named to update any zone database files,

by setting the SELinux tunable boolean parameter

'named_write_master_zones=1', using the system-config-securitylevel GUI,

using the 'setsebool' command, or in /etc/selinux/targeted/booleans.

 

You can disable SELinux protection for named entirely by setting the

'named_disable_trans=1' SELinux tunable boolean parameter.

 

The SELinux named policy defines these SELinux contexts for named:

 

named_zone_t : for zone database files       - $ROOTDIR/var/named/*

named_conf_t : for named configuration files - $ROOTDIR/etc/{named,rndc}.*

named_cache_t: for files modifiable by named - $ROOTDIR/var/{tmp,named/{slaves,data}}

           

If you want to retain use of the SELinux policy for named, and put named

files in different locations, you can do so by changing the context of the

custom file locations .

 

To create a custom configuration file location, e.g. '/root/named.conf', to

use with the 'named -c' option, do:

# chcon system_u:object_r:named_conf_t /root/named.conf

           

To create a custom modifiable named data location, e.g. '/var/log/named' for

a log file, do:

# chcon system_u:object_r:named_cache_t /var/log/named           

To create a custom zone file location, e.g. /root/zones/, do:

# chcon system_u:object_r:named_zone_t /root/zones/{.,*}           

See these man-pages for more information : selinux(8), named_selinux(8),

chcon(1), setsebool(8)
原文地址:

 

阅读(707) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~