안녕하세요, 여러분. 이번 시간에는 리눅스 6.6 버전의 새로운 기능과 업그레이드 내용에 대해 자세히 살펴보도록 하겠습니다.
1. 리눅스 6.6 버전 소개
- 리눅스 6.6 버전은 KSMBD 모듈이 추가되었습니다.
- KSMBD 모듈은 SMB3 프로토콜을 구현하는 서버 모듈로, 안정성, 보안성, 성능을 향상시킵니다.
KSMBD 모듈은 안정성과 보안성을 강조하여 고객들의 요구사항을 충족시킬 수 있는 기능을 제공합니다. 더욱이, 이 모듈은 사용자들에게 향상된 파일 및 프린터 공유, 그리고 네트워크 성능 개선 등 다양한 혜택을 제공합니다. 리눅스 6.6 버전은 이러한 업그레이드를 통해 사용자들에게 보다 원활하고 안정적인 서비스를 제공하기 위한 지속적인 노력의 결과입니다.
2. KSMBD 모듈의 장점
KSMBD 모듈은 다음과 같은 장점을 제공합니다.
1) 안정성 및 보안성
KSMBD 모듈은 Linux 커널에 직접 통합되어 있어 보다 안정적이고 안전한 환경을 제공합니다. 또한, KSMBD 모듈은 다양한 보안 기능을 지원하여 악성 코드 및 기타 보안 위협으로부터 시스템을 보호합니다.
2) 향상된 파일 및 프린터 공유
KSMBD 모듈은 파일 및 프린터 공유를 보다 쉽고 편리하게 사용할 수 있도록 개선된 기능을 제공합니다. 특히, KSMBD 모듈은 네트워크 트래픽을 최소화하여 파일 및 프린터 공유의 성능을 향상시킵니다.
3) 네트워크 성능 개선
KSMBD 모듈은 네트워크 성능을 개선하기 위한 다양한 기능을 제공합니다. 특히, KSMBD 모듈은 RDMA(Remote Direct Memory Access)를 지원하여 네트워크 대역폭을 보다 효율적으로 활용할 수 있습니다.
3. KSMBD – SMB3 커널 서버
KSMBD는 네트워크를 통해 파일을 공유하기 위해 커널 공간에 SMB3 프로토콜을 구현하는 Linux 커널 서버입니다. 삼성전자가 설계한 KSMBD는 SMB3 파일 공유 프로토콜의 서버를 리눅스 커널에 구현한 새로운 모듈입니다. 초기 버전에서 발견된 원격 코드 실행 가능한 보안 문제는 현재 해결된 상태이며, KSMBD의 도입으로 기존의 삼바(Samba)를 대체하여 SMB 서버를 사용할 수 있게 되었습니다.
1) KSMBD 아키텍처
성능 관련 작업의 하위 집합은 커널 공간에 속하고 다른 하위 집합은 실제로 사용자 공간의 성능과 관련이 없는 작업에 속합니다. 따라서 역사적으로 수많은 버퍼 오버플로 문제와 위험한 보안 버그를 초래했던 DCE/RPC 관리 및 사용자 계정 관리를 ksmbd.mountd로 사용자 공간에 구현합니다. 커널 공간(ksmbd)에서 성능(열기/읽기/쓰기/닫기 등)과 관련된 파일 작업입니다. 또한 모든 파일 작업에 대해 VFS 인터페이스와 더 쉽게 통합할 수 있습니다.
2) EEVDF 스케줄러
EEVDF(Earliest Eligible Virtual Deadline First) 스케줄러는 기존의 CFS(Completely Fair Scheduler)를 대체하며, 리눅스 프로세스 간 CPU 시간 할당을 관리하여 단일 프로세스가 프로세서 시간을 독점하는 것을 방지.
3) 인텔 섀도스택 지원
리눅스 6.6은 인텔의 섀도스택 기술을 지원하여, 애플리케이션이 직접 수정할 수 없는 보조 메모리 스택을 설정함으로써 반환지향 프로그래밍 공격을 방지. 이 메커니즘은 AMD와 인텔의 최신 칩에서 작동.
4) AMD 다이나믹 부스트 컨트롤 지원
새 커널은 AMD 라이젠 CPU의 다이나믹 부스트 컨트롤을 지원하여, 비디오 집약적 게임에서 더 나은 프레임 수 성능을 제공.
5) NSA SELinux 이름 변경
리눅스 보안 모듈인 SELinux에서 ‘NSA’라는 이름이 제거되어, 원래의 태생인 미국 국가안보국(NSA)과의 연관성을 덜어냄.
4. KSMBD 모듈 설치 및 사용 방법
KSMBD 모듈은 Linux 커널에 직접 통합되어 있으므로, 별도의 설치 과정이 필요하지 않습니다.
KSMBD 모듈을 사용하려면 다음과 같은 방법을 따르세요.
1) sudo smbd 명령을 사용하여 KSMBD 서버를 시작합니다
sudo smbd
2) sudo smb.conf 파일을 편집하여 KSMBD 서버의 설정을 변경합니다.
sudo vi /etc/samba/smb.conf
3) 파일 공유를 설정합니다.
sudo smbpasswd -a 사용자명
4) 파일 공유를 사용합니다.
\\서버명\공유명
5. 실행 방법
- ksmbd-tools( https://github.com/cifsd-team/ksmbd-tools/releases )를 다운로드하고 컴파일하세요.
- ksmbd.mountd/adduser/addshare/control 유틸리티 사용 방법을 알아보려면 README( https://github.com/cifsd-team/ksmbd-tools/blob/master/README.md )를 참조하세요.
$ ./autogen.sh $ ./configure --with-rundir=/run $ make && sudo make install
- ksmbd.mountd/adduser/addshare/control 유틸리티 사용 방법을 알아보려면 README( https://github.com/cifsd-team/ksmbd-tools/blob/master/README.md )를 참조하세요.
- /usr/local/etc/ksmbd/ksmbd.conf 파일을 생성하고 ksmbd.conf 파일에 SMB 공유를 추가합니다.
- ksmbd-utils의 ksmbd.conf.example을 참조하십시오. 공유 구성에 대한 자세한 내용은 ksmbd.conf 맨페이지를 참조하십시오.
$ 남자 ksmbd.conf
- ksmbd-utils의 ksmbd.conf.example을 참조하십시오. 공유 구성에 대한 자세한 내용은 ksmbd.conf 맨페이지를 참조하십시오.
- SMB 공유를 위한 사용자/비밀번호를 생성합니다.
- ksmbd.adduser 맨페이지를 참조하십시오.
$ man ksmbd.adduser $ sudo ksmbd.adduser -a <SMB 공유 액세스를 위해 사용자 이름 입력>
- ksmbd.adduser 맨페이지를 참조하십시오.
- 커널을 빌드한 후 ksmbd.ko 모듈을 삽입하세요. ksmbd가 커널에 내장되어 있으면 모듈을 로드할 필요가 없습니다.
- menuconfig에서 ksmbd 설정(예: $ make menuconfig)
[*] 네트워크 파일 시스템 ---> <M> SMB3 서버 지원(실험적) $ sudo modprobe ksmbd.ko
- ksmbd 사용자 공간 데몬 시작
$ sudo ksmbd.mountd
- SMB3 클라이언트(cifs.ko 또는 samba의 smbclient)를 사용하여 Windows 또는 Linux에서 공유에 액세스합니다.
6. KSMBD 종료
- 사용자 및 커널 공간 데몬 종료
# sudo ksmbd.control -s
7. 디버그 인쇄를 켜는 방법
각 레이어 /sys/class/ksmbd-control/debug
- 모든 구성 요소 인쇄 활성화
# sudo ksmbd.control -d "모두"
- 구성 요소(smb, auth, vfs, oplock, ipc, conn, rdma) 중 하나를 활성화합니다.
# sudo ksmbd.control -d "smb"
- 어떤 인쇄가 활성화되어 있는지 표시합니다.
# 고양이 /sys/class/ksmbd-control/debug [smb] 인증 vfs oplock ipc 연결 [rdma]
- 인쇄 비활성화:
- 선택한 구성 요소를 다시 한 번 시도하면 대괄호 없이 비활성화됩니다.
함께 읽기 좋은글
재테크 시작: 돈을 불리지 못하는 이유 – 투자를 위한 팁_1편