1.4. BIND ACL 작성
BIND의 특정 기능에 대한 액세스를 제어하면 서비스 거부(DoS)와 같은 무단 액세스 및 공격을 방지할 수 있습니다. BIND ACL(액세스 제어목록
) 설명은 IP 주소 및 범위 목록입니다. 각 ACL에는 allow-query
와 같은 여러 문에서 사용할 수 있는 닉네임이 있으며 지정된 IP 주소와 범위를 나타냅니다.
BIND에서는 ACL에서 첫 번째 일치하는 항목만 사용합니다. 예를 들어 ACL { 192.0.2/24; !192.0.2.1; }
과 IP 주소 192.0.2.1
이 연결된 호스트를 정의하는 경우 두 번째 항목이 이 주소를 제외하더라도 액세스 권한이 부여됩니다.
BIND에는 다음과 같은 기본 제공 ACL이 있습니다.
-
none
: 호스트 없음과 일치합니다. -
any
: 모든 호스트와 일치합니다. -
localhost
: 루프백 주소127.0.0.1
및::1
과 일치하고 BIND를 실행하는 서버에서 모든 인터페이스의 IP 주소와 일치합니다. -
localnets
: 루프백 주소127.0.0.1
및::1
과 일치하고 BIND를 실행하는 서버가 직접 연결된 모든 서브넷과 일치합니다.
사전 요구 사항
- BIND는 예를 들어 캐싱 이름 서버로 이미 구성되어 있습니다.
-
named
또는named-chroot
서비스가 실행 중입니다.
프로세스
/etc/named.conf
파일을 편집하고 다음과 같이 변경합니다.파일에
acl
문을 추가합니다. 예를 들어127.0.0.1
,192.0.2.0/24
,2001:db8:1::/64
에 대해internal-networks
라는 ACL을 생성하려면 다음을 입력합니다.acl internal-networks { 127.0.0.1; 192.0.2.0/24; 2001:db8:1::/64; }; acl dmz-networks { 198.51.100.0/24; 2001:db8:2::/64; };
acl internal-networks { 127.0.0.1; 192.0.2.0/24; 2001:db8:1::/64; }; acl dmz-networks { 198.51.100.0/24; 2001:db8:2::/64; };
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ACL의 닉네임을 지원하는 문에 사용합니다. 예를 들면 다음과 같습니다.
allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };
allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/named.conf
파일의 구문을 확인합니다.named-checkconf
# named-checkconf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload named
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot
명령을 사용하여 서비스를 다시 로드합니다.
검증
구성된 ACL을 사용하는 기능을 트리거하는 작업을 실행합니다. 예를 들어 이 절차의 ACL에서는 정의된 IP 주소의 재귀 쿼리만 허용합니다. 이 경우 ACL 정의에 없는 호스트에 다음 명령을 입력하여 외부 도메인 확인을 시도합니다.
dig +short @192.0.2.1 www.example.com
# dig +short @192.0.2.1 www.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령에서 출력을 반환하지 않으면 BIND가 액세스를 거부하고 ACL이 작동합니다. 클라이언트에 대한 자세한 출력의 경우
+short
옵션 없이 명령을 사용합니다.dig @192.0.2.1 www.example.com
# dig @192.0.2.1 www.example.com ... ;; WARNING: recursion requested but not available ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow