sysctl.conf 및 sysctl.d와 관련된 커널 옵션 값 찾기

sysctl.conf 및 sysctl.d와 관련된 커널 옵션 값 찾기

내 Ubuntu 컴퓨터의 /etc/sysctl.conf파일에서는 기본적으로 다음과 같이 역방향 경로 필터링 옵션을 주석 처리했습니다.

#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

그러나 /etc/sysctl.d/10-network-security.conf(기본적으로) 주석 처리되지 않았습니다.

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

그렇다면 역방향 경로 필터링이 활성화되어 있습니까? 어떤 구성 위치가 우선적으로 적용됩니까? 이들 커널 옵션과 기타 커널 옵션의 현재 값을 어떻게 확인할 수 있나요?

답변1

sysctl 변수의 값을 확인하는 것은 다음과 같이 간단합니다.

sysctl <variable name>

그런데, sysctl 변수를 설정하는 것은 다음과 같습니다

sudo sysctl -w <variable name>=<value>

그러나 이러한 방식으로 변경한 내용은 다음에 재부팅할 때까지만 유지될 수 있습니다.

/etc/sysctl.conf구성 위치 나 /etc/sysctl.d/우선 순위 에 대한 /etc/sysctl.d/README파일 내용은 다음과 같습니다.

최종 사용자는 버전 60-*.conf 이상을 사용하거나 다음을 사용할 수 있습니다./etc/sysctl.conf 곧장,이 디렉토리의 모든 항목을 덮어씁니다..

어느 위치에서든 구성을 편집한 후 변경 사항을 적용할 수 있습니다.

sudo sysctl -p

답변2

/proc이러한 콘텐츠는 일반적으로 커널 인터페이스 및/또는 커널 인터페이스에 있습니다 /sys(먼저, 이 디렉터리의 어떤 것도 일반 디스크 파일이 아니며 모두 커널에 대한 직접적인 라인이라는 점을 기억하십시오).

예를 들면 다음과 같습니다.

»for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done
/proc/sys/net/ipv4/conf/all/rp_filter 0
/proc/sys/net/ipv4/conf/default/rp_filter 1
/proc/sys/net/ipv4/conf/em1/rp_filter 1
/proc/sys/net/ipv4/conf/lo/rp_filter 0
/proc/sys/net/ipv4/conf/wlan0/rp_filter 1

em1, wlan0 및 "default"에 대해 rp_filter가 설정된 것 같습니다. 파일 핸들에 쓰기만 하면 설정하거나 설정 해제할 수 있습니다.

»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0

앞서 언급했듯이 이는 커널과의 직접적인 통신이므로 즉시 적용됩니다. 이것들아니요구성 파일. 뭔가 잘못된 일을 하려고 한다면:

»echo whatever > rp_filter
bash: echo: write error: Invalid argument

물론, 이런 식으로 일을 망칠 수 없다는 말은 아닙니다. 아래 댓글을 꼭 읽어보세요.

답변3

완료될수락된 답변/etc/sysctl.conf의 설정이 의 설정보다 우선 하지만 /etc/sysctl.d/원래 질문에 표시된 예에서는 주석 처리된 두 개의 변수를 보여줍니다 /etc/sysctl.conf.

#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

그리고 동일한 변수는 주석 처리되지 않습니다 /etc/sysctl.d/10-network-security.conf.

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

댓글이 옳기 때문에 오해의 소지가 있을 수 있습니다.아니요설정이지만논평설정일 수도 있습니다.

이 경우 변수는 실제로 모두 1로 설정되지만 더 강력한 구성 파일에서는 주석 처리됩니다.

다음과 같은 경우 /etc/sysctl.conf:

net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

그러면 변수는 결국 0으로 설정됩니다.

관련 정보