samba는 이기종간의 파일, CD-ROM, 프린터 등을 공유하기 위해 만들어진 프로그램이다.
samba는 마이크로소프트사와 인텔이 다른 시스템의 디스크나 프린터와 같은 자원을 공유하기 위해 개발한 프로토콜이다. SMB는 tcp/ip 기반의 NetBIOS 프로토콜을 사용한다.
samba는 서버는 크게 2개(smbd, nmbd)의 프로세스로 구성 되어 있다.
대부분의 처리는 smbd에서 한다. 포트 또한 tcp:445 만 열려 있으면 작동한다. 다만, 윈도우즈 사용자의 컴퓨터이름으로 접속할 수 있게 하기 위해서는 nmbd를 사용해야 한다. nmbd는 3개의 포트를 사용한다. (tcp:139, udp:137,138)
SAMBA를 사용하는 경우 tcp : 139, 445번과 udp : 137, 138번 포트가 열려있어야 한며, 방화벽설정에도 적용되어야 한다. |
1. SAMBA 서버 설치
~]# yum -y install samba samba-common samba-client |
2. SAMBA 시작 및 종료
samba server는 항상 실행하고 있는 서버 프로그램이다, smb는 systemd로 관리하며 systemctl로 제어할 수 있다. smb, nmb 가 있으며, smb 만으로도 서비스 가능하다.
~]# systemctl enable smb nmb ~]# systemctl start smb nmb |
3. SAMBA 사용자 계정 설정
samba 사용자는 시스템 사용자를 이용하며, smbpasswd -a 명령으로 samba 접속 계정으로 설정할 수 있다.
~]# useradd ID ~]# passwd ID -----> 리눅스 사용자 생성 ~]# smbpasswd -a ID -----> samba 계정 적용 New SMB password: Retype new SMB password: Added user ID. |
4. SAMBA 설정
samba 설정 파일의 위치는 /etc/samba/smb.conf 이다.
[root@localhost samba]# more smb.conf # See smb.conf.example for a more detailed config file or # read the smb.conf manpage. # Run 'testparm' to verify the config is correct after # you modified it. [global] // 전역 설정 부분, 여기 아래에 옵션을 넣게 되면 모든 Samba 정보에 설정된다. workgroup = SAMBA // 윈도우의 workgroup과 일치 시키거나 NT 도메인 이름으로 설정한다. server string = Samba Server Version %v // 윈도우 컴퓨터 설명과 유사, 공유시 폴더명 옆에 설명. // %h 호스트명, %L NetBIOS 이름, %v Samba Version 표시 interfaces = lo eth0 192.168.1.2/24 192.168.2.2/24 // 두개의 네트워크에 Samba 가 물려있는 경우로 양쪽 네트워크에 대행 브라우징 및 서비스가 가능하다. hosts allow = 127. 192.168.1. 192.168.2. // 접근을 허가할 호스트 네임 혹은 ip 주소를 지정 log file = /var/log/samba/log.%m // 서버에 접속한 호스트마다 개별적인 호그 파일을 생성하도록 설정 max log size = 50 security = user // 서버의 사용자 계정만 사용할 수 있도록 한다. // user = Samba Server에서 계정 및 패스워드를 통한 인증을 거친 사용자에 한하여 공유를 허가 // share = 모든 공유 영역에 권한 없이 접근이 가능하도록 설정 // server = 공유 영역에 대한 사용 권한은 다른 호스트(NT 패스워드 서버)의 인증 과정을 거친 사용자에 한하여 허가 passdb backend = tdbsam // 패스워드에 해한 인증 방식. // tdbsam = samba 내장 TDB SAM 형식 // ldapsam = LDAP 사용 ( LDAP 라이브러리 필요) // sbmpasswd = smbpasswd 텍스트 파일 인증 형식 printing = cups printcap name = cups load printers = yes // Samba에서 별도의 프린터 설정을 하지 않고, printcap name 에서 설정한 프린트 설정을 불러온다. cups options = raw [homes] // 사용자 계정을 통해서 자기 홈 경로를 접근 할 수 있다. comment = Home Directories // 폴더에 대한 설명 valid users = %S, %D%w%S // browseable = No // 이 폴더의 표출여부 설정, yes로 하면 접속 권한이 없어도 네트웍의 모든 PC에서 확인 가능. read only = No // 버전 따라 writable 로 표시되기도 한다. 읽고, 쓰기 권한 설정. inherit acls = Yes create mask = 0664 // 생성되는 파일 권한 directory mask = 0755 // 생성되는 폴더 권한 [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = root create mask = 0664 directory mask = 0775 # 여러 사용자가 함께 사용할 수 있는 공유 폴더 설정하기 # "[ ]" 안에 접속할 경로를 설정한다, 만일 "[share]"로 세팅했을 경우, 윈도우에서의 접속은 # "\\server\share" 로 접속할 수 있다. [share] comment = shared Files path = /data/samba/share // 실제 파일이 저장될 공간으로 , 설정이 끝나고 폴더를 생성해 주어야 한다. browseable = yes // 공유 내역을 브라우징 리스트에 나타나게 할 것인지에 대한 옵션 read only = no create mask = 0664 diretory mask = 0755 guest ok = yes // Anonymous로 접속 간으하게 하려면 아래 주석을 풀어준다. 이때는 read only을 추천한다. # 옵션 설명 # vlid users --> 공유 영역에 접근 가능한 사용자 혹은 그룹 지정사용자를 여러명 지정할 경우 공백으로 구분하여 지정 # 그룹명일 경우 @ 그룹명 으로 그룹임을 명시한다. # write list --> 공유 영역에 대한 쓰기 가능한 사용자 혹은 그룹 지정사용자를 여러 명 지정할 경우 공백으로 구분. # 그룹명일 경우 @ 그룹명 으로 그룹임을 명시한다. |
5. 방화벽 설정
Samba는 tcp 139, 445 포트를 사용한다.
(참고) 삼바서버 포트 번호 netbios-ns 137/udp # NETBIOS Name Service netbios-dgm 138/udp # NETBIOS Datagram Service netbios-ssn 139/tcp # NETBIOS session service microsoft-ds 445/tcp |
6. 삼바 서버 접속 클라이언트
위도우즈에서 다음과 같은 방법으로 접속할 수 있다.
1) 윈도우즈에서 접속하기
시작 → 실행 , \\IP(또는 호스트명) , 아이디/비번으로 접속할 수 있다. |
2) 리눅스에서 접속하기
GUI 환경의 리눅스에서는 "파일브라우저" 를 실행하여 "네트워크 찾아보기" 에서 smb://컴퓨터명/공유이름 형식으로 접근 할수 있다. |
3) MC(Midnight Commander)를 이용하여 접속하기
명령어 창에서 mc를 입력하여 작동한 후 f9 키를 눌러 메뉴에서 "smb 연결"을 선택하여 접근할 수 있다. |
4) smbclient 를 이용한 smb 서버 접속
samba에서 제공하는 smbclient 명령어를 이용하여 SMB에 접속할 수 있다.
접속한 후 ftp 처럼 동작하며, help 명령어로 사용할 수 있는 명령어를 확인할 수 있다.
get, put 등의 명령어로 파일을 다운로드 업로드 할 수 있다.
~]# smbclient //컴퓨터이름/공유명 -U 사용자명 Enter user_id's password : 패스워드 smb: \> ls |
5) linux SMB 마우트 하기.
~]# mount -t cifs //아이피/공유명 /smb_dir -o user=사용자,password=패스워드 |
'배워서 남주자 > Service 구성' 카테고리의 다른 글
[php & oracle] php에서 오라클 연동 (PDO + OCI8 설치) (0) | 2018.04.20 |
---|---|
[Roundcube] Nginx + Php-fpm + MariaDB + Postfix + Dovecot + Roundcobe + Certbot (3) | 2018.03.29 |
[squid] proxy 서버 설정 - 옛날 자료 (0) | 2018.03.23 |
[ Mail-SPF] 메일서버등록 (0) | 2018.03.23 |
[네트워 파일 공유]Centos-7 NFS (네트워크 파일 시스템) (0) | 2018.03.23 |