내부에데비안 보안 가이드나는 (iptables에 대해) 다음을 읽었습니다.
이러한 도구는 쉽게 남용되어 시스템에 대한 네트워크 액세스를 완전히 마비시켜 엄청난 고통을 초래할 수 있습니다. 원격 시스템 관리자가 실수로 수백 또는 수천 마일 떨어진 시스템에서 자신을 잠그는 것은 드문 일이 아닙니다.어떤 사람은 손가락 밑에 키보드를 끼운 채 컴퓨터에서 빠져 나올 수도 있습니다.
알고 싶어요... 어떻게 해야 하나요?
답변1
다음과 같은 상황에서는 키보드에 자신이 잠길 수 있습니다.
IPTABLES를 사용하는 경우 모든 아웃바운드 네트워크 트래픽을 차단합니다. 그리고 사용자 로그인을 위해 일종의 네트워크 인증(예: LDAP 또는 NIS)을 사용하는 경우. 따라서 시스템은 외부 서비스에 접근할 수 없으며 해당 사용자 ID를 사용하여 로그인할 수 없습니다. 그리고 비밀번호가 있는 다른 로컬 사용자 계정이 없으며 콘솔에서 직접 루트 로그인을 비활성화했습니다.
시스템을 단일 사용자 모드로 재부팅하고 오류를 수정할 수 있으므로 아직 완전히 잠긴 것은 아닙니다.
답변2
가장 간단한 형태로 로그인 및 인증이 네트워크 연결에 의존하는 경우 콘솔 로그인도 비활성화합니다(물리적 보안 목적으로도 수행할 수 있음).
답변3
컴퓨터를 보호하는 동안 자신을 잠글 수 있으므로 복구할 수 있는 유일한 방법은 콘솔 모드로 재부팅하는 것입니다. 어떤 경우에는 부팅 가능한 CD가 필요할 수도 있습니다. BIOS가 잠겨 있는 최악의 경우에는 이 작업을 쉽게 수행하지 못할 수도 있습니다.
모든 콘솔에서 루트 액세스를 잠그는 것은 순서에 관계없이 다음 두 단계를 수행하는 것만큼 간단합니다.
- 루트 비밀번호를 제거하거나 잠급니다(권장 구성).
/etc/sudoers
잘못된 구성으로 편집되었습니다 .
나는 변경 작업을 수행할 때 항상 하나 이상의 루트 콘솔을 열어두고 새 연결을 닫기 전에 테스트합니다.
원격 액세스는 로그인을 허용하는 프로토콜을 통해 액세스를 차단하기 때문에 해독하기가 더 쉽습니다. (Shorewall에는 이를 방지하는 데 도움이 되는 "Absent-Minded Administrator" 옵션이 있습니다.) 마찬가지로 변경이 수행되는 동안 활성 루트 콘솔을 열어 두는 데 도움이 됩니다. 테스트 시간이 초과되고 구성이 복원되면 액세스 권한을 다시 얻어야 하므로 테스트 모드가 있는 도구도 유용합니다.
암호화 프로토콜이 네트워크(NIS, LDAP 등)에서 작동하는 경우 iptables를 사용하여 해당 프로토콜을 차단하여 모든 액세스를 잠글 수 있습니다. 캐시가 실행 중이라면 이 사실을 바로 알아차리지 못할 수도 있습니다. 루트 콘솔에서 로그아웃하기 전에 서비스가 여전히 작동하는지 주의 깊게 테스트하십시오. 로컬 계정 및/또는 비밀번호가 있으면 이러한 일이 발생하는 것을 방지하는 데 도움이 될 수 있습니다.
비밀번호 잠금 정책도 문제를 일으킬 수 있습니다. 한 개발자가 비밀번호 정책을 시행할 때 어떻게 자신을 잠그는지 설명하는 것을 들었습니다. 그의 첫 번째 정책은 1번의 실패와 24시간의 셧다운이었다. 그는 로그인한 다른 사람들에게 자신의 계정을 다시 활성화하도록 요청할 수 있습니다.
답변4
이런 일을 해본 사람은 나뿐인 것 같은데...
시스템이 있고 이에 액세스할 수 있는 유일한 방법이 SSH를 통하는 것이라면 쉽게 규칙 세트를 엉망으로 만들고 시스템에 대한 SSH 액세스를 방지하여 효과적으로 컴퓨터에서 자신을 잠글 수 있습니다.
예를 들어:
# Because it's secure
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# Because you want to create a new ruleset and you've been up for 25 hours and aren't thinking straight
iptables -F
이렇게 하면 들어오고 나가는 모든 트래픽이 삭제되고 상자 안팎으로 SSH 트래픽을 허용하는 규칙을 포함하여 현재 로드된 규칙이 새로 고쳐집니다. 번영! 당신은 잠겨 있습니다.