MI는 MySQL 데이터베이스를 저장하기 위해 Ubuntu를 실행하는 Linux 서버를 설정하고 있습니다.
이 서버가 가능한 한 안전하다는 것이 매우 중요하며 제가 가장 우려하는 점은 들어오는 DoS/DDoS 공격과 서버 자체에 대한 무단 액세스입니다.
데이터베이스 서버는 포트 3000의 특정 IP(101.432.XX.XX)에서만 들어오는 데이터를 수신합니다. 나는 단지 서버가 해당 IP로부터 들어오는 요청을 받을 수 있고 서버가 나가는 요청을 하지 못하도록 할 수 있기를 원합니다.
나는 알고 싶다:
- 내 데이터베이스 서버가 나가는 요청만 하고 101.432.XX.XX에서 들어오는 요청만 받는 것을 방지하는 가장 좋은 방법은 무엇입니까? 모든 포트가 닫힙니다. 3000이 이 목표를 달성하는 데 도움이 될까요?
- 보안을 향상시킬 수 있는 Linux 환경의 추가 기능이 있습니까? 저는 개인 IP 주소에만 액세스하도록 제한하는 등 phpmyadmin 포털(MySQL 데이터베이스에 연결됨)을 보호하기 위한 매우 기본적인 단계를 수행했습니다. 데이터베이스 서버에 액세스하려면 SSH 키(자체는 비밀번호로 보호됨)가 필요합니다.
답변1
원하지 않는 모든 수신 및 발신 연결을 닫으려면 iptables
방화벽을 사용하여 작업을 수행할 수 있습니다. 예는 다음과 같습니다.
# To make sure that you have ssh access to the server
iptables -t filter -A INPUT -p tcp -s 101.432.XX.XX --dport 22 -j ACCEPT
# Allowing only your ip to connect to the server via specific port
iptables -t filter -A INPUT -p tcp -s 101.432.XX.XX --dport 3000 -j ACCEPT
# Drop any other requests
iptables -t filter -A INPUT -j DROP
이것은 단지 예일 뿐이며 iptables
안전을 위해 원하는 거의 모든 작업을 수행할 수 있습니다.
로부터 서버를 보호하려면 방화벽 도구로 DoS/DDoS
이 도구를 권장합니다. 이 도구는 다양한 유형의 공격에 대해 우수한 보호 기능을 제공할 수 있습니다. 자세한 내용은 다음을 확인하세요.csf
csf
https://download.configserver.com/csf/readme.txt
답변2
일부 설치에서는 데이터베이스를 "강화"하는 도구도 제공합니다.
sudo mysql_secure_installation
이는 새 루트 비밀번호 설정, 익명 사용자 삭제, 원격 루트 로그인 비활성화 등을 안내합니다.