snmpd.conf 에서 Access control 설정 방법


  1. community name

    • manager와 Agent와의 관계를 설정하기 위해 SNMPv1과 SNMPv2에서 사용하는 것으로 Agent에 접근하기 위한 Password와 같은 역할을 합니다.

    • community 종류 : read-only, read-write, trap

    • Default name : public ( read-only ) , private ( read-write )



  2. community 설정


    CODE



    # com2sec       sec.name         source          community

    com2sec        local              localhost        KLAB_RW

    com2sec        mynetwork         192.168.0/24       KLAB_RO

    com2sec        public               default         public




    KLAB_RW 는 Read, write가 가능한 community로 설정을 하고

    KLAB_RO 는 Read만 가능한 community로 설정을 하도록 하겠습니다.

    • community의 이름을 security name, source와 mapping

    • sec.name : security name (=username)

    • source : hostname, subnet, default 사용 가능



  3. Group 설정


    CODE



    # group       Name            Model              Security

    group        MyRWGroup          v1                  local

    group        MyRWGroup          v2c                 local

    group        MyRWGroup          usm                 local




    group을 설정하여 access에서 read, write 기능을 부여합니다.

    • security name과 security model을 group에 mapping합니다.

    • Name : group name

    • Model : security model

      - v1 : SNMPv1

      - v2c : SNMPv2

      - usm : SNMPv3

    • Security : security name



  4. View 설정


    CODE



    # view  Name   Type    Subtree                                         [Mask]

    view    all     included      .1                                         ff

    view  system  included  system                                           fe

    view  mib2    included  .iso.org.dod.internet.mgmt.mib-2                 fc






    mask를 설정안하실 경우 default로 "FF" 가 잡힙니다.

    • 볼 수 있는 정보에 대한 제한을 지정합니다.

    • Name : view 이름

    • Type : included, excluded

    • subtree : mib-2의 subtree

    • mask : default (“FF”)



  5. access 설정


    CODE



    # access  name    context   model    level     Prefix   read     write    notify

    access  MyRWGourp  “”       any      noauth    exact    all       all      none




    group이 Agent에 접근할 수 있는 권한을 설정합니다.

    • group/sec.model/sec.level을 view와 mapping

    • Name : Group name

    • context

    • model : any, v1, v2c, usm

      여기서 any는 v1, v2c, usm 모두를 이용할 수 있는거 같습니다 ^^;;

    • level : noauth, auth, priv

      level 자체는 SNMPv3에서 쓰이는 것이므로 만약 v1과 v2를 쓰실 경우에는 noauth로 설정하시면 됩니다.

    • Prefic : exact, prefix

    • read , write, notify : view name

    • 주의점 : v1과 v2로 접근할 경우 , level은 noauth로, context는 비어 있어야 합니다.



  6. CreateUser : SNMPv3의 경우


    CODE



    #createUser  username  (MD5|SHA)  authpassphrase   [DES]   [privpassphrase]

    createUser     KLAB      MD5    “terran.k-lab.co.kr”  DES




    SNMPv3의 경우에는 community를 사용하는 것이 아니라 User를 사용합니다.

    만약 SNMPv3를 사용하실 경우에는 위 처럼 user를 생성해 주셔야 합니다.


    • MD5|SHA : 인증절차 보안을 위해 사용되어지는 알고리즘 타입

      SHA를 사용하기 위해서는 openssl이 설치되어 있어야 합니다.

    • DES : privacy protocol ( 데이터 보안 )

    • authpassphrase : 인증을 위해 필요한 문장

    • privpassphrase가 없을 경우 authpassphrase 와 같다고 가정



  7. Default 설정 (public)


    CODE



    com2sec   public    default   public

    group     public    v1   public

    group     public    v2c  public

    group     public    usm  public

    view      all  included  .1

    access    public    ""   any  noauth    exact     all  none none




    public는 snmp를 설치하였을 경우 snmpd.conf에서 default로 설정되어 있는 값입니다.

    위에서 보는 바와 같이 public 은 read 의 기능밖에 제공을 하지 않습니다.


  8. 쉽게 설정하기

    위에서는 좀 더 세세하게 설정할 경우에 사용을 하지만 snmp는 간단하게 community와 user를 생성할 수 있도록 합니다.

    • v1, v2c의 경우 community 설정


      CODE



      #rwcommunity   COMMUNITY   [source]       [OID]

      rwcommunity    KLAB_RW      localhost        

      #rocommunity   COMMUNITY   [source]       [OID]

      rocommunity    KLAB_RO       192.168.0          



        rwcommunity를 사용하여 community를 생성할 경우 read, write 기능을 가지는 community를 생성하며 rocommunity는 read 만을 할 수 있는 community를 설정합니다.
      • rwcommunity : read, write의 권한 부여

      • rocommunity : read의 권한만 부여

      • community : community name

      • source : com2sec의 source와 같다

      • OID : community가 access할 수 있는 OID를 한정



    • v3의 경우 user설정


      CODE



      #rwuser USER   [noauth|auth|priv]   [OID]

      rwuser  KLAB    auth  

      #rouser USER   [noauth|auth|priv]   [OID]




      • rwuser : read, write 권한을 가지는 사용자

      • rouser : read 권한만 가지는 사용자








SNMPv1, v2의 경우에는 위의 설정을 이용하여 write기능을 가지는 community를 만들고 나서 write가 가능한 OID를 snmpd.conf에서 값을 줬을 경우에는 write를 할 수가 없습니다.



(예)

system의 sysContacts의 경우 read, write할 수 있습니다. 하지만 밑에 code를 snmpd.conf에 써줬을 경우에는 snmpset을 이용하여 값을 변경할 경우 에러가 납니다.


CODE



syscontacts testing






출처 : 달팽이의 사랑 (감사합니다!)

http://blog.naver.com/sleepygirl97/100008749936



From. http://www.whangun.com

2006/03/31 04:37 2006/03/31 04:37
Trackback address :: http://4ellene.net/tt/trackback/806

Comments List

Write a comment.

[로그인][오픈아이디란?]