Linux

[Linux] 시스템 보안 관리 - sysctl

thdwldud 2025. 10. 27. 12:28

sysctl

1. 개요

  • 커널 매개변수(Kernel Parameter)의 값을 제어하여 시스템을 최적화할 수 있는 명령
  • /proc/sys 디렉터리에 존재하는 매개변수를 제어하는 명령
  • /proc/sys를 최상위 디렉터리(root)로 인식하고, 하위 디렉터리의 구분은 ‘.’으로 대체하여 명령을 수행
  • sysctl 명령으로 커널 매개변수 값을 확인하거나 변경할 수 있지만, 재부팅하면 초기화됨
  • 해당 설정을 재부팅시에도 계속해서 반영되게 하려면 /etc/sysctl.conf 파일에 등록
# sysctl 명령에서 커널 매개변수 호출 예
/proc/sys/net/ipv4/icmp_echo_ignore_all -> net.ipv4.icmp_echo_ignore_all

 

2. 관련 명령어 : sysctl

sysctl [option] 변수
sysctl [option] 변수=값

옵션

옵션 설명
-a, -A
--all
커널 매개변수와 값을 모두 출력
-p [파일명]
--load=파일명
환경 변수 파일에 설정된 값을 읽어 들여서 반영하고 출력 파일명이 지정하지 않으면 /etc/sysctl.conf 파일이 적용됨
-n
--values
특정 매개변수에 대한 값을 출력할때 사용
-w 변수=값
--write
매개 변수에 값을 설정

사용 예

  • 적용된 커널 매개변수와 값을 전부 출력
sysctl -a
  • /etc/sysctl.conf 파일의 내용을 읽어 들여서 반영하고 관련 내용을 출력
sysctl -p
  • /proc/sys/net/ipv4/icmp_echo_ignore_all의 값을 출력
sysctl -n net.ipv4.icmp_echo_ignore_all
  • /proc/sys/net/ipv4/icmp_echo_ignore_all의 값을 0으로 설정
sysctl -w net.ipv4.icmp_echo_ignore_all=0
  • /etc/sysctl.conf를 비롯하여 커널 매개변수 연관된 환경 설정 파일을 읽어들여서 적용
sysctl --system

 

3. /etc/sysctl.conf

  • sysctl 명령어에 의하여 읽어 들여지는 설정 파일로 이 파일에 등록되면 재부팅시에도 계속해서 반영됨
  • # 및 ; 기호로 시작하는 줄은 주석 처리되고, 기본 형식은 ‘매개변수=값’
  • 등록 후에 즉시 반영되게 하려면 ‘sysctl -p’명령을 실행하면 됨
# vi 편집기를 이용해서 설정하려면 커널 매개 변수를 등록하고 'sysctl -p'명령을 실행해서 즉시 적용시킴
[root@www ~]# vi /etc/sysctl.conf
[root@www ~]# tail -1 /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
[root@www ~]# sysctl -p
net.ipv4.icmp_echo_ignore_all=1
💡 Rocky Linux8과 커널 매개변수 환경 설정 파일

RHEL6 이전 버전에서는 커널 매개변수 환경 설정 파일로 /etc/sysctl.conf만 사용함

RHEL7 버전부터는 /etc/sysctl.conf 이외에도 /usr/lib/sysctl.d/, /run/sysctl.d/, /etc/sysctl.d/, /usr/local/lib/sysctl.d/, /lib/sysctl.d/ 디렉터리 안의 conf 파일들도 사용

따라서 /etc/sysctl.conf 파일은 주로 사용자가 설정하는 커널 매개변수를 등록해서 사용하고 있음