Server / / 2024. 7. 22. 13:44

Rocky 9 - Ubuntu 공유서버 구축하기

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 폴더에는 액세스가 거부됨을 확인할 수 있습니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유