의견: 권한: 보안 목적으로 쓰기는 가능하지만 읽을 수는 없습니까?

의견: 권한: 보안 목적으로 쓰기는 가능하지만 읽을 수는 없습니까?

저는 연결된 시스템이 많으며 증분 및 전체 백업을 위해 별도의 서버를 설정하려고 합니다.

시스템/백업이 손상될 경우 모든 시스템/백업의 손실을 방지하기 위해 백업이 푸시되는 각 시스템에 쓰기 전용 공유가 마운트된 보관함 유형으로 만드는 것을 고려하고 있습니다.

공격을 받은 경우 백업은 새로 생성된 읽기 전용 공유를 통해 영향을 받는 시스템에 노출되거나 푸시된 다음 거기에서 복원될 수 있지만 시스템 자체에는 액세스할 수 없습니다.

경쟁사 중 한 곳은 최근 백업까지 연결되어 있어 복원할 것이 전혀 없었기 때문에 전체 비즈니스를 잃었습니다.

또한 적절한 간격으로 전체 백업을 다운로드하겠습니다.

내 계획에 구멍을 뚫어주세요.

감사해요.

답변1

내 계획에 구멍을 뚫어주세요.

확신하는. 읽기만 제거해도 문제가 발생하지 않습니다. 수정하려면 쓰기 권한이 필요합니다. 그러면 공격자는 여전히 빈 파일을 쓸 수 있습니다(파일이 어디에 있는지만 알면 됩니다).

새 데이터 추가를 제외하고 백업과 관련하여 해당 디스크의 어떤 것도 잠그지 않는 이유는 무엇입니까?

가능한 설정:

/backups/20160911/backup.tar.gz
/backups/20160912/backup.tar.gz
/backups/20160913/backup.tar.gz

다음을 수행하는 스크립트를 작성하십시오.

chattr -R +a /backups/
chattr -R +i /backups/*.tar.gz

+i"불변"을 의미합니다. 이러한 파일이나 디렉터리에는 아무 작업도 수행할 수 없습니다. 루트조차도 이를 변경할 수 없습니다(새 파일 제거, 편집, 쓰기, 추가 등 모든 작업 포함). -i루트가 이러한 파일에 대해 작업을 수행하려면 루트라도 이를 제거해야 합니다( 를 사용하여 ).

+a"추가"를 의미합니다. 1개의 예외를 제외하고 는 동일한 규칙입니다 -i. 누구도 파일이나 디렉토리를 변경할 수 없습니다.거기에 추가하는 것 빼고는. 그리고 다시 말하지만, -a변경 사항이 추가되지 않는 파일이나 디렉터리를 변경하기 전에 루트라도 이를 제거해야 합니다( 를 사용하여 ).

(위에서는 약간의 조정이 필요할 수 있습니다. 하나의 큰 백업 파일은 최선의 접근 방식이 아닐 수 있습니다. 하위 디렉터리와 파일이 있는 것이 더 나을 수도 있습니다. 따라서 이 두 줄을 조정해야 합니다. 예를 들어 이전 디렉터리에서만 이 작업을 수행하고 백업이 완료되면 수동으로 "오늘"이 됩니다.

chattr -R +i /backups/{not_today}
chattr -R +a /backups/{today}

이 스크립트를 일정 간격으로 실행하여 언제든지 누군가 내부 내용을 변경하면 /backups/모든 백업에 대한 권한이 재설정됩니다.

디렉터리와 파일을 "오늘"에 추가할 수 있으며 백업이 완료된 후 +i를 수동으로 추가할 수 있습니다. 좋은 관리자 비밀번호를 생성하면 관리자 외에는 누구도 이 파일을 건드릴 수 없습니다. 항상.

그런데 온라인으로 백업을 저장하는 것도 고려해 보세요. 우리는 여러 개의 Google 인스턴스에 백업을 보유하고 있습니다(3개 대륙에 각각 다른 대륙에서 대체 인스턴스를 만드는 데이터를 공유하는 3개의 라이브 시스템이 있고 각 시스템은 백업 시스템을 공유합니다).

답변2

read읽을 수 없게 하려는 파일이나 디렉터리에서 권한을 제거하세요 .

권한은 다음과 같습니다:

u - Owner
g - group
o - others

모든 사람에 대한 읽기 권한을 끄고 쓰기 액세스 권한을 갖고 싶은 모든 사람에 대한 권한을 끄세요.

$ chmod -R ugo-r [path]

디렉터리 [경로]와 모든 파일 및 하위 디렉터리는 이 속성을 갖습니다. 이 경우에는 -r(읽기 액세스 권한 없음)입니다.

답변3

연결이 끊어진 백업만큼 안전한 것은 없습니다. 백업을 외부 드라이브에 다운로드하고 백업을 복사한 후 네트워크에서 연결을 해제하세요. 여러 개의 드라이브를 구해 회전시키세요.

예를 들어 5개의 1Tb 드라이브를 구매합니다(총 비용 < $300). 그 중 3개를 일일 백업으로 할당하세요. 매일 하나를 연결하고 백업을 복사한 다음 연결을 끊습니다. 하나는 주간 백업으로, 하나는 월간 백업으로 할당하고 동일한 작업을 수행합니다.

화재나 도난에 대비하여 일부 드라이브를 다른 장소에 보관하십시오.

이 접근 방식은 다양한 데이터 손실 위협으로부터 사용자를 보호합니다.

시스템이 모두 서버 기반인 경우 클라우드에 상응하는 시스템을 사용하십시오. 다양한 공급자(Amazon, Google, Azure)에 일부 서버를 설정하세요. 매일 다른 서버에 연결하고 해당 서버에 백업을 SFTP로 연결한 다음 연결을 끊습니다. 좋은 사본 위에 백업되지 않도록 여러 사본을 보관하십시오.

그러나 네트워크 연결을 끊고 오프사이트 위치에 보관하는 물리적 복사본만큼 해킹할 수 없는 것은 없습니다.

관련 정보