8.11 정리-NFS, Samba, 실제 장비 실습

HakJin Kim·2023년 8월 11일
0

리눅스 NFS

  • Network File System
  • 네트워크를 통해 외부의 저장공간을 이용할 수 있는 공유 기술

1. 프로그램 설치

<CentOS 7>
# yum - y install nfs*

<이전버전>
# yum - y install rpcbind
까지 설치 (nfs서버는 포트번호를 제어하지 못하기때문에)

2. 환경 설정 파일

 /etc/exports 
- exports 파일 생성 및 수정
 
 [공유디렉터리] [허용할 클라이언트 IP/도메인 주소](허가권)
 /nfs *(rw,sync)

3. 데몬 시작

systemctl restart nfs
systemctl restart rpcbind

4. 마운트

<클라이언트에서>
mount -t nfs 192.168.0.174:/nfs /mnt
[서버 IP주소]:[공유할 디렉터리] [마운트할 디렉터리]

5. 특정 호스트 차단

 /etc/exports 
 
 /nfs3 192.168.0.181(rw,sync)
 = ~.181 주소만 허용 
 
 <접근 정책>
 1. /nfs 192.168.*.*(rw,sync)
 = C class 전체 허용
 2. /nfs 192.168.0.*(rw,sync)
 = 0번대 주소 전체 허용
 3. /nfs 192.168.0.0/255.255.255.0(rw,sync)
 = /24 서브네팅, 0번대 주소 전체 허용
 4. /nfs 192.168.0.0/25(rw,sync)
 = /25 서브네팅, 0.0~127번대 주소 허용
 5. /nfs3 192.168.0.181(rw,sync)[스페이스]192.168.0.191(rw,sync)
 = 0.181 주소와 0.191 주소 허용
  • nfs3 디렉터리는 192.168.0.181 클라이언트만 접속 가능
  • ~.181 주소 외에는 접근 불가

6. showmount 명령어

showmount -e 192.168.0.174
= nfs 서버에서 exports 파일에 설정한 디렉터리 목록 확인

7. 공유 디렉터리의 허가권 및 옵션 확인

<서버에서>
# exportfs -v
  • ()안에 있는 것들 모두 옵션

옵션

ro : 읽기 전용
rw : 읽기 쓰기
sync : 서버-클라이언트 사이의 시스템 변동 시 자동 동기화
no_root_squash : 클라이언트에게 root 권한 인정
root_squash : 클라이언트의 root 권한 부정
all_squach : (root 포함) 모든 사용자를 nobody 사용자로 맵핑 (일반 사용자로 사용하게)
secure : 포트번호 1024 미만인 호스트만 허가 (well known 포트만 인정)
no_subtree_check : 하위 디렉터리 검사 제한 (showmount 명령어 제한??)

nfs 운용 간 사용하는 포트번호 확인

# rpcinfo -p
  • rpcinfo 명령어를 통해 확인 가능
  • 방화벽 실행 후 nfs를 사용하기 위해 방화벽 설정을 해주어야 한다.
    # firewall-cmd --permanent --add-service=nfs
    # firewall-cmd --permanent --add-port=2049/tcp
    # firewall-cmd --permanent --add-port=2049/udp

8. 자동마운트

<클라이언트에서>
vi /etc/fstab

<fstab 파일에서>
192.168.0.174:/nfs3		/mnt	nfs		default		0 0
  • 재부팅 후 마운트가 되어있는 상태

윈도우10 NFS

NFS 설정

  1. 설정-앱-프로그램 및 기능-Windows 기능 켜기/끄기-NFS용 서비스(하위 설정 둘 다 체크)
  2. C드라이브 밑 NFS 공유용 폴더 생성-폴더 속성-공유-공유자 추가 및 권한 부여
  3. 공유-네트워크 및 공유 센터-모든 네트워크-공유켜기/암호 공유 끄기
<윈도우에서 리눅스 접근>
mount 192.168.0.174:/nfs *

<접속 루트 변경>
Y: 현재 (주소):(공유 디렉터리)에 성공적으로 연결되어 있습니다.

Y: 를 쳐서 루트를 변경
  • 접속 루트를 변경해주는 모습
  • dir 명령어로 리스트를 볼 수 있고 mkdir 명령어로 디렉터리를 생성해 줄 수 있다.
<리눅스에서 접근시 사용할 윈도우계정 추가, 삭제>
(cmd 관리자 권한으로 실행)
net user root 123456 /add
net user root /del

<리눅스에서 윈도우 접근>
mount -t cifs //192.168.0.180/wnfs /mnt
  • net user root 123456 /addnet user root /del로 유저 계정 추가와 삭제가 가능하다.
  • 윈도우에서 설정해준 root 계정의 비밀번호 입력
  • mkdir 명령어로 폴더를 만들어준 모습

윈도우 서버 16 NFS

NFS 설정

  1. 설정-시스템-앱 및 기능-프로그램 및 기능-Window 기능 켜기/끄기
  2. 설치유형(역할기반~)-서버 선택(서버 풀~)-서버 역할(기본설정)-기능(NFS용 클라이언트)-설치
<윈도우서버에서 리눅스 접근>
mount 192.168.0.174:/nfs *
(윈도우와 동일함)
  • 윈도우 서버에서 리눅스로 접근 가능하며
    mkdir로 디렉터리를 생성해 줄 수 있다.
<리눅스에서 접근시 사용할 윈도우계정 추가, 삭제>
net user root 123456 /add
net user root /del

<리눅스에서 윈도우서버 접근>
# mount -t cifs //192.168.0.187/windowserver /mnt
(윈도우와 동일함)
  • 리눅스에서 윈도우 서버로 접근 가능하며
    mkdir로 디렉터리를 생성해 줄 수 있다.

SAMBA 서버

1. 프로그램 설치

yum -y install samba*

2. 환경 설정 파일

/etc/samba/smb.conf
  • /etc/samba 디렉터리의 파일들
  • smb.conf의 내용

공유 디렉터리 추가

[public]
        comment = SAMBA
        path = /samba
        public = yes
        browseable = yes
        read only = no

centos에서 /samba 디렉터리를 생성해야 윈도우에서도 public 폴더 진입 가능하다.

[global]

  1. workgroup = 이론상 윈도우 계정과 동일해야함
  2. security = user(사용자 인증) /// share(무인증, centos 이전버전) /// server(인증서버 사용)
  3. hosts allow = 해당 ip만 접근 허가
    3-1. hosts allow = 192.168.0.
    => 0번대 주소 대역 허가
    3-2. hosts allow = 192.168.0.181 EXCEPT 192.168.0.180
    => EXCEPT로 거부해 줄 ip를 설정해 줄 수 있다.

3. SAMBA 계정 추가

<test 유저 생성  패스워드 추가 >

# smbpasswd -a test

4. 가상계정 생성

# useradd -M test1
# smbpasswd -a test1
  • useradd에 M 옵션smbpasswd에 a옵션을 준 뒤
    접속하여 test1 디렉터리에 접근하려해도 접근할 수 없다.

윈도우 cmd 명령어

net use /delete *
= 재부팅 없이 삼바 연결 끊기

5. 공유 디렉터리 생성

</etc/samba/smb.conf 파일 내용추가>

[public1]
	comment = SAMBA
	path = /samba2
	public = yes
	browseable = yes
	read only = no
    
(공유 이름과 path의 경로만 설정해주기)
  • public1 내용추가
  • 공유 디렉터리 public1이 추가된 모습

6. 접근

윈도우에서 리눅스로

찾기 후
\\192.168.0.174
  • 찾기-\\(삼바 서버주소)
  • 해당 삼바 주소로 접근한 모습

리눅스에서 윈도우로

# mount -t cifs //192.168.0.180/wnfs /mnt

(nfs와 방법 동일)
  • 리눅스에서 윈도우 공유 폴더로 접근, 해당 폴더 내에 linux-samba-server 폴더를 생성해줌

실제 장비 실습

<미션 목표>

: telnet, ftp ,tftp, ssh, nfs, samba로 접근이 원격접속하여 설정하는 pc만 가능하게

<조건>

방화벽
xinetd.d
tcp wrapper
service
pad 디렉터리
  • 다 설정한 상태에서 접근이 되어야한다 + 그 외 다른 네트워크에서는 접근이 불가능해야한다.

선행조건

서비스 설치

xinetd

yum -y install xinetd.x86_64 v

telnt

yum -y install telnet-server.x86_64
yum -y install telnet v

tftp

yum -y install tftp-server.x86_64
yum -y install tftp v

ftp

yum -y install vsftpd
yum -y install ftp v

nfs

yum -y install nfs* v
yum -y install rpcbind v

samba

yum -y install samba* v


cf.미비점/해결

서버2의 ens33, br0 서로 맵핑

  • br0의 타입을 static->dhcp로 수정, static 관련 설정들은 주석처리
  • ens33에 대한 설정은 유지(변경x)

설정 내용

1. 설정 주소

168.126.30.0/24
168.126.40.0/24

2. 설정 서비스

telnet, ftp ,tftp, ssh, nfs, samba

3. 설정 조건

방화벽
xinetd.d
tcp wrapper
service
pad 디렉터리

4. 설정 순서

방화벽(포트x, 서비스부터) -> tcp wrapper -> pam /// -> service + xinetd(telent, ftp, tftp)

설정 상세내용

1. 방화벽

  1. add-서비스 -> telnet23, ftp2021 ,tftp69, ssh22, nfs, samba
  2. 포트 -> (최종 연결 이후 설정해보기)

2. service

(/etc/xinetd.d 디렉터리에 대한 것)

  • ftp/o, tftp/o, telnet/o(root접속) 파일에 설정해주기

오류/미비점

  1. 방화벽을 켜뒀을땐 tftp 서비스를 add-service 명령어를 설정 해주어야한다.

  2. ftp xinetd 디렉터리 파일 생성 후 vsfpd.conf 파일 설정


3. tcp wrapper

1. allow

  • 서비스
in.telnetd
in.tftpd
vsftpd
sshd
  • 허용 주소 - 168.126.30.0/24 / 168.126.40.0/24

2. deny

ALL:ALL


4. ssh 접근통제

pam

  1. ssh 대한 것 -> 유저에 대한 통제 설정(trojan1, trojan2)
  2. su 대한 것 -> 옵션해제 및 wheel 그룹에 trojan1, trojan2까지 추가

sshd_config

ssh에 대한 것
allowusers trojan01 02


5. xinetd

  • etc/xinetd.conf 파일에 대한 것
    168.126.30.0/24, 168.126.40.0/24 추가

6. nfs

기본 설정 + exports 파일 수정하여 nfs 디렉터리에 대한 ip 접근권한 부여


7. samba

selinux disable(setenforce 0) 설정 + hosts allow ip 대역 추가

profile
처음 시작하는 사람

0개의 댓글

관련 채용 정보