/data
새로운 Linux RHEL 7.7 서버에 5TB의 데이터를 설치했습니다 .
저는 selinux를 시행으로 사용하고 있으며 /data
삼바를 공유했는데 대부분 잘 작동합니다. 하지만 몇 개의 폴더에 깊이 들어가면 /data/
액세스가 거부됩니다. 해당 특정 하위 폴더에서 작업을 수행하면 chcon -t samba_share_t
Samba는 해당 하위 폴더로 이동합니다. 조금 더 깊이 들어가 보면 같은 문제입니다.
/data/
내 폴더 아래의 모든 항목을 올바르게 만들고 samba_share_t
Samba에서만 작동하도록 하려면 어떻게 해야 합니까 ?
selinux에 지쳤습니다.
답변1
삼바에서만 사용하는 경우 /data
컨텍스트 마운트 옵션을 사용하여 파일 컨텍스트를 samba_share_t
모든 파일 에 설정할 수 있습니다 /data
. context="system_u:object_r:samba_share_t:s0"
fstab에서. 상황별 옵션은 탑재 시 기존 파일 레이블을 덮어쓰지만 디스크 내용은 수정하지 않습니다. 컨텍스트 마운트 시 파일 레이블을 변경할 수 없으며 모든 파일은 동일한 레이블을 갖습니다.
설치 옵션이 옵션이 아닌 경우 파일 컨텍스트를 구성하는 일반적인 방법은 semanage fcontext
.를 사용하여 semanage fcontext -a -t samba_share_t '/data(/.*)?'
데이터베이스에 컨텍스트를 추가하고 를 사용하여 새 파일 컨텍스트를 (재귀적으로) 적용하는 것 입니다 restorecon -r /data
.
(Samba 외에) 데이터에 액세스하는 다른 사용자/서버가 있는 경우 몇 가지 옵션이 있습니다.
활성화
samba_export_all_ro
하거나samba_export_all_rw
부울 값매우 광범위한 읽기 전용 또는 읽기-쓰기 액세스가 가능합니다(Samba가 파일을 먼저 읽을 수 있다고 가정하면 SELinux 규칙은 표준 권한 확인 후에 적용됩니다). 두 부울 값 중 하나를 활성화하면 보안 정책이 더 허용적으로 적용됩니다.위에서 설명한 대로 마운트 옵션을 사용하고 다른 프로세스가
samba_share_t
.다른실행 중인 프로세스허용 모드(프로세스/서비스를 다시 시작해야 함) 로그 항목을 생성합니다. 그런 다음 사용audit2allow
필요한 정책을 개발합니다. 정책을 삽입하고 다른 정책을 다시 설정하세요.구현하다모델. AVC 오류가 더 많이 발생하면 이 프로세스를 반복하여 사용자 지정 정책을 연결할 수 있습니다.이는 다른 방법으로도 적용될 수 있습니다(삼바가 다른 컨텍스트를 가진 파일에 액세스하도록 허용하지만
/data
잘못된 컨텍스트를 가진 파일의 동일한 문제에 직면할 수 있음).새 파일 컨텍스트와 추가 도메인에 필요한 액세스 권한을 정의하는 사용자 정의 정책을 작성합니다.
답변2
그래서 이것이 제가 한 일입니다. 제 생각에 제 주된 문제는 구문을 잘못 입력하는 것이었고 그것이 제가 문제를 겪게 된 이유였습니다.
- LSI RAID 카드를 통해 서버에 8개의 디스크 raid-5 볼륨이 있습니다.XFS지난 10년 정도 동안 SLES 11.4에 따라 설치되었습니다.
- 운영 체제 디스크를 교체하고이제 RHEL 7.8을 실행하고 selinux를 강제 실행합니다..
- RHEL 7에서 XFS 파일 시스템을 마운트했습니다.
/data
특히 다음 구문이 필요합니다.의미론
-
semanage fcontext -a -t samba_share_t "/data(/.*)?"
restorecon -vR /data
# to samba share out home directories, if in your smb.conf
setsebool -P samba_enable_home_dirs on
이제 사람들은 할 수 있다chcon -t samba_share_t /data/folder1/folder2/folder3
그러나 10년치의 데이터와 수백만 개의 파일/폴더가 있으면 이는 곧 해결책이 되지 않습니다. 빠른 진단입니다selinux=강제특정 하위 폴더에 대한 액세스가 거부되었습니다.chcon -t 삼바_공유_t그러면 해당 하위 폴더에 대한 액세스가 즉시 허용됩니다. 솔루션을 사용할 때 올바른 구문인 것 같습니다.의미론적 맥락그리고 "
그 이후con-vR 복원
5TB 데이터의 경우 semanage
완료하는데 약 30초, 약 2분 정도 소요됩니다.restorecon
궁금하다면:
/etc/fstab` is this in RHEL 7.8
/dev/disk/by-uuid/e16528d8-ec26-4441-828a-d399b46e4a21 /data auto nosuid,nodev,nofail 0 0
# ------------------------------------------------------------------------
/etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = bsd
printcap name = /dev/null
load printers = no
disable spoolss = yes
# cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[data]
comment = data
inherit acls = Yes
read only = No
path = /data
directory mask = 770
create mask = 660
# ------------------------------------------------------------------------
/etc/selinux/config
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUX=enforcing
SELINUXTYPE=targeted