MySQL 및 MariaDB 보안을 위한 최고의 팁
게시 됨: 2022-01-08보안은 많은 사람들에게 큰 관심사입니다. 이 게시물은 데이터베이스를 해커로부터 안전하게 만들기 위해 MySQL 및 MariaDB 보안을 달성하는 방법에 대한 10가지 팁을 제공합니다. 이러한 팁에는 데이터 백업, 강력한 암호 사용 및 액세스 권한 제한이 포함됩니다.
MySQL 및 MariaDB 보안을 위한 최고의 팁
다음은 MySQL 및 MariaDB 보안을 달성하기 위한 최고의 팁입니다.
암호가 없는 사용자 제거
데이터베이스에 암호가 없는 사용자가 있는 경우 해당 사용자를 제거하는 것이 가장 좋습니다. 이렇게 하면 누군가가 데이터베이스를 해킹할 가능성을 줄이는 데 도움이 됩니다. 다음 쿼리를 사용하여 이러한 사용자를 제거할 수 있습니다.
사용자가 localhost에서만 액세스할 수 있는지 여부에 관계없이 부정적인 명령이 실행되는 것을 중지하려면 해당 사용자를 삭제해야 합니다. 또한 약한 암호는 그 자체로 보안 위험입니다.
데이터베이스에서 사용자를 생성할 때는 항상 강력한 암호를 사용해야 합니다. 약한 암호는 해커가 해독하기 쉽기 때문에 데이터베이스에 액세스하여 이를 관리할 경우 큰 피해를 입을 수 있습니다. 자동화된 암호 생성기를 사용하면 해독하기 더 어려운 더 강력한 암호를 생성하는 데 도움이 됩니다.
또한 사용자에 대해 2단계 인증을 사용하는 것도 고려해야 합니다. 이것은 데이터베이스에 로그인하기 위해 일반적으로 전화로 전송되는 추가 코드가 필요합니다. 이렇게 하면 다른 사람이 귀하의 사용자 이름과 비밀번호만 알고 있는 경우 액세스 권한을 얻기가 훨씬 더 어려워집니다.
원격 액세스 제한
데이터베이스에 대한 원격 액세스 권한을 부여할 필요가 없다면 제한하는 것이 가장 좋습니다. 이렇게 하면 누군가가 원격 위치에서 데이터베이스를 해킹할 가능성을 줄이는 데 도움이 됩니다.
운 좋게도 최신 버전의 MySQL 및 MariaDB는 달리 지정되지 않는 한 데이터베이스에 대한 원격 액세스를 자동으로 제한합니다. 그러나 이것이 사실인지 확인하기 위해 보안 설정을 확인해야 합니다.
모든 사용자가 원하는 정확한 호스트에서만 MySQL에 연결하도록 하는 것도 좋은 생각입니다. 예를 들어 ([email protected])를 사용하여 수행할 수 있습니다.
테스트 데이터베이스 제거
MySQL 또는 MariaDB를 설치하면 테스트 데이터베이스가 자동으로 생성됩니다. 이 데이터베이스에는 잘못된 손에 넘어간 경우 실제 데이터베이스를 해킹하는 데 사용할 수 있는 데이터가 포함되어 있습니다. 악의적인 목적으로 사용할 수 없도록 이 데이터베이스를 제거하는 것이 가장 좋습니다.
이 테스트 데이터베이스는 데이터베이스 서버에 불필요한 부담을 주기도 합니다. 데이터베이스 테스터가 쿼리를 테스트하는 데만 사용하므로 데이터베이스 기능에 영향을 주지 않고 제거할 수 있습니다.
MySQL에 대한 난독화 액세스
사람들이 당신의 데이터베이스가 존재한다는 사실을 알리고 싶지 않다면 접근을 난독화할 수 있습니다. 이렇게 하면 다른 사람이 데이터베이스를 찾아 해킹하기가 더 어려워집니다.
액세스를 난독화하면 트래픽을 모니터링하는 사람이 MySQL 또는 MariaDB에서 사용 중인 포트를 확인하기가 더 어려워집니다.
MySQL은 포트 3306에서 실행되는 반면 '루트'는 수퍼유저의 이름이라는 것은 잘 알려져 있습니다. my.cnf를 편집하고 'port' 변수를 변경하여 이 문제를 해결할 수 있습니다.
구성 파일 보안
모든 애플리케이션과 마찬가지로 MySQL 또는 MariaDB용 구성 파일을 보호하는 것이 중요합니다. 이러한 파일에는 암호 및 사용자 데이터와 같은 민감한 정보가 포함되어 있습니다. 이러한 파일을 보호하면 다른 사람이 서버에 액세스할 때 이 정보에 액세스하는 것을 방지하는 데 도움이 됩니다.
네트워크 보안
네트워크와 서버 자체를 보호하는 것도 중요합니다. 이렇게 하면 누군가가 원격 위치에서 데이터베이스를 해킹하여 사악한 명령을 실행할 가능성을 줄이는 데 도움이 됩니다.
가장 먼저 확인해야 할 것은 MySQL이 네트워크가 아닌 로컬 연결을 통해서만 액세스된다는 것입니다. Unix 소켓을 통해 이 작업을 수행할 수 있습니다. my.cnf에 'skip-networking'을 입력합니다. 모든 TCP/IP 통신을 중지합니다.

또한 방화벽을 사용하여 특정 IP 주소 또는 범위에서 MySQL에 대한 액세스를 차단할 수 있습니다. 이렇게 하면 누군가가 원격 위치에서 데이터베이스를 해킹할 가능성을 줄이는 데 도움이 됩니다.
감사 플러그인 사용
감사 플러그인을 사용하여 데이터베이스에서 일어나는 일을 추적할 수도 있습니다. 이는 누군가가 데이터베이스를 해킹했는지 또는 이를 암시할 수 있는 의심스러운 일이 진행 중인지 확인하는 데 도움이 됩니다.
오늘날 온라인에서 사용할 수 있는 이러한 플러그인에 대한 무료 및 유료 옵션이 많이 있습니다. MySQL Enterprise Audit은 조직에서 이미 MySQL Enterprise를 사용하고 있는 경우에 좋은 옵션입니다. MariaDB에는 자체 감사 플러그인도 있습니다.
이 플러그인은 모두 의심스러운 활동에 대해 데이터베이스를 모니터링하는 데 훌륭한 역할을 합니다. 비정상적인 것이 감지되면 경고를 보낼 수도 있으므로 매번 수동으로 로그를 확인할 필요가 없습니다.
LOAD DATA LOCAL INFILE 비활성화
다른 사람이 데이터베이스에 액세스하는 것을 방지하는 또 다른 방법은 MySQL 및 MariaDB에서 LOCAL 기능을 비활성화하는 것입니다. 이 명령을 사용하면 로컬 파일에서 데이터 파일을 로드할 수 있지만 특히 암호화되지 않은 경우 보안 위험이 따릅니다. 이 기능을 비활성화하려면 my.cnf에서 local-infile=0을 설정하십시오.
파일 권한
MySQL 및 MariaDB 파일에 대해 올바른 파일 권한을 설정하는 것도 중요합니다. 이렇게 하면 승인된 사용자만 액세스할 수 있습니다. 이러한 파일에 대한 적절한 권한을 설정하여 이를 수행할 수 있습니다.
예를 들어, 모든 MySQL 파일의 소유자를 'mysql'로 설정하고 그룹을 'mysql'로 설정하고 다른 모든 사용자는 액세스를 거부할 수 있습니다. 이렇게 하면 올바른 권한을 가진 사용자만 MySQL 파일에 액세스할 수 있습니다.
SSL 및 전송 데이터 암호화
SSL이 활성화된 MySQL 또는 MariaDB를 실행하는 경우 서버에 필요한 인증서를 설치하는 것이 중요합니다. 이것이 완료되지 않으면 누구든지 데이터베이스와 해당 클라이언트 간에 전송되는 정보를 가로챌 수 있습니다.
또한 SSH를 사용하여 공용 네트워크를 통해 전송되는 민감한 데이터의 추가 보호를 위해 전송 중인 모든 데이터를 암호화해야 합니다.
데이터베이스 서버와 다른 장치 간에 전송되는 데이터를 암호화할 수도 있습니다. 이렇게 하면 네트워크에서 트래픽을 모니터링하는 사람이 이러한 시스템 중 하나를 해킹한 경우에도 전송 또는 수신하는 데이터에 액세스할 수 없습니다.
SSL은 이미 프로토콜에 내장되어 있으므로 MySQL 사용자가 이를 달성하는 좋은 방법입니다. MariaDB 사용자는 stunnel을 사용하여 유사한 효과를 얻을 수 있습니다.
저장 데이터 암호화
마지막으로 저장 데이터 암호화도 고려해야 합니다. 즉, 데이터가 전송되지 않을 때도 암호화됩니다.
이것은 MySQL Enterprise Encryption 또는 MariaDB Column Encryption과 같은 도구를 사용하여 수행할 수 있습니다.
이 두 도구 모두 누군가가 데이터베이스 서버를 해킹하는 경우 데이터에 액세스하지 못하도록 보호하는 좋은 방법을 제공합니다. 또한 사용이 매우 쉽기 때문에 이러한 도구를 활용하기 위해 암호화 전문가가 될 필요는 없습니다.
결론
여기에 언급된 모든 옵션은 MySQL 및 MariaDB 보안을 달성하는 데 도움이 되지만 모든 상황에 완벽하지는 않습니다. 가능한 최상의 것을 선택할 수 있도록 귀하의 특정 요구사항을 검토할 때 고려해야 합니다. 그러나 이러한 팁은 귀하에게 잘 맞는 옵션을 선택하는 방법에 대한 좋은 아이디어를 제공해야 합니다.
이 기사가 조직에서 MySQL 및 MariaDB 보안을 달성하는 방법에 대한 좋은 아이디어를 제공하여 다른 방어벽을 뚫을 수 있는 경우 아무도 데이터베이스를 해킹할 수 없도록 하기를 바랍니다.