
네트워크 보안에 대한 지식이 다소 제한적인 사람으로서 저는 다음 사항을 알고 싶습니다. (1) MySQL 서버, (2) 임의 서비스가 포함된 일부 도커 컨테이너, (3) 역방향 DNS로 Apache 또는 nginx를 실행하는 것이 "안전"합니까? , 표준 홈 LAN에서 인터넷에 노출하시겠습니까? 내 네트워크 설정은 매우 간단합니다. 하나의 라우터가 인터넷에 연결되고 집에 있는 모든 장치가 해당 라우터에 직접 연결됩니다. 포트 전달과 DDNS를 사용하여 LAN에 있는 모든 장치를 서버로 만들 수 있습니다. 현재 DMZ가 구성되어 있지 않으며 물리적 방화벽을 사용하고 있지 않습니다.
그러한 LAN의 장치에 80과 같은 포트를 전달하는 것이 안전한가요? 아니면 라우터의 공용 IP를 DDNS에 등록하지 말아야 합니까? 즉, 설명된 설정이 (1) 포트가 전달되는 장치를 취약하게 만들 수 있습니까(맬웨어 삽입, 데이터 도난 등) 또는 (2) LAN의 다른 장치를 취약하게 만들 수 있습니까? 서버와 관련이 있습니까?
물론 이것은 프로덕션 환경이 아닙니다. 나는 집 밖에서 접근하고 싶은 여러 프로젝트를 한 번에 수행하는 경우가 많으며 AWS, GCP 등에 많은 돈을 지불하고 싶지 않습니다. 그래서 MySQL, Mongo용 서버를 갖고 싶었습니다. , Neo4J 등을 항상 실행하고 있으며 개인 데모 및 테스트 목적으로 일부 웹 앱을 배포합니다.
답변1
[...]설명된 설정이 (1) 포트가 전달되는 장치를 취약하게 만들 수 있습니까(맬웨어 삽입, 데이터 도난 등) 또는 (2) 아무것도 없는 LAN의 다른 장치를 취약하게 만들 수 있습니까? 서버와 관련이 있습니까?
예, 그렇습니다.
안전 해요[?]
이것은 아마도 "안전하다"라고 부르는 것에 따른 개인적인 의견일 것입니다. 그러나 실제적인 측면에서 고려해야 할 두 가지 사항이 있을 수 있습니다.
최신 서버는끊임없이자동화된 익스플로잇 스크립트(일반적으로 대부분의 공격자가 피해자를 표적으로 삼는 방법)의 공세를 받고 있습니다.
이러한 위협의 대부분은 정기적인 소프트웨어 업데이트, 최소한의 예방 조치 및 일부 적절한 보안 설정(합리적으로 조사할 수 있음)을 통해 완화될 수 있습니다.
결론적으로, 이 경로를 따르면 네트워크의 아마추어 시스템 관리자 역할을 하게 됩니다(로그 읽기, 소프트웨어 업데이트 확인 등). 이 역할을 맡아도 괜찮다면 집에서 설정하는 것이 상대적으로 안전할 수 있습니다. 그렇지 않으면 기존의 타사 서비스가 더 빠른 속도를 낼 수 있습니다.
내 네트워크 설정은 매우 간단합니다. 하나의 라우터가 인터넷에 연결되고 집에 있는 모든 장치가 해당 라우터에 직접 연결됩니다.
올바른 방화벽 설정이 있으면 비교적 안전할 수 있습니다. 즉, 다음과 같은 방화벽 작업을 수행하기 위해 값싼 PC(오래된 PC 또는 라즈베리 파이)를 전용으로 사용하고 싶을 수도 있습니다.pfsense.
그러한 LAN의 장치에 80과 같은 포트를 전달하는 것이 안전한가요? 아니면 라우터의 공용 IP를 DDNS에 등록하지 말아야 합니까?
이것은 일화적인 사실이지만 테스트 및 개인 사용을 위해 수년 동안 매우 유사한 설정을 사용해왔기 때문에 보안 문제가 발생한 적이 없습니다.
특히 Apache/Nginx 및 MySQL과 관련하여 몇 가지 작은 정보를 제공합니다.
Apache/Nginx가 개방형 프록시(남용되기 쉽고 서버를 표적이 됨)로 작동하지 않는지 확인하세요. 이 위험은 일반적으로 몇 가지 간단한 구성 명령(Apache에 대해 여기에 자세히 설명된 것과 같은).
Apache의 경우 .htaccess 파일을 비활성화하는 것이 좋습니다.
MySQL의 경우 가장 큰 문제 중 하나는 phpMyAdmin과 같은 브라우저 기반 관리 도구를 사용하는 것입니다. WordPress와 함께 로그를 검토할 때 이것은 내가 본 소프트웨어 중 가장 공격을 많이 받은 소프트웨어 중 하나였습니다(아마도 SQL 주입이 잠재적으로 매우 강력할 수 있기 때문일 것입니다). 데이터베이스에 연결하는 모든 웹 앱은 적절하게 보호되어야 하지만 이와 같은 도구를 실행하면 (잠재적으로) 문제가 발생할 수 있습니다.
위의 내용은 데이터베이스 서버 액세스를 선택한 로컬 컴퓨터로만 제한하고 데이터베이스 권한을 제한하는 것과 함께 진행됩니다.
SQL 주입 공격은 WAF(웹 애플리케이션 방화벽)를 통해 완화하는 데 도움이 될 수 있습니다. CloudFlare와 같은 타사 서비스는 다음과 같은 종류의 서비스를 제공합니다(현재 다른 기능도 포함하여 월 $20) "설정하고 잊어버리는" 솔루션입니다. 그러나 다음과 같은 모듈을 사용하여 Apache 또는 Nginx를 통해 이러한 종류의 기능을 직접 추가하는 것은 상당히 쉽습니다.모드 보안.
마지막으로, 웹 서버 및 MySQL 보안을 위한 기본 사항은 잘 문서화되어 있으며 일반적으로 "Linux에서 Apache를 보호하는 방법" 또는 "SQL 주입 공격을 방지하는 방법"과 같이 조사하기 매우 간단합니다. 이 두 가지 모두 대부분의 악의적인 사용자가 시스템을 망가뜨리는 것을 방지하는 일반적인 팁을 제공합니다.
물론 고급스러워서 추가 보안(예: 실제 DMZ)을 추가하려고 시도할 수 있지만 이는 잠재적으로 훨씬 더 많은 작업이 될 수 있습니다.