SAMBA / NFS / WEB Hard SERVER 구축
NFS서버
네트워크로 연결된 컴퓨터들간의 파일 공유
NFS는 보안상 매우 위험하므로 내부망에서만 써야 하고
최근에는 내부에서도 잘 쓰지 않는 추세
1) NFS 관련 패키지 설치
dnf install -y nfs-utils
2) 공유 디렉터리 지정 및 권한 설정
mkdir /rocky_dir
# 공유할 폴더 만들기
cd /rocky_dir
mkdir mkdir2 mkdir3
touct 1.txt 2.txt 3.txt
# 공유할 폴더 내에 아무 파일이나 만들기
chmod 707 /rocky_dir/
# 다른유저가 접근할 수 있도록 권한 부여
gedit /etc/exports
/etc/exports)
# 공유디렉터리 클라이언트 주소(옵션)
/rocky_dir 192.168.5.36(rw)
/rocky_dir 192.168.5.37(ro)
systemctl restart nfs-server
systemctl enable nfs-server
# nfs 서비스 시작하기
exportfs -a
# /etc/exports 파일 다시 읽기
exportfs -v
# 공유하기로 설정한 IP들 확인
3) 클라이언트에서 공유접속
showmount -e 확인할IP
# 해당 IP가 어느 IP에게 공유를 허용했는지 확인
mkdir 마운트포인트 생성
mount -t nfs 서버주소:공유폴더명 마운트포인트
df -h 마운트 확인
cd 마운트포인트
showmount 로 확인할 결과 상대(192.168.5.37)가 나(192.168.53.35)를
공유 허용 리스트에 추가한 것을 확인할 수 있습니다.
상대가 읽기만 허용하고 쓰기는 허용하지 않은 경우
상대가 쓰기도 허용해준 경우
윈도우에서 NFS 접속하기
재부팅
CMD)
mount 서버아이피:공유디렉토리 *
마운트는 완료되었다고 메시지가 표시되나
실제로는 연결되지 않았습니다.
NFS는 윈도우 - 리눅스 같은 다른 시스템간 연결이 잘 되지 않을 수 있습니다.
SAMBA
SAMBA 서버 구축하기
- 윈도우 운영체제와 리눅스 간의 자원을 공유한다.
1) 윈도우(서버) -- 리눅스(클라이언트)
공유할 폴더 오른쪽 클릭 -> 속성 -> 공유 탭 -> 공유(S)...
추가 옆에 화살표 눌러 everyone 추가 ->
everyone의 권한을 설정
고급 공유(D)... -> 권한(P)
Everyone에 모든 권한이 허용되어 있는지 확인
접속할 계정 생성해주기
CMD)
net user root 1234 /add
net user
리눅스에서 samba 서비스 설치
dnf install -y samba samba-client samba-common cifs-utils
공유된 폴더 확인하기
smbclient -L 서버주소
공유폴더 마운트하기
mkdir /win_dir
mount -t cifs //접속할주소/폴더명 /마운트포인트
# 접근 거부 에러가 뜰 경우
mount -t cifs //접속할주소/폴더명 /마운트포인트 -o user='계정명'
공유폴더를 사용할 수 있는 것을 확인할 수 있습니다.
2) 리눅스(서버) -- 윈도우(클라이언트)
삼바 패키지 설치
dnf install -y samba samba-client samba-common cifs-utils
데몬 재실행
systemctl start smb
systemctl enable smb
공유폴더 생성 및 권한 설정
mkdir /share_dir
chmod 777 /share_dir/
삼바 계정 생성
# /etc/passwd 파일에 등록된 계정을 사용해야 합니다.
# 단, 로그인 계정과는 별도로 동작합니다.
useradd admin
passwd admin
smbpasswd -a admin
# 삼바 암호 생성
smbpasswd -x admin
# 삼바 암호 삭제
smbpasswd -o admin
# 삼바 계정 잠금
smbpasswd -E admin
# 삼바 계정 잠금해제
gedit /etc/samba/smb.conf
# smb 환경설정
[share_dir]
comment = Directory Drivers
path = /share_dir
browsable = yes
create mask = 0777
directory mask = 0777
writable = yes
printable = no
guest ok = yes
공유목록 확인 및 구문
testparm
가장 밑에 공유해준 폴더가 보입니다.
윈도우에서 리눅스 삼바 공유폴더 들어가기
네트워크 오른쪽 클릭 -> 네트워크 드라이브 연결(N)...
마운트할 드라이브와 공유폴더를 입력해줍니다.
이제 공유폴더에 접속이 가능한 것을 확인할 수 있습니다.
실습
SAMBA로 그룹별 허용 공유폴더 지정하기
public_data, sales, manage, develop
네개의 공유 폴더를 만들고
public_data는 모두가 접근 가능하고
sales, manage, develop는 각 부서의 직원들만 접근 가능하도록 만들기
# 공유에 사용할 폴더 만들기
mkdir /samba
cd /samba
mkdir data
mkdir sales
mkdir manage
mkdir develop
# 그룹 생성
groupadd sales
groupadd develop
groupadd manage
# 리눅스 계정 생성
useradd -s /sbin/nologin -g sales s1
useradd -s /sbin/nologin -g sales s2
useradd -s /sbin/nologin -g manage m1
useradd -s /sbin/nologin -g manage m2
useradd -s /sbin/nologin -g develop d1
useradd -s /sbin/nologin -g develop d2
# smb 아이디 및 패스워드 생성
smbpasswd -a s1
smbpasswd -a s2
smbpasswd -a m1
smbpasswd -a m2
smbpasswd -a d1
smbpasswd -a d2
# SAMBA 설정하기
gedit /etc/samba/smb.conf
[public_data]
comment = Directory Drivers
path = /samba/data
public = no
browsable = yes
create mask = 0777
directory mask = 0777
writable = yes
printable = no
[sales]
comment = Directory Drivers
path = /samba/sales
public = no
browsable = yes
create mask = 0777
directory mask = 0777
writable = yes
printable = no
valid users = @sales
write list = @sales
[manage]
comment = Directory Drivers
path = /samba/manage
public = no
browsable = yes
create mask = 0777
directory mask = 0777
writable = yes
printable = no
valid users = @manage
write list = @manage
[develop]
comment = Directory Drivers
path = /samba/develop
public = no
browsable = yes
create mask = 0777
directory mask = 0777
writable = yes
printable = no
valid users = @develop
write list = @develop
이제 윈도우에도 부서 직원별 계정을 만들어 줍니다.
d1계정에서 확인한 결과 public_data 폴더와 develop폴더는 접근 가능하지만
sales나 manage 폴더에는 액세스가 거부됨을 확인할 수 있습니다.