Linux

파일관련 서비스

laughcryrepeat 2020. 9. 27. 17:27

삼바 SAMBA 서비스 사용하기

 

1) 삼바 서비스의 개요

 

1. 삼바 서비스의 특징

  • GPL 기반 자유소프트웨어로 리눅스와 윈도우 간 디렉터리, 파일, 프린터 등 공유하는데 사용
  • TCP/IP 기반 NetBIOS 상에서 동작하는 SMB Server Message Block 프로토콜을 이용
  • 삼바에서 설정한 그룹과 호스트명이 윈도우의 Network Neighborhood 에 컴퓨터 이름으로 표시.
    상대 호스트의 IP 주소 대신 컴퓨터 이름을 이용하여 접속할 수있음. WINS (Windows Internet Name Service)
  • CIFS (Common Internet File System)는 SMB 를 인터넷까지 확장한 표준 프로토콜로 유닉스와 윈도우 환경을 동시에 지원.

 

2. 삼바 서버의 구성 요소

nmbd - UDP 137,138 번 포트를 이용해 호스트를 브로드 캐스팅 방식으로 검색한 후 , TCP 139번 포트를 이용하여 컴퓨터 이름으로 접속.
- nmbd를 이용하지 않고 삼바 서비스를 구성할 수 있으나 Network Neighborhood에 표시되지 않고 컴퓨터 이름으로 접속할 수 없게 됨. WINS 서비스를 위한 데몬.
smbd - 삼바 프로토콜 주요 기능을 담당. TCP 445 포트를 이용
- 삼바 서버의 IP 주소만 알고 있어도 IP 주소를 이용한 직접 접속 방법으로 삼바 서비스를 사용.

 

2) 삼바 서비스 설치와 구성

 

1. 삼바 관련 패키지 설치

yum 이용해 삼바 관련 패키지를 설치

$yum -y install samba samba-common samba-client

 

2. 삼바 서비스 실행

주요 서비스인 데몬인 smb와 nmb를 시작

$service smb start
$service nmb start

/etc/rc.d/init.d 디렉터리에 smb 및 nmb를 위한 스크립트를 이용해도 됨.

chkconfig 명령을 이용하면 시스템 부팅과 함께 서비스 데몬을 자동으로 실행

$chkconfig smb on
$chkconfig nmb on

 

3. smb.conf를 이용한 삼바 서비스 설정

삼바 서버는 /etc/samba/smb.conf 환경설정 파일로 이용

 

-윈도우에 접근하라 때 표시되는 폴더 이름은 www로 설정

-간단한 설명은 Web Directory

-공유 디렉터리 경로는 /user/local/apache/htdocs

-접근 가능한 사용자는 ihduser 및 kaituser만 가능. 두사용자 모두 파일 생성 및 삭제 권한을 부여

[www]

comment = Web Directory
path = /usr/local/apache/htdocs
vaild users = ihuser kaituser
writable = yes

 

4. 삼바를 이용할 사용자 등록과 패스워드 설정

삼바를 이용할 리눅스 계정을 등록

$adduser smbuser
$passwd smbuser

smbpasswd 명령을 이용해 삼바 계정과 패스워드 설정. 이때 삼바계정은 리눅스 시스템에 등록된 계정이어야 함.

-a 삼바 사용자 계정을 추가하고 패스워드 설정.

$smbpasswd -a smbuser

pdbedit 명령을 이용해 삼바  사용자 목록 및 세부 내용을 확인

$pdbedit -L

$pdbedit -v -u smbuser

 

3) 삼바 서비스 이용하기

 

1. 삼바 클라이언트 패키지 설치

삼바 서버에 접속하여 서비스를 이용할 클라이언트 호스트에 패키지 설치

$yum -y install samba-common samba-client

 

2. 삼바 서버에 접속

smbclient 명령어를 이용해 공유 디렉터리 정보를 확인하고 서버에 접속

smbclient [옵션][호스트명] 형식. 접속후 ? 명령 입력하면 사용가능한 명령 리스트 확인 가능

호스트의 공유폴더이름은 //172.30.1.12/[공유폴더]/ 같이 지정가능

$smbclient -L172.03.1.12 -U smbuser

 

3. SMB 파일 시스템 마운트

mount 명령을 사용해 삼바 공유 디렉터리를 로컬 시스템에 마운트하여 로컬 디렉터리인 것처럼 사용

먼저 마운트할 디렉터리 만든 후 mount 명령을 사용해 마운트 진행

df 명령으로 파일시스템 확인

$mkdir /smbuser

$mount -t cifs //172.30.1.12/smbuser /smbuser -o user=smbuser,password=패스워드

$df

 

4) 삼바 관련 기타 명령어

smbstatus 삼바의 현재 접속 정보를 확인하는 명령어
testparm 삼바의 설정 정보를 확인하는 명령어
nmblockup 삼바 서버의 NetBIOS 이름으로 IP주소를 조회할 수 있는 명령어
smbcontrol 삼바 데몬에 메시지를 보내 제어

NFS Network File System 서비스 사용하기

1) NFS 서비스의 개요

 

1. NFS 서비스의 특징

TCP/IP를 이용해 원격 호스트의 파일 시스템을 마치 로컬 호스트에 있는것처럼 마운트하여 사용할 수 있는 서비스.

RPC (Remote Procedure Call) 을 이용해 NFS 관련 명령어를 전달, rpcbind 데몬이 필요

 

2. NFS 서비스를 위한 주요 패키지

rpcbind : rpcbind, rpcinfo 등 명령어 포함하며 RPC 서비스를 위해 사용

nfs-utils : NFS 관련 데몬 및 명령어를 포함

 

2) NFS 서비스 설치와 구성

 

1. NFS 관련 패키지 설치

yum을 이용해 NFS 관련 패키지 설치.

$yum -y rpcbind nfs-utils

 

2. NFS 서버 설정

/etc/exports 파일을 이용하여 NFS 서비스 설정

[공유 디렉터리][접속 허가 호스트](옵션) ...

접속허가 호스트는 IP 주소, 도메인 이름등을 사용 가능.

/home/youngjin-nfs 172.30.1.0/24(rw,no_root_squash)

 

3. NFS 관련 데몬 실행

rpcbind와 nfs 데몬을 실행

$service rpcbind start

 

3) NFS 서비스 이용하기

 

1. NFS 서버에 접속

mount 명령을 이용하여 NFS 서버에 접속

mount -t nfs [NFS 서버] : [대상 디렉터리][마운트 디렉터리]

$mkdir /var/youngjin-local

$mount -t nfs 172.30.1.12:/var/youngjin-nfs /var/youngjin-local

$df /var/youngjin-local/

 

2. /etc/fstab 을 이용한 마운트

/etc/fstab 파일은 장치를 마운트할 때 참조하는 파일로 관련 정보를 설정해 부팅시 자동으로 마운트 되도록 구성

172.30.1.12:/var/youngjin-nfs /var/youngjin-local nfs timeo=15,soft,retrans=3 0 0

주요 설정 옵션

파일시스템 장치명 파티션 혹은 장치의 위치 지정
마운트 포인트 어떠한 디렉터리로 연결할 것인지 지정
파일 시스템 종류 nfs, NTFS, ext3, iso9660 등 지정
마운트 옵션 timeo : 타임아웃 후 첫번째 재전송 요구시간 지정
retrans : 타임아우 후 재전송 요청 회수 지정
soft : retrans에 설정하나 값만큼 요청
hard : 무한반복하여 요청
auto : 부팅시 자동 마운트로 지정
rq, nouser,exec 등 추가지정
덤프 백업 여부를 지정 0 불가능 1 가능
무결성 검사 fsck에 의하나 무결성 검사 우선순위를 지정. 0 하지않음

 

4) NFS 관련 기타 명령어

rpcinfo 메모리에 로딩된 RPC 기반 서비스 테이블을 관리하는 명령어
서비스 테이블이란 프로그램과 포트 번호를 매핑한 테이블 의미
exportfs NFS 서버의 익스포트된 디렉터리정보, 공유목록을 관리하는 명령어
showmount 클라이언트에서 서버의 익스포트된 정보를 확인하는 명령.
showmont [옵션][호스트명]
nfsstat NFS 및 RPC 연결에 대한 통계 정보를 표시하는 명령어

 


FTP ( File Transport Protocol ) 서비스 사용하기

 

1) FTP 서비스의 개요

 

1. FTP 서비스의 특징

  • FTP는 TCP/IP 이용해 FTP 서버와 클라이언트 간 파일을 전송하기 위한 프로토콜.
  • 등록된 사용자만 접속하여 사용. 익명사용자를 지원하기도 하나 보안에 취약하므로 권장하지 않음.
  • vsftpd는 가자아 대표적인 FTP 프로그램. 보안을 중시

 

2) FTP 서비스 설치와 구성

 

1. FTP 관련 패키지 설치

yum -y install vsftpd 명령을 이용하여 vsftpd 패키지를 설치

 

vsftpd 관련파일 목록

/etc/vsftpd/vsftpd.conf 주 설정파일
/etc/rc.d/init.d/vsftpd 데몬 실행을 위한 스크립트 파일
/etc/pam.d/vsftpd PAM(Pluggable Authentication Module) 설정 파일
/etc/vsftpd/ftpusers PAM과 연관된 설정 파일로 FTP 서비스에 접근할 수 없는 계정을 지정
/etc/vsftpd/user_list - 주 설정 파일 wsftpd.conf 설정 내용에 따라 다르게 동작
- userlist_enable=YES 로 설정되어야 user_list 사용
- userlist_deny=YES 로 설정하면 user_list 등록된 계정은 FTP 서비스에 접근할 수 없게 됨.
  기본설정값은 YES 이며, user_list는 거부 목록으로 적용됨.
- userlist_deny=NO 로 설정되면, user_list 에 등록된 사용자는 FTP 서비스를 사용가능.

 

2. FTP 서버 설정

/etc/vsftpd.conf 파일을 이용해 vsftpd 의 동작 환경 설정.

anonymous_enable=YES 익명 사용자의 접속을 허가
anon_upload_enable=YES 익명 사용자의 업로드를 허가
local_enable=YES 로컬 계정 사용자의 접속을 허가
write_enable=YES FTP 쓰기 명령을 허가
local_umask=022 기본 umask 값인 077을 지정한 값(022)으로 변경
chroot_local_user=YES 접속한 사용자의 홈 디렉터리를 최상위 디렉터리가 되도록 지정
chroot_list_enable=YES 홈 디렉터리의 상위 디렉터리로 이동할 수 있는 사용자 목록을 사용
chroot_list_file=[파일명] 상위 디렉터리로 이동할 수 있는 사용자 목록을 담은 파일 지정.
chown_upload=YES 익명 사용자가 업로드한 파일의 소유권을 변경
chown_username=[계정명] 익명 사용자가 업로드한 파일의 소유권을 갖게 될 사용자 설정
pam_service_name=[이름] PAM 인증에 사용할 설정 파일의 이름을 지정.
userlist_enable=YES /etc/vsftpd/user_list를 사용
tcp_wrapper=YES tcp_wrapper를 이용하여 접근 제어를 수행
session_support=YES wtmp에 로그를 남겨 last 명령으로 접속여부를 확인
ftpd_banner=[메시지] FTP 접속시 표시될 환영 메시지 설정
xferlog_file=[경로명] FTP 관련 로그를 기록
xferlog_std_format=YES 로그 파일이 표준 포맷을 사용하도록 설정
listen_port=[포트번호] 21과 같이 vsftpd의 접속 포트를 지정
ftp_data_port=[포트번호] 20과 같이 데이터 전송에 사용할 포트를 지정
listen=YES standalone 모드로 동작 시 설정하는 항목
idle_session_timeout=[초] Idle 상태에서 접속을 유지할 최대 시간을 설정. 기본 300초
data_connetion_timeout=[초] Data connection을 끊기 전까지의 대기시간을 설정. 기본 60초
max_clients=[최대값] 접속할 수 있는 클라이언트의 최대 허용건수를 지정
max_per_ip=[최대값] 한 IP 주소당 접속할 수 있는 최대 허용건수를 지정

 

3. vsftpd 데몬 실행

service vsftpd start 명령으로 데몬을 실행

 

3) FTP 서비스 이용하기

 

1. FTP 클라이언트 설치

$yum -y install ftp

 

2. vsftpd 서버에 접속 및 명령 확인

 

- 접속 후 help 로 ftp 관련 명령어 확인

$ftp 172.30.1.12

ftp> help