OpenWrt에서 네트워크 응용을 운영하다보면 설정에 의해 네트워크 포트 액세스를 허용/제한 설정을 해야 하는 경우가 있다.
firewall 에 rule 추가
SNMP 서비스 액세스를 허용/제한 하기 위해 가장 간단하다고 생각하는 방법은 아래와 같다.
root@OpenWrt:~# uci set firewall.snmp=rule
root@OpenWrt:~# uci set firewall.snmp.name='reject snmp traffic'
root@OpenWrt:~# uci set firewall.snmp.src='wan'
root@OpenWrt:~# uci set firewall.snmp.dest_port='161'
root@OpenWrt:~# uci set firewall.snmp.target='REJECT'
root@OpenWrt:~# uci set firewall.snmp.enabled='0'
root@OpenWrt:~# uci commit
위에 명령을 입력하면 firewall에 아래처럼 저장된다.
여기서 사용된 option은 아래와 같다. 특정 ip, port, 날짜 지정 등의 옵션을 사용할 수 있지만 사용 목정에 맞게 심플하게 추가했다.
- src: "zone name"의 형태로 트래픽 소스 zone을 선택한다. zone 은 network 설정에서 선택한다.
- dest_port: rule을 적용할 port이다. snmp 서비스 액세스를 제어할 거니까 '161'을 설정
- target: rule 동작 방법 ("ACCEPT", "REJECT". "DROP", "MARK", NOTRACK") 중 "REJECT" 선택
- enabled: 이 rule을 사용할지 사용 안할지 선택.
위 설정에 의해 enabled가 '1'인 경우 SNMP 포트(161)을 REJECT 하고, enabled가 '0' 인 경우 ACCEPT 하는 rule을 생성했다.
테스트
먼저, enabled option이 0인 경우 (SNMP ACCEPT)시에는 SNMP 요청에 응답하는 것을 볼 수 있다.
root@OpenWrt:~# uci set firewall.snmp.enabled='0'
root@OpenWrt:~# uci commit
root@OpenWrt:~# /etc/init.d/firewall reload
이후 SNMP REJECT enable option을 1로 바꾸고 firewall을 reload 하면 SNMP 서비스를 제한할 수 있다.
root@OpenWrt:~# uci set firewall.snmp.enabled='1'
root@OpenWrt:~# uci commit
root@OpenWrt:~# /etc/init.d/firewall reload
- SNMP요청에 timeout 발생
'Embedded Linux > OpenWrt' 카테고리의 다른 글
OpenWrt용 python package를 설치하는 Makefile 만들기 (0) | 2021.05.18 |
---|