본문 바로가기
지식 공유/리눅스

리눅스 서버 보안 사항

by missio 2019. 7. 17.

안녕하세요 미씨오입니다.

리눅스 서버에 대한 보안 유의사항에 대해 배운내용 공유해드립니다!

 

1. 반드시 필요한 프로그램만 설치하고 사용자의 접근을 최대한 막는다.

2. 서버 관련 소프트웨어를 주기적으로 업데이트한다.

-> 프로그램을 compile 해서 설치할 수도 있지만 중요한 회사만의 특정 설정인 경우를 제외하고는 일반적으로 자연스럽게 업데이트가 가능한 일반설치를 수행하는 것이 좋다.

3. 사용자에 대한 정확한 정보(근무여부, 부서, 하는 일,..)를 늘 최신으로 유지한다.

 

4. 시스템 보안의 목표(정보의 기밀성, 무결성, 가용성, 기록성, 부인봉쇄)

보안은 예측 가능한 위험을 줄이는 것이다. 해킹은 손실의 우려가 있는 정보와 정보 자산을 위협하는 인적, 기술적, 물리적 위험과 그 위험에 대한 보안적 문제의 소지가 있는 취약점(vulnerablility)이 겹치는 곳에서 발생된다.

조직에서의 보안 설정은 영국의 BSI 지침을 따라서 설정한다. 대응 절차를 제외하고 기본 방향과 대응 기준만 정해져 있는데 이를 정보보호 정책이라고 한다.

 

보안을 잘 준한다는 것은 그 만큼 개인의 컴퓨터 사용에 있어서의 편리함을 포기한다는 뜻이다.

서버 실을 자물쇠를 채워서 출입을 제한하고, 이동매체(USB, DVD, Web)등을 통한 데이터 유출을 억제시킨다.

 

사용자의 작업 디렉터리에는 반드시 Disk Quotas(디스크 공간제한) 걸어둔다. 번경해서는 되는 시스템 파일 등은 백업 해두고, 읽기만 가능하게 해둔다시스템에 설치하는 소프트웨어는 최소한으로 해둔다. 부트로더(Lilo/Grub) 패스워드를 걸어서 시스템 설정을 변경하지 못하게 한다. 시스템 서비스와 서버 서비스를 최소한으로 해준다.

 

시스템의 BIOS(basic input/output system) 들어가서 설정을 바꾸지 못하게 패스워드를 걸어둔다. -> CMOS(컴퓨터가 꺼질 데이터설정을 유지하기 위한 배터리)

 

root로 로그인을 금지시키고 대신 su, sudo 명령어를 사용하게 한다. 시스템 모니터링, 로그파일 분석, 패킷 분석 등을 할 수 있어야 한다.  침입탐지 시스템(IDS), 침입예방 시스템(IPS), Firewall, SELinux 등을 사용해서 최대한 시스템을 보호할 있어야 한다.

 

C, C++ 작성된 프로그램(shell scripts 포함) 메모리에 자유롭게(WindowsUNIX/Linux OSC 작성되어져 있기 때문에) 들어가므로 위험하다.

-> 컴파일되어서 실행되는 프로그램으로 돌변되기 때문에 gcc, g++의 사용을 막을 필요가 있다. buffer overflow 해킹이 가능하다.

 

buffer overflow : 머신에서 어느 프로그램이 실행되려면 메모리상에 실행할 있는 주소 공간을 가지게 되는데 메모리 수용 능력 이상의 데이터가 들어가면 남는 만큼의 데이터가 밖으로 흘러나오게 되어서 내부의 정보를 보이게 된다. 만일 수용할 있는 용량보다 너무 많은 데이터가 들어가면 메모리주소 충돌이 일어나서 blue screen(memory address conflict) 뜨게 된다, 일부 64비트 OS에서도 일어나지만 32비트 OS에서는 비교적 먹힌다,

약간의 reverse engineering 개념, assembly 지식이 있어야 한다,