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

황제연·2025년 6월 6일
0

CS학습

목록 보기
97/193
post-thumbnail

IPC 지원 관련

IPC 관련 설정은 웹, WAS, 데이터베이스 서버 등을 운영하는 경우에
각각의 서버가 요구하는 사항에 따라 설정해야합니다

IPC관련 매개 변수는 /proc/sys/kernel 디렉토리에 들어있습니다

공유메모리 관련 변수

공유 메모리 관리와 관련해서 Page와 Segment에 대해 이해하고 있어야 합니다
Page는 주소 공간을 일정한 크기로 나눈 블록입니다
Segment에 고정된 단위가 아니고 논리적으로 관련있는 정보의 단위로
프로그램에서 분할해서 사용합니다

만약 특정 프로그램에서 세그먼트를 10MB로 할당해서 사용하면
1개의 세그먼트 단위는 10MB가 됩니다

세마포어 관련 변수

시스템 내에 서버와 클라이언트가 존재할 경우 양단간의 통신버퍼로 공유 메모리를 사용합니다
이때 메모리에 대한 동시성을 제어해야합니다

이 경우에 메모리에 대한 읽기 및 쓰기에 대한 접근권한의 제어를 위해
세마포어 오퍼레이션이 발생합니다

세마포어 오퍼레이션에 따라 프로세스는 대기 상태가 되거나 진행상태가 되는데,
이러한 세마포어 오퍼레이션은 동시다발적으로 발생하기 때문에
세모파어의 개수 및 오퍼레이션에 대한 적절한 커널 매개변수 값 설정이 중요합니다

스와핑 관련 변수

운영체제에서 성능적인 향상을 위해 사용되는 기술로 스와핑과 파일캐시를 꼽을 수 있습니다
리눅스는 이 두 기술과 관련된 커널 매개변수를 /proc/sys/vm디렉토리에 저장하고 있습니다

먼저 스와핑은 주기억장치보다 더 큰 응용 프로그램이나 데이터 파일을 처리하기 위해
디스크의 일부를 메모리처럼 사용하는 기술입니다

리눅스는 swappiness라는 커널 매개변수를 제공하는데, 이 값의 수치를 조절해서
스와핑 발생 여부를 제어할 수 있습니다

캐시 관련 변수

캐시는 주기억장치와 보조기억장치간의 속도 차이로 인한 병목 현상을 해소하기 위해
운영체제에서 관리하는 일종의 시스템 버퍼입니다
리눅스 커널은 메모리 공간에 여유가 있을 때 cache를 할당해서 처리 속도를 높입니다

cache로 할당되는 항목에는 page cache, inode cache, dentry cache가 있습니다
page cache는 시스템에서 처리되는 페이지가 저장되고,
inode cache는 파일이나 디렉토리 정보를 담고 있는 inode table 관련 정보가 저장됩니다

마지막으로 dentry는 directory-entry의 약자로 디렉토리 내의 요소들인
파일, 하위 디렉토리의 이름을 말합니다
각각의 파일 및 하위 디렉토리에 대한 정보는 inode 영역에 저장되기 떄문에
해당 inode를 알아낼 수 있는 inode 번호와 함께 저장됩니다

이러한 정보는 파일 시스템 영역의 디스크 블록에 저장되어 있지만
성능향상을 위해 메모리에 저장하는데, 이 영역을 dcache(dentry cache)라고 합니다

네트워크 관련

네트워크 관련 커널 매개변수는 /proc/sys/net디렉토리에 위치합니다
주요 디렉토리는 core, ipv4, ipv6, netfilter등이 있습니다

sysctl

sysctl 명령은 커널 매개변수(Kernel Parameter)의 값을 제어해서 시스템을 최적화할 수 있는
명령입니다
/proc/sys디렉토리에 존재하는 매개 변수를 제어하는 명령입니다
sysctl에서 매개변수를 호출하는 형식은 /proc/sys를 최상위 디렉토리인 root로 인식하고,
하위 디렉토리 구분은 .으로 대체해서 명령을 수행합니다

sysctl 명령으로 커널 매개변수값을 확인하거나 변경 가능하지만 재부팅하면 초기화됩니다
해당 설정을 재부팅시에도 계속적으로 반영되게 하려면 /etc/sysctl.conf 파일에 등록해야 합니다

SSH (Secure Shell)

SSH는 원격시스템에서 로그인해서 명령을 실행하는 프로그램으로
기본적인 사용법은 telnet과 유사합니다
telnet은 클라이언트와 서버간의 데이터 전송시에 평문으로 패킷을 전달해서
패킷의 내용을 유출당할 수 있지만,
ssh는 패킷 전송 시 암호화시키므로 안전하게 전송할 수 있습니다

ssh는 ssh2, ssh1 두가지 버전이 있습니다
ssh2는 이중-암호화 RSA 키 교환을 비롯해서 다양한 키-교환 방법을 지원합니다

ssh특징

  • 패킷을 암호화해서 다른 원격 로그인 프로그램인 telnet, rlogin에 비해 안전합니다
  • rlogin처럼 패스워드 입력 없이 로그인이 가능합니다
  • rsh처럼 원격 셸을 지원합니다
  • 원격 복사(scp)를 지원합니다
  • 안전한 파일 전송(sftp)를 지원합니다

인증키를 이용한 SSH 서버 전송

SSH서버를 접속할 때 패스워드를 입력해서 접속하지만 인증키를 이용해서 접속할 수도 있습니다
SSH 클라이언트에서 ssh-keygen 명령을 이용해서 비밀키와 공개키를 생성하고,
SSH 서버에 공개키를 복사하면 됩니다

사용법

ssh-keygen [option]

참고

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

0개의 댓글