it-swarm-korea.com

MySQL 서버 강화

강화 주제에 따라 ...

MySQL 보안을위한 모범 사례, 권장 사항 및 필수 정보는 무엇입니까?.

27
Scott Pack
  • 서버에서 MySQL 만 실행 -가능하면 서버에서 MySQL 만 실행하고 사용하지 않는 서비스는 모두 제거하십시오.
  • 방화벽 -IP 주소에 의한 액세스를 액세스가 필요한 서버/클라이언트로 제한합니다.
  • User Privileges -사용자를 만들 때는 항상 최소한의 권한을 부여하고 필요에 따라 확장하십시오. 또한 호스트에 '%'와일드 카드를 사용하지 말고 대신 액세스가 필요한 호스트로 제한하십시오.
  • 바인드 주소가 적절하게 -동일한 네트워크 내의 서버에 원격 액세스 만 필요하고 머신에 외부 IP 및 내부 네트워크 주소가 모두있는 경우. 내부 주소에서만 수신하도록 MySQL을 설정하십시오.
  • 로깅 활성화 -데이터베이스가 많은 쿼리를 처리하지 않으면 로깅을 활성화합니다.
  • mysql_secure_installation -익명 사용자 계정 제거, 테스트 데이터베이스 제거 등 여러 가지 작업을 수행하는 mysql_secure_installation 유틸리티를 사용하십시오.
  • 루트 계정 액세스 가능 로컬 전용 -루트 계정이 컴퓨터에서만 직접 액세스 할 수 있도록 제한하는 것이 가장 좋습니다. mysql_secure_installation을 사용하면 루트 계정에 대한 원격 액세스를 쉽게 제거 할 수 있습니다. 나는 보통 컴퓨터로 ssh하고 mysql 명령 Prompt를 사용하거나 MySQL Workbench에는 SSH를 통해 터널링하는 기능이 있습니다.

추가 자료

25
Mark Davidson

일반적인 OS 방법 (원격 ssh 관리자가 필요한 경우 fail2ban 포함)을 켠 다음 MySQL 포트에 대한 모든 외부 액세스를 차단하거나 절대적으로 필요한 경우 화이트리스트 연결을 허용한다고 가정합니다. mysqladmin 사용자의 비밀번호를 설정하십시오.

그 후, mysqladmin 사용자는 localhost에서만 연결할 수 있어야하며 'user'테이블을 통해 권한을 부여받은 유일한 사용자 여야합니다. 다른 모든 사용자는 기본적으로 (예 : user 테이블) 액세스를 거부했지만 개인에게 특정 권한을 부여했습니다. 데이터베이스.

인터넷에 MySQL을 직접 노출해서는 안됩니다. 원격 데이터 액세스 권한이 있어야하는 경우 VPN을 사용하십시오 (예 : 클라이언트 확인 기능이있는 터널).

7
symcbean