14.18.4.1 SASL을 활용한 memcached 인터페이스 암호 보호
SASL 지원을 통해 memcached 클라이언트를 통해 인증되지 않은 액세스로부터 MySQL 데이터베이스를 보호하는 기능을 사용할 수 있습니다. 이 섹션에서는이 옵션을 사용 가능하게하는 단계를 설명합니다. 이러한 지원을 가능하게하는 단계는 기존의 memcached 서버에서 SASL을 사용 가능하게하는 단계와 거의 동일합니다.
백그라운드 정보
SASL은 "Simple Authentication and Security Layer"를 의미하고, 연결 기반 프로토콜에 인증 지원을 추가하기위한 규격입니다. memcached는 1.4.3 버전에서 SASL 지원이 추가되었습니다.
SASL 인증은 바이너리 프로토콜에서만 지원됩니다.
InnoDB + memcached 조합의 경우 memcached 데이터를 저장하는 테이블은 container
시스템 테이블에 등록해야합니다. 또한 memcached 클라이언트는 이러한 등록 된 테이블에 액세스 할 수 있습니다. memcached 플러그인에 등록 된 테이블에 DBA의 액세스 제한을 추가 할 수 있지만, memcached 응용 프로그램을 통해 액세스 할 수있는 사용자를 제어 할 수 없습니다. 따라서 memcached와 관련된 InnoDB
테이블에 액세스 할 수있는 사용자를 제어하기위한 (SASL을 통한) 방법을 제공하고 있습니다.
다음 섹션에서는 SASL 지원 InnoDB
memcached 플러그인을 구축, 활성화 및 테스트하는 방법을 보여줍니다.
InnoDB Memcached 플러그인 SASL을 빌드 및 사용 가능하게하는 단계
기본적으로 SASL 지원 InnoDB
memcached는 SASL 라이브러리를 사용한 memcached 빌드에 의존하고 있기 때문에 릴리스 패키지에 포함되어 있지 않습니다. 이 기능을 사용하려면 MySQL 소스를 다운로드하여 SASL 라이브러리를 다운로드 한 후 InnoDB
memcached 플러그인을 다시 빌드합니다.
첫째, SASL 개발 라이브러리 및 유틸리티 라이브러리를 가져옵니다. 예를 들어, Ubuntu에서는 다음과 같이하여 이러한 라이브러리를 얻을 수 있습니다.
sudo apt-get -f install libsasl2-2 sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules
그런
ENABLE_MEMCACHED_SASL=1
을 cmake 옵션에 추가하여 SASL 기능을 갖는InnoDB
memcached 플러그인 (공유 라이브러리)를 빌드합니다. 또한 memcached는 테스트에 쉽게 사용할 수있는 간단한 평문 암호 지원을 제공합니다. 이를 활성화하려면 옵션ENABLE_MEMCACHED_SASL_PWDB=1
을 설정합니다.전반적으로 다음 세 가지 옵션을 cmake에 추가합니다.
cmake ... -DWITH_INNODB_MEMCACHED = 1 -DENABLE_MEMCACHED_SASL = 1 -DENABLE_MEMCACHED_SASL_PWDB = 1
세 번째 단계에서는 섹션 14.18.3 "InnoDB Memcached 플러그인 개요" 에서 설명한 바와 같이,
InnoDB
memcached 플러그인을 이전과 같이 설치합니다.앞에서 설명한 바와 같이, memcached는 SASL에 의한 단순한 평문 암호 지원이 제공되며,이 데모에서 사용합니다.
testname
라는 사용자와 암호testpasswd
를 파일에 작성합니다.echo "testname:testpasswd:::::::" >/home/jy/memcached-sasl-db
환경 변수
MEMCACHED_SASL_PWDB
을 설정하여 memcached에이 정보를 알려줍니다.export MEMCACHED_SASL_PWDB=/home/jy/memcached-sasl-db
또한 이것이 일반 텍스트 암호 인 것도 memcached에 통지합니다.
echo "mech_list: plain" > /home/jy/work2/msasl/clients/memcached.conf export SASL_CONF_PATH=/home/jy/work2/msasl/clients
그런 다음 서버를 재부팅하고
daemon_memcached_option
옵션-S
를 추가하여 SASL을 사용합니다.mysqld ... --daemon_memcached_option = "- S"
이제 설치가 완료되었습니다. 이를 테스트하려면이 SASL 대응 libmemcached 같은 SASL 해당 클라이언트가 필요한 경우도 있습니다.
memcp --servers = localhost : 11211 --binary --username = testname --password = testpasswd myfile.txt memcat --servers = localhost : 11211 --binary --username = testname --password = testpasswd myfile.txt
적절한 사용자 이름이나 암호가 없으면 이전 절차는 오류 메시지
memcache error AUTHENTICATION FAILURE
거부됩니다. 그렇지 않으면 작업이 성공합니다. 또한memcached-sasl-db
파일에 설정된 일반 텍스트 비밀번호를 조사하여이를 검증 할 수 있습니다.
memcached에서 SASL 인증을 검사하는 방법은 그 밖에도 있습니다. 그러나 위에 언급 된 것이 가장 쉽습니다.