자체 웹 호스팅을 보유한 사용자(물리적 서버 또는 리셀러)에게 질문하세요.
서버에서 처리해야 하는 일반적인 보안 문제가 있습니까? 비활성화해야 하는 번거로운 사항에 대한 제안이 있습니까? 피해야 할 웹호스팅과 관련된 어리석은 보안 실수가 있습니까? 웹호스트에 영향을 미치는 최근 취약점이 있습니까?
답변1
PayPal 계정이나 신용카드를 가진 사람에게 사용자 수준 액세스 권한을 부여하는 행위는 그 자체로 미친 짓입니다. 저는 지난 6년의 대부분을 호스팅 업계에서 일해왔지만 여전히 미친 짓이라고 생각합니다.
다음은 특별한 논리적 순서 없이 대부분의 서버(공유 여부)에 대해 수행하는 작업 목록입니다.
- 저는 배포판에서 제공하는 커널을 거의 사용하지 않습니다. 나는 grsecurity가 허용하는 한 Linux 메인라인과 보조를 맞추는 자체 커널 트리를 유지합니다. 이는 보안 조치일 뿐만 아니라 최적화 조치이기도 합니다. 우리 커널에서는 병렬/USB/오디오 지원과 같은 기능을 찾을 수 없습니다(웹 서버에는 필요하지 않기 때문입니다). 커널은 보드에서 필요한 것만 활용하도록 만들어졌습니다.
- 9/10 버그가 있는 사용자 스크립트로 인해 나쁜 일이 발생합니다. 많은 고객들이 PHP가 위험할 만큼 충분히 알고 있습니다. mod_security는 나의 가장 친한 친구 중 하나입니다. 저는 강화된 규칙 세트에 대한 구독 비용을 지불하고 거의 매주 업데이트를 유지합니다.
- 감사는 매우 중요합니다. 또한 OSSEC 또는 이와 유사한 것을 사용하는 것이 좋습니다.
- 내 모든 서버는 공용 네트워크와 독립적으로 연결할 수 있는 유지 관리 LAN에 연결되어 있습니다. 상황이 좋지 않아 서버가 인터넷을 통해 정크 패킷을 전송하느라 바쁜 경우 다른 방법을 사용하는 것이 좋습니다. 또한 모든 서버에 IP KVM이 설치되어 있거나 하드웨어에 따라 IPMI가 설치되어 있습니다.
- 최근에는 Xen을 공유 서버의 관리 계층으로 사용하고 있습니다. 시스템 메모리의 99%를 차지하는 단일 게스트를 만듭니다. 이를 통해 파일 시스템 복구/스냅샷/등과 같은 작업을 고통 없이 수행할 수 있습니다. 문제가 발생한 경우 복구에 큰 도움이 될 수 있습니다. 공유 서버에서 LAN을 숨기는 데도 편리합니다.
- 나는 송신과 관련하여 특히 엄격한 iptables 기반 방화벽을 유지 관리합니다.
- 나는 누가 시스템 컴파일러와 연결 도구에 접근할 수 있는지 매우 조심합니다.
- 나는 종교적으로 시스템 소프트웨어를 업데이트합니다.
- 사람들이 Wordpress, PHPBB 등과 같은 널리 사용되는 응용 프로그램의 오래되고 취약한 버전을 무의식적으로 실행하지 않도록 정기적으로 검사합니다.
- 저는 고객이 '인터넷에서 찾은' 항목을 무료로 설치해 드립니다. 이는 호스팅되는 내용을 감사하는 동시에 고객에게 추가적인 가치를 제공하는 데 큰 도움이 됩니다. 또한 물건이 안전하고 올바르게 설치되었는지 확인하는 데에도 도움이 됩니다.
- 항상, 항상, 항상 PHP를 강화하세요. PHP에도 suexec를 사용하세요. 'nobody'가 소유한 /tmp에서 봇을 찾는 것보다 더 나쁜 것은 없습니다 :)
마지막으로 중요한 것은 다음과 같습니다.
- 실제로 시스템 로그 파일을 읽었습니다.문제가 발견된 후에야 무엇이 잘못되었는지 확인하기 위해 많은 호스트가 달려옵니다. OSSEC와 같은 도구를 사용할 때에도 사전 대응이 중요합니다.
답변2
다른 사람들이 많은 세부 사항을 다루는 것처럼 보이지만 악의적인 활동의 가장 큰 단일 소스는 다음과 같습니다.FTP.
특정 IP로 잠그고 필요하지 않은 계정에 대해서는 비활성화하십시오. 요청하지 않는 한 서비스를 비활성화할 수도 있습니다.
나는 악성 코드가 웹사이트에 업로드된 후 전 세계에 스팸을 보내거나 iframe 삽입을 통해 방문자를 리디렉션하는 등 수십 건의 해킹을 처리해야 했습니다. 루트 또는 셸 액세스 권한을 얻는 경우는 거의 없으며, 대신 블랙리스트 해제 서버 및 수동으로 코드 검색에 대한 수많은 수동 관리 작업을 발생시킵니다.
해킹의 주요 소스는 서버 자체가 아니라 FTP 비밀번호를 스니핑하여 모선으로 다시 전송한 후 나중에 다른 시스템에서 코드를 업로드하는 데 사용되는 감염된 최종 사용자 PC입니다.
답변3
나는 한동안 웹 호스팅 회사에서 일했는데 모든 사용자의 보안을 유지하는 것은 악몽입니다. 특히 공유 환경에서. 보안 문제는 해당 시스템에만 격리되므로 개인 서버를 추적하기가 훨씬 더 쉽습니다.
공유 호스팅에 대해 염두에 두어야 할 몇 가지 사항은 다음과 같습니다.
- 한 사이트의 버그는 다른 모든 사이트에 영향을 미칠 수 있습니다. 따라서 각 사용자가 할 수 있는 작업을 제한하고 권한을 제한하도록 노력하세요. 여기에는 ulimit, PHP 제한 등이 포함됩니다.
- 시스템 및 개별 사이트를 모니터링합니다. OSSEC와 같은 도구는 모든 정보를 처리하는 데 매우 편리할 수 있습니다.
- Linux 커널에는 로컬 공격에 관한 좋은 추적이 없습니다. 따라서 항상 업데이트되었는지 확인하고 커널 보안 확장(grsecurity, SELinux 등)을 사용하세요.
개인 서버의 경우 보안은 사용자에게 맡기지만 네트워크에 적절한 QOS, NIDS 및 DOS 방지 도구를 설치해야 합니다.