삼바(Samba), Rocky linux 서버와 Window 클라이언트로 실습

Hiyalobi·2024년 4월 15일
0

linux_master

목록 보기
10/14
post-thumbnail

Samba는 SMB(Server Message Block)을 이용해 리눅스 및 유닉스 계열 운영체제와 윈도우 운영체제간의 공유를 위해 구축합니다.
현재 SMB 프로토콜은 CIFS로 확장되었습니다.

Rocky Linux 8로 리눅스 마스터 1급 정복하기를 참고하여 실습 진행하였습니다.

Linux의 Samba 서버 설치 전 환경 설정

sudo dnf install samba* -y

우선 samba와 관련된 모든 패키지를 설치합니다.

systemctl stop firewalld
setenforce 0

이후, Window와의 공유를 위해 방화벽을 Off 해줍니다.
또한 SELinux 역시 Off 해줍니다.

만일 setenforce 0를 하였는데도 disabled가 뜨지 않는다면, /etc/selinux/config 파일에서 SELINUX=disabled로 작성하고 저장해줍니다.

sudo useradd posein
sudo passwd posein 

이후 Samba 서버를 이용할 계정을 생성합니다.

Window의 Samba 서버 설치 전 환경 설정

윈도우에서 가장 중요한 것은 개인 방화벽을 꺼두는 것과 삼바 사용을 위한 SMB를 활성화하는 것입니다.

우선 교재에서는 방화벽을 먼저 끄는 방법부터 시작하지만, SMB를 활성화하고 재부팅 시, 방화벽이 다시 켜져 이후 진행이 막히는 경우가 발생하였습니다.

따라서 우선 SMB부터 활성화를 진행합니다.

제어판에 '프로그램 및 기능'을 검색 및 들어가면, Windows 기능 켜기/끄기가 있습니다.
이 화면에서 SMB1.0항목의 체크박스를 활성화 후, 확인을 누르고 재부팅을 해줍니다.

이후, Window 찾기에서 '방화벽 및 네트워크 보호'를 치고 들어가면, 개인 네트워크에 대한 방화벽이 켜져 있는 모습을 확인할 수 있습니다.
해당 부분을 윗 이미지와 같이 꺼주면 방화벽이 비활성화 됩니다.

윈도우에서의 환경 설정의 마지막으로 로컬 사용자를 추가해 줍니다.
마이크로 소프트 계정이 아닌 반드시 로컬 사용자로 추가를 해주어야 합니다.

설정에서 '계정'으로 들어가면 '가족 및 다른 사용자'라는 부분이 있습니다.
해당 부분에서
다른 사용자 추가를 클릭해 줍니다

다음과 같은 창이 나타나는데, 이때 '메일 또는 전화' 입력 부분에 작성시 로컬 사용자 추가가 아닌 마이크로소프트 계정으로 등록됩니다.
따라서 아래 '이 사람의 로그인 정보를 가지고 있지 않습니다.'를 클릭해 줍니다.

약관 동의 이후 위의 화면이 나타나면 'Microsoft 계정없이 사용자 추가'를 클릭해 줍니다.

정상적으로 계정이 생성되었다면 위와 같이 로컬 계정이 생성된 모습을 확인할 수 있습니다.

Linux Samba 서버 설정

우선 서버에서 공유 디렉토리로 사용할 디렉토리를 생성하고, 해당 디렉토리의 권한을 1777로 모든 사용자들이 읽기와 쓰기, 실행이 가능하도록 설정해 줍니다.

sudo mkdir /sdata
chmod 1777 /sdata

ls –ld /sdata

smb.conf파일의 하단에 삼바를 사용할 섹션을 추가해 줍니다.

sudo vi /etc/samba/smb.conf

아래 내용을 smb.conf에 작성해 줍니다.

[sdata] 섹션의 경로(공유 디렉토리)는 /sdata이고, 다른 사용자가 사용할 수 있으며, 접근 및 쓰기가 가능합니다.

[sdata]
	comment=Samaba Shared Directory
    path=/sdata
    public=Yes
    writable=Yes

이후 작성한 파일에 오류가 있는지에 대해 검사해 줍니다.

testparm

출력되는 화면이 다음과 같다면, 오류가 없습니다.

검사 시 오류가 없다면, 삼바의 사용자를 추가해 줍니다.

sudo smbpasswd –a posein

사용자 추가까지 완료가 되었다면 samba와 관련된 데몬을 시작시킵니다.

systemctl start smb nmb

systemctl –l status smb
systemctl –l status nmb

systemctl enable smb.service nmb.service

Samba 클라이언트 설정

Samba를 사용하기 위해서 우선 네트워크 자격 증명을 얻어야 합니다.
그 방법은 2가지가 있습니다.

첫 번째, 윈도우 시작키 + R을 클릭하고 나오는 실행창에 '\Samba-Server-Ip-Address'를 작성합니다.

이후, 네트워크 자격 증명 입력이라는 화면이 출력이 되면 계정을 작성해 연결을 진행합니다.

두 번째, 자격 증명 관리자에 자격 증명을 추가한 이후 IP를 등록하는 것입니다.

윈도우의 찾기에서 '자격 증명 관리자'를 검색, 이후 나오는 창에서 'Windows 자격 증명'을 클릭해 줍니다.
그러면, 자격 증명을 등록하기 이전이라면 Window 자격 증명 아래에 아무런 정보가 뜨지 않습니다.
추가를 위해 옆의 'Windows 자격 증명 추가'를 클릭, 추가를 해주면 아래와 같이 자격 증명이 추가가 된 모습을 확인할 수 있습니다.

이후 네트워크 디렉토리를 클릭, '네트워크 드라이브 연결'을 누르면 아래 화면이 나타납니다.

폴더 부분에 '\Samba-Server-Ip-Address\sdata'를 작성하면 됩니다.
이때, '\sdata'는 smb.conf에 작성한 섹션명입니다.

정상적으로 연결이 되었을 때 아래 화면이 나타납니다.

Samba 테스트

Samba가 정상적으로 작동하는 지 테스트를 위해 37.txt라는 파일을 이용했습니다.
해당 파일을 sdata 폴더에 복사를 해줍니다.

이후 정상적으로 작동한다면, linux 서버의 /sdata로 이동 시 해당 파일이 디렉토리 내 존재합니다.

트러블 슈팅

발생한 오류는 크게 2가지 입니다.

smbpasswd에 sudo를 안붙이면 나타나는 화면
리눅스 IP에 대한 윈도우 네트워크 연결 거부

smbpasswd에 sudo를 안붙이면 나타나는 화면

처음 해당 화면을 보고 잠시 당황했었습니다.
갑자기 너무 많은 정보가 화면에 출력이 되더라구요...
당황하지 않고 위로 올라가 보면 간단합니다.

'when run by root' 부분에 root 만 user 이름을 붙여 해당 user에 대한 password를 정해줄 수 있다는 것을 확인할 수 있습니다.
만약 root가 아닌 기타 사용자로 사용 시, sambpasswd를 사용할 때는 sudo를 꼭 붙여 사용해야합니다.

리눅스 IP에 대한 윈도우 네트워크 연결 거부

가장 당황하고 해결에 어려웠던 부분 중 하나입니다.
제가 교재에 있던 루틴이 아닌 SMB를 먼저 설정하라는 이유이기도 합니다.

윈도우 방화벽도, 리눅스 방화벽도 SELinux도 다 꺼놓고 ping으로 연결 시 연결도 잘 되었던 상태에서 저런 화면이 떴습니다.
정확히 말하자면 윈도우 방화벽은 꺼놓은 줄 알았었죠...

윈도우를 재부팅 시 방화벽을 다시금 확인해 주어야 합니다.
자동적으로 방화벽을 ON으로 설정해 두기 때문에 만일, 다음과 같은 엑세스 문제가 발생 시 리눅스에 제대로 SELinux가 꺼지고, 방화벽이 꺼졌는지, 그리고 윈도우 방화벽이 꺼졌는지에 대해 확인하고 실습 진행해야합니다.

참고 사이트

[참고사이트]SELinux 비활성화
[참고사이트]-삼바(SAMBA) 설치 & 설정 방법

profile
유영하다

0개의 댓글

관련 채용 정보