Server/Linux

확장된 파일 시스템

T_Y 2018. 7. 17. 18:45
반응형

------------------------------------------ 파일시스템 -------------------------------------------------------


xfs     - 64비트 고성능 저널링 파일 시스템

ext        - 초기 리눅스에서 사용하였던 종류, 현재는 사용하지 않음

ext2       - 현재도 사용하며, 긴파일시스템 이름을 지원하는것이 특징

ext3       - 저널링 파일시스템, ext2보다 파일시스템의 복수/보안기능을 크게향상되었고     

ext4       - 16TB까지만 지원하던 ext3과 달리 더큰 용량을 지원하며, 삭제된 파일 복구, 파일 시스템 속

                 도가 훨씬 빨라진 파일시스템

iso9660    - DVD/CD-ROM을 위한 표준 파일시스템으로 읽기만 가능

nfs        - 원격서버에서 파일시스템 마운트할때 사용하는 시스템(Network File System)

swap       - 스왑파일시스템, 스왑공간으로 사용되는 파일시스템

ufs        - Unix system에서 표준 파일시스템으로 사용(Unix File System)

vfat       - 윈도우95/98등등 ntfs를 지원하기위한 파일시스템

msdos      - MS-DOS파티션을 사용하기위한 파일시스템

ntfs       - 윈도우NT/2000의 nfts를 지원하기위한 파일시스템

hfs        - MAC컴퓨터의 hfs를 지원하기위한 파일시스템

hpfs       - hpfs를 지원하기위한 파일시스템

sysv       - Unix system v를 지원하기위한 파일시스템

ramdisk    - RAM을 지원하기위한 파일시스템



확장된 파일 시스템

- nfs  ,  samba ( cisf )




NFS ( Network File System )


1. Server    ( ServerA )

1) 설치

# yum -y install nfs-utils.x86_64 



2) 설정

- /etc/exports <------------ 설정파일

- man exports  <----------- 설정파일 설명 페이지


# vi /etc/exports <--------- 설정파일을 열어준다


< 공유할 디렉터리_path>    <access_allow_host/network>(option)


ex) /raid/level01<---- 요걸 *(모든호스트에게)(sync)


--------------- access_allow_host/network ---------------------


- 접속을 허용할 IP 지정

                *                                                     : 모든 IP

               100.100.100.110                               : 해당 IP만 허용

  100.100.100.0/255.255.255.0         : 해당 Network 대역대만 허용


-------------- ( option ) -------------------

ro                        :                    읽기 전용

rw                       :                     읽고 쓰기 가능

sync                    :                     동기화

no_root_squash  :                     접근한 사용자 = root                    

root_squash        :                     접근한 사용자 = nfsnobody      ( 기 본 값 )



ex)             /raid/level01            *(ro,sync)

l                       l        l

l                       l        +----- option

l                       + --- access_allow_host/network

+---- 공유할 디렉터리

ex)            /share                       *(rw,sync)




3) Service Start


# systemctl start nfs  <-------- nfs 데몬을 시작한다

# systemctl start rpcbind <------ rpcbind 데몬을 시작한다 ( port num = 111 )



( " rpcbind "  <--------  데이터를 전송해주는 기능 )


- 확인


# ss -ant




# exportfs  





4) 방화멱 설정


# firewall-cmd --zone=home --add-service=nfs --permanent

# firewall-cmd --zone=home --add-service=rpc-bind --permanent

# firewall-cmd --zone=home --add-service=mountd --permanent

# firewall-cmd --reload  <------------- 영구적 설정을했으므로 해준다





2. Client   ( ServerB )


1) 설치


# yum -y install nfs-utils.x86_64


2) mount 


- Server 확인


ex) showmount -e < server_ip>


 # showmount -e 100.100.100.100





- mount


ex) mount -t nfs < server_ip > : < dir_path > < mount_point >

   l                     l

- 마운트 타입은 nfs                           l                     l

device 이름              l

마운트 포인트


Client # mkdir /nfs_share      <--------- 마운트 포인트 디렉터리

Client # mkdir /nfs_raid        <----------             //




ex)     100.100.100.100:/share -----> /nfs_share 

  

- nfs_share 디렉터리를  100.100.100.100:/share 로 마운트


# mount -t nfs 100.100.100.100:/share /nfs_share




ex)    100.100.100.100:/raid/level01 --------> /nfs_raid


- nfs_raid 디렉터리를 100.100.100.100:/raid/level01 로 마운트


# mount -t nfs 100.100.100.100:/raid/level01 /nfs_raid







------------------------------ [ 실 습 ] ------------------------------------------


1.share ( rw )


                 client # ls -l /nfs_share


-> server /share  ( Centos-root ) 


 # touch /nfs_share/client 파일을 만들겠다.




2. leve01 ( ro )


     client # ls -l /nfs_raid


     -> server /raid/level01 ( level01 )


# touch /nfs_raid/client 





---> client 에서 /nfs_share 디렉터리에 파일을 생성할 수 있도록 설정을 변경


Server # setfacl -m u:nfsnobody:rwx /share


 //       # getfacl /share



client  # touch /nfs_share/client


Client 에서 확인



Server 에서 확인





ServerA 에서 vi /etc/exports 로 바꿔준다


/raid/level01            100.100.100.0/255.255.255.0(rw,no_root_squash,sync)

/share                      100.100.100.200(rw,sync)





C # mount -t nfs 100.100.100.100:/share /nfs_share

- 마운트 할수 없다


C # mount -t nfs 100.100.100.100:/raid/level01 /nfs_raid

- no_root_squash 로 설정되어있기 때문에

- root 의 권한으로 사용할수있다.



3) Auto_mount


# vi /etc/fstab


- 적어줄 항목

l--- defaults 에 오토설정이

100.100.100.100:/raid/level01    /nfs_raid    nfs    defaults    0    0

l                                            l            l

이 장치를              이장치로 마운트    파일시스템 : nfs





이설정을 하면 Server pc 가 종료되면 client pc 부팅시 부팅오류가 생길수 있다.




----------------------------------- [ 실 습 ] -----------------------------------------------


ServerB 에서 NFS Server 설정


1. 설치

# yum -y install nfs-utils.x86_64


2. 설정

/etc/exports

/data 디렉터리를 공유

- 100.100.100.0. 네트워크 대역대만 허용

- 옵션 rw , no_root_squash,sync ( 읽기 , 쓰기 가능 , root 사용자로 매핑 )


# vi /etc/exports

- /data            100.100.100.0/255.255.255.0(rw,no_root_squash,sync)

- 작성을 해주고 저장 종료


3. 서비스 시작


# systemctl start nfs      

# systemctl start rpcbind


- 두개의 서비스를 시작해준다


4. 방화벽 설정


# firewall-cmd --zone=public --add-service=nfs --permanent

# firewall-cmd --zone=public --add-service=rpc-bind --permanent

# firewall-cmd --zone=public --add-service=mountd --permanent

# firewall-cmd --reload  <------------- 영구적 설정을했으므로 해준다



- 부팅시 자동 설정


systemctl enable nfs

systemctl enable rpcbind












SAMBA


- SMB    ( Server Message Block ) 프로토콜 사용

> SMB + LanManager + NetBIOS = CIFS ( Common Internet File System )


- 리눅스 서버에서 원격지의 리눅스 및 윈도우즈를 비롯한 SMB/CIFS 프로토콜을 사용하는 다양한

   운영체제의 클라이언트에게 파일 및 프린터 공유 서비스를 제공하는 오픈소스 프로그램





1. Server ( Windows )  <--> Client ( Server A )


1) Server ( Windows )


- 공유 폴더 설정

1 . 폴더생성

2. 폴서 속성

3. 공유 -> 고급 공유

4. 공유 -> 공유( 사용자 추가 == everyone ) 

5. 네트워크 및 공유센터 클릭

6. 암호보호 공유 끄기로 변경



2) Client ( Server A )


1) 설치 


# yum -y install samba-client.x86_64

# yum -y install cifs-utils.x86_64



2) mount


- Server 확인


ex) smbclient -L <server_ip> -U <user_name>


# smbclient -L 100.100.100.1 

 - Windows 의 패스워드를 요구하지만 그냥 enter


- mount


ex) mount -t cifs <server_ip>\ <dir_name> <mount_point>

ex) \\100.100.100.1\samba


# mkdir /smb_win

# mount -t cifs \\\\100.100.100.1\\samba /smb_win





2) Server ( Server A ) <-> Client ( Windows )


1) 설치 

 ( www.samba.org )

# yum -y install samba.x86_64  -------> samba - 4.7.1 버젼


2) 설정


# vi /etc/samba/smb.conf


# man smb.conf   < ------------- 설명

# vi /etc/samba/smb.conf.example   <----------- 설명


1) [ global ] <--- 전체 설정


- workgroup = SAMBA

l- 공유설정을 어떤 work 그룹에 공유해줄지 설정

l-> windows 의 작업그룹과 동일하게 설정


- security = user

l- 인증 레벨 ( user(암호켜기) , share(x)(암호끄기) , server(x) , domain )

                                                     l                                l   

samba 4 부터 두 개 가    사    라     졌    다.


      [global]

       workgroup = WORKGROUP

       security = user

       log file = /var/log/samba/log.%m

       max log size = 50






2) [ public ] <--- 공유 디렉터리 설정


- path = < path >

- read only = < yes or no > 

- writable = < yes or no >

- comment = < comment >



  [public]

               path = /samba

               read only = yes

               writable = no

               comment = ServerA




3) [ homes ] <--- 홈 디렉터리 설정


- read only = < yes or no >

- writable = <yes or no >

- comment = <comment >

- browseable = < yes or no >?


[homes]

read only = no

writable = yes

comment = Home_Dir

browseable = no





3) 서비스 시작


# systemctl start smb


- 확인

# ss -at

# smbstatus <------- 연결되어있는 정보를 보여준다


(*449 *139 samba 포트로 랜섬웨어를 뿌린적이있다.)



4) 방화벽 설정


# firewall-cmd --zone=home --list-all <--- home영역 리스트 보기

# firewall-cmd --zone=home --add-service=samba --permanent 

- samba 서비스 추가

# firewall-cmd --reload <--  --permanent 옵션을 넣었다면 reload 




5) samba 패스워드 설정


ex) smbpasswd -a <user_name>

-a  : 추가

-x  : 삭제


ex) linux , java 사용자에게 samba 패스워드 설정

패스워드는 확인차 2번 입력함


# smbpasswd -a linux

# smbpasswd -a java



- windows 에서 리눅스 공유파일로 접속하기


시작 -- 검색창에 \\< linux_ip >




※ Windows

> net use       <------------- 연결 정보 출력

> net use /delete * <-------- 연결 정보 삭제

( Y / N ) : 



----------------------------------- [ 실 습 - 익명연결 허용 ] -----------------------------------------------




1. 설치


# yum -y install samba.x86_64



2. 방화벽 설정


# firewall-cmd --zone=public --add-service=samba --permanent 

- samba 서비스 추가

# firewall-cmd --reload <--  --permanent 옵션을 넣었다면 reload 


3. 설정


Samba3 =  security = share

( user  : 사용자명으로 패스워드 확인 한 후에 접속 o )

( share : samba server 인증 과정 x )


# vi /etc/samba/smb.conf



                       [global]

                                       workgroup = WORKGROUP

                                       security = user

                                       map to guest = Bad Password

      

                       [public]

                                       path = /samba

                                       read only = no

                                       writable = yes

                                       guest ok = yes

      public = yes



4. 서비스 시작


# systemctl start smb


- 확인

# ss -ant




+------------------------------------ samba option ------------------------------------------+


read only : 공유 디렉토리를 읽기만 가능하게 할 것인지를 결정

writable, write ok : 공유 디렉토리를 쓰기 가능하게 할 것인지를 결정

valid users : 공유 디렉토리에 로그인할 수 있는 사용자를 결정

public, guest ok : 다른 사용자들이 이용하게 할 지를 결정

browseable : 공유 디렉토리의 리스트를 보여줄 지를 결정

printable : 공유 디렉토리에 스풀 파일을 지정할 것인지를 결정

path : 공유할 디렉토리의 절대경로를 지정

comment : 간단한 설명을 적음

create mask, create mode : 파일을 생성할 때의 모드를 결정. umask값형태로 지정.

write list : 쓰기가 가능한 특정 사용자를 지정





+---------------------------------- Magic cookies ---------------------------------------------+


      %u : 현재 사용중인 유저

      %g : 현재 사용중인 유저 그룹

      %m : 클라이언트의 NetBIOS이름

      %v : 버전

      %h : 호스트이름

      %p : 서버의 홈디렉토리 경로

      %d : 서버의 프로세서ID

      %S : 현재 사용되는 서비스 이름

      %P : 현재 사용되는 서비스의 루트 디렉토리

      %U : 세션의 유저

      %G : 셔션의 유저그룹

      %H : %u로 주어진 유저의 홈디렉토리

      %L : 서버의 NetBIOS이름

      %M : 클라이언트 머신 이름

      %N : NIS 홈디렉토리 서버의 이름

      %I : 클라이언트 머신 IP

      %T : 날짜와 시간

     




































반응형

'Server > Linux' 카테고리의 다른 글

FTP (ACTIVE mode & PASSIVE mode) Xinetd  (0) 2018.07.26
FTP & 접근제어  (0) 2018.07.20
디스크 관리  (0) 2018.07.16
Network  (0) 2018.07.13
방화벽 & 서비스  (0) 2018.07.12