snmpd.conf 에서 Access control 설정 방법
- community name
- manager와 Agent와의 관계를 설정하기 위해 SNMPv1과 SNMPv2에서 사용하는 것으로 Agent에 접근하기 위한 Password와 같은 역할을 합니다.
- community 종류 : read-only, read-write, trap
- Default name : public ( read-only ) , private ( read-write )
- 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 사용 가능
- 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
- 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”)
- 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는 비어 있어야 합니다.
- 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 와 같다고 가정
- 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 의 기능밖에 제공을 하지 않습니다.
- 쉽게 설정하기
위에서는 좀 더 세세하게 설정할 경우에 사용을 하지만 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
|
Comments List