[CS/운영체제] 시스템 보안 관리 - 1부

황제연·2025년 6월 3일
0

CS학습

목록 보기
94/193
post-thumbnail

리눅스와 보안 개요

리눅스는 커널부터 응용 프로그램까지 대부분의 프로그램이 소스가 공개되어있습니다
그렇기 때문에 악의적인 목적을 가진 해커들의 공격 대상이 될 가능성이 높습니다
따라서 리눅스는 관리자가 보안에 대한 설정을 할 수 있는 만큼 최대한 강화해야 합니다

물리적 보안 설정

보안에 있어 가장 큰 선 조건은 물리적 보안입니다
소프트웨어적으로 보안을 철저히 했더라도 물리적으로 누구나 쉽게 접근이 가능하다면
소용이 없습니다

따라서 시스템들은 관리자만 접근할 수 있는 공간에 배치하는 것이 좋습니다

불필요한 서비스 제거

보통 리눅스를 설치할 때 사용자가 직접 선택해서 설치하기보다는
기본메뉴를 선택해서 설치합니다

이때 불필요한 서비스가 설치되는 경우가 있습니다
특히 응용 프로그램의 버그를 통한 해킹 시도가 빈번하므로 불필요한 서비스들을 제거해서
위험요소를 최대한 줄일 필요가 있습니다

시스템 정보 감추기

로컬이나 외부에서 접속할 때 /etc/issue/etc/issue.net에 설정된 메세지를 로그인 전에 제공합니다
이 메세지 파일에는 리눅스의 버전과 커널 버전이 명시되어 있고
파일의 내용 변경을 통해 시스템 정보 노출을 최소화합니다

root 패스워드 변경 제한

root의 패스워드를 잊어버렸을 경우에는 grub을 이용해서 응급 복구 모드로 접근한뒤
root의 패스워드를 변경함으로서 복원이 가능합니다

즉 로컬 시스템에 접근이 가능한 사용자라면 시스템 재부팅 과정을 거쳐 쉽게 root 패스워드의
변경이 가능합니다

grub 패스워드를 설정함으로서 임의로 root 패스워드를 변경하는 것을 막을 수 있습니다

사용자 관리

일반 계정 권한 획득 후에 root권한 획득은 손쉽게 이루어지기 때문에 철저한 관리가 필요합니다
일반 계정 사용자면서 UID가 0인 사용자를 찾아야 하며,
이 사용자는 ID만 일반 계정이지 시스템 내부적으로는 root로 관리되므로 유의해야합니다

해커가 특정 프로그램의 취약점을 이용한 공격인 익스플로잇(exploit)을 통해
root 권한을 획득한 후에 삭제할 수 없는 계정의 아이디와 암호를 알아내려는 시도를 합니다
좋은 보안도구를 통해 손쉬운 암호를 설정한 사용자를 찾아 변경해야 합니다

또한 /etc/shadow의 패스워드 영역인 두번째 필드가 공백인 사용자는 해커가 의도적으로 만든
계정일 수도 있기 때문에 주의할 필요가 있습니다

마지막으로 su와 같은 명령 제한을 위해 PAM(Pluggable Authentication Modules)를 이용하거나,
일부 명령 할당을 위한 sudo(Superuser do) 등의 보안 프로그램을 이용하는 것이 좋습니다

보안이 강화된 서비스로 대체 이용

외부에서 서버로 원격 접속하는 경우에는 보안이 강화된 서비스를 이용해야 합니다
예를들면 텔넷 보다는 SSH를 이용해야합니다

텔넷은 패킷을 평문 전송하기 때문에 tcpdump, ethereal, wireshark 등과 같은 패킷 캡쳐링 도구를
사용하면 주고받는 메세지가 유출될 수 있기 때문에 암호화된 메세지 전송을 하는
ssh로 대체해야 합니다

파일 시스템 관리

리눅스 파일 시스템에서는 Set-UID, Set-GID, Sticky-Bit와 같은 특수 권한이 사용되고 있습니다
시스템 운영에 필요하지만, 악의적인 목적으로 사용될 수 있기 떄문에 검색을 통해
필요없는 경우에는 제거해야합니다

파티션이 분할된 영역인 경우에는 /etc/fstab파일에 Set-UID, Set-GID를 설정을 제한하는
nosuid 옵션을 지정함으로서 막을 수 있습니다

참고

  • CentOS 7로 이해하는 리눅스 관리 및 시스템 보안 - 도서
profile
Software Developer

0개의 댓글