1. st 그룹 읽기 권한 , 쓰기 거부 권한 / st01 계정에 읽기 쓰기 권한

1) st 그룹에는 읽기 권한 과 쓰기 거부 할당

- 허용 보다 거부가 우선시 적용된다는 경고창이 나온다.

2) st01 사용자는 st 그룹에 포함되지만, 해당 사용자는 쓰기 권한도 할당

3) st01 계정으로 로그인

4) 폴더에 파일 생성

5) st 그룹에 속하지만 st01이 아닌 st02로 확인

- 권한이 없어 파일생성이 불가능 하다

1) NFS 란?

- 네트워크를 통해 파티션 공유를 제공하는 서비스

- 대부분 유닉스 계열에서 사용할수 있음

- 시스템의 리소스를 직접 제공하는 서비스이므로 보안에 주의해야 한다 ( 가용성 공격에 취약 )

- UNIX 끼리만 통신할수 있다 ( unix 서버 - unix 클라이언트 )

- 두 시스템간 커널이 달라도 unix 시스템 이기만 하면 사용가능

- NFS server 와 NFS client 로 구성된다

- NFS 서버와 클라이언트의 계정이 동일해야 한다 ( UID 가 같아야함 )

- 계정명이 같아도 UID 가 다르면 동작하지 않는다 ( 권한 할당이 되지 않는다 )

- NFS 클라이언트에서 NFS 서버를 mount 해서 사용

2) 관련 파일 및 실행

1. NFS 서버 설치 확인

- 대부분 유닉스는 기본적으로 설치되어 있다

[ rpm-qa | grep nfs-utils ]

[ rpm-qa | grep rpcbind ]

2. 환경 설정 및 관리 파일

- 데몬

[ /usr/sbin/ecportfs ]

[ /usr/sbin/rpcbind ]

- 관리 스크립트

[ /usr/lib/systemd/system/nfs.service ]

[ /usr/lib/systemd/system/rpcbind.service ]

/* unix 6버전 이하에서는 rpcbind 대신 portmap 을 사용한다 */

- NFS 서버 실행

[ systemctl start nfs.service ]

[ ntsysv ] 를 실행해 설정 ( nfs-server.service , nfs-service )

- 환경 설정 파일

[ /etc/exports ]

1. 형식 : [ export 디렉터리 ] [ 허가할 클라이언트 IP주소 / 넷마스크 ] [(옵션)]

2. 옵션

- ro : 읽기 전용, rw : 읽기 쓰기 허용

- root_squash : 클라이언트의 root를 nobody로 매핑

- no_root_squash : 클라이언트의 root와 서버의 root를 일치시킨다.

- all_squash : 모든 사용자를 nobody로 매핑

- no_all_squash : 서버의 사용자와 클라이언트의 사용자를 일치시킨다.

- All_squash와 no_all_squash 설정에서 root는 어떻게 매칭되는지 확인 한다.

- anonuid=uid, anongid=gid : nobody로 매핑 될경우 지정된 계정이나 그룹으로 대상을 변경

일반 유저

root

Default

no_all_squash

root_squash

설정

all_squash

no_root_squash

* 서버-클라이언트 간 계정 매핑은 UID 기준으로 매핑된다

- NFS 클라이언트 설정

1. 명령어

mount -t nfs [ NFS 서버 IP ] : [ /공유할 디렉터리 ] [ /마운트할 디렉터리 ]

ex) ​mount 192.168.10.31:/home/pub /home/pub

2. 부팅시 자동으로 마운트 하기 위해 [ fstab ] 에 등록한다

NFS 실습

- 클라이언트와 서버에 동일 사용자가 있을때 확인

- 클라이언트 에만 있는 사람 확인


1. Server 시스템 설정

1) mkdir a1 ~ a7 디렉터리 생성

2) Server 의 계정 생성

3) /etc/exports 환경 설정 파일 수정

디렉터리

rw / ro 모드

all_squash 여부

root_squash 여부

/home/a1

읽고쓰기

x

클라이언트와 서버의 root 를 매핑

/home/a2

읽고쓰기

접속하는 모든 사용자를 nobody 로 매핑

x

/home/a3

읽고쓰기

클라이언트와 서버의 사용자 매핑

x

/home/a4

읽고쓰기

접속하는 모든 사용자를 nobody 로 매핑

클라이언트의 root 를 nobody로 매핑

/home/a5

읽고쓰기

접속하는 모든 사용자를 nobody 로 매핑

클라이언트와 서버의 root 를 매핑

/home/a6

읽고쓰기

클라이언트와 서버의 사용자 매핑

클라이언트의 root 를 nobody로 매핑

/home/a7

읽고쓰기

클라이언트와 서버의 사용자 매핑

클라이언트와 서버의 root 를 매핑

​4) 데몬 실행

[ systemctl start nfs.service ]


2. Client 시스템 설정

1) 유저 생성

- 서버와 클라이언트의 유저 비교

구분

서버 ( name / UID )

클라이언트 ( name / UID )

root

root / 0

root / 0

계정명과 UID 동일

hong / 1000

hong / 1000

계정명 일치 , UID 불일치

jeong / 1010

jeong / 1100

계정명 불일치 , UID 일치

ming / 1001

min / 1001

2) mkdir a1 ~ a7 디렉터리 생성 ( 서버 디렉터리 마운트할 공간 )

​3) 마운트 수행하여 계정 확인

 

/home/a1 마운트

- root 계정

: 파일을 생성하고 소유자를 확인해보면 root로 표시된다.

- 일반 사용자 계정

1) hong 계정 ( 서버와 클라이언트 동일 계정명 , UID )

- 클라이언트에서 파일 생성

- 서버에서 파일 확인

: 동일 계정명, 동일 UID이기 때문에 같은 소유자와 그룹명으로 파일이 생성된다.

2) jeong 계정 ( 서버와 클라이언트 동일 계정명 , 다른 UID )

- 클라이언트에서 파일 생성

: 클라이언트에서는 jeong이라는 계정으로 정상 표시된다.

- 서버에서 파일 확인

: 서버에는 해당 UID 값이 없기 때문에 클라이언트의 소유자와 그룹명이 UID 값으로 표시된다

3) min / ming 계정 ( 서버와 클라이언트 다른 계정명 , 동일 UID )

- 클라이언트에서 파일 생성

- 서버에서 파일 생성

: UID는 서버와 클라이언트 모두 동일하지만, 계정명이 다르기 때문에 각각 명시된 계정명으로 표시된다.

② /home/a2 마운트

- 루트와 일반사용자 계정

: all_squash 정책에 의해 루트와 일반사용자 모두 nobody 로 매핑된다.

③ /home/a3 마운트

- 루트 계정

: root_squash 를 별도 설정 하지 않았지만, 디폴트로 root_squash 가 설정된다.

- 일반 사용자

클라이언트 파일 생성

서버 파일 확인

: 일반사용자에 대해서는 /home/a1 과 동일하게 적용된다.

④ /home/a4 마운트

- 루트계정 과 일반 계정

: 정책에 의해 root 와 일반 사용자 모두 nobody로 매핑된다.

⑤ /home/a5 마운트

- 루트계정 과 일반 계정

: no_root_squash 가 적용되어 있으나, all_squash 정책에 의해 모든사용자가 nobody로 매핑

⑥ /home/a6 마운트

- 클라이언트

- 서버

: 일반 사용자는 /home/a1 과 동일하게 적용되며, root 계정은 nobody로 매핑된다.

⑦ /home/a7 마운트

- 클라이언트 파일 확인

- 서버 파일생성 및 확인

: root 계정은 root 계정으로 생성되며, 일반사용자에 대해서는 /home/a1 과 동일시 적용

1. FTP 개요

- 웹 서비스의 일부로 통합 운영

- 시스템간 파일을 주고받는 프로토콜

- 리소스를 많이 차지 하는 단점이 있다 ( 다른 서비스에 대해 대략 2배정도를 차지함 )

- 사용하는 port 번호

21 : 서버 연결

20 : 데이터 연결 ( 다운로드 ) ( passive mode 의 경우 1024 이후 임의 포트 사용 )

- 접속 및 전송 과정

1) FTP client는 21번 port를 통해서 서버와 control connection을 설정

2) 제어연결을 통해 사용자 계정과 비밀번호를 전송

3) Client는 제어연결을 통해 원격지의 디렉토리 변경과 같은 명령을 전송

4) 서버측은 제어연결을 통해 파일 전송을 위한 명령을 받으면 TCP data connection을 초기화

5) 하나의 파일 전송이 끝나면 data연결은 close

6) 다음 파일 전송을 위해서는 새로운 TCP connection을 생성


2. 설정 파일

1. 관련 파일

1) 데몬 : /usr/sbin/vsftpd

2) 설정 파일 : /etc/vsftpd/vsftpd.conf

3) PAM 모듈 : /etc/pam.d/vsftpd

- 인증 보조 모듈 ( 접속 제어 )

4) 접근 제한 파일 : [ /etc/vsftpd/ftpusers ] [ /etc/vsftpd/user_list ]

- 해당 파일에 기록되어 있는 계정은 접속 불가 ( 계정별 보안 )

2. vsftp.conf 파일 설정

- 익명 사용자 관련 설정

anonymous_enable=YES

#anon_upload_enable=YES (d:NO)

#anon_mkdir_write_enable=YES (d:NO)

#deny_email_enable=YES (d:NO banned_email_file )

- banned 파일에 지정된 메일 계정은 접속이 차단

#banned_email_file=/etc/vsftpd.banned_emails

#non_anon_password=NO

#anon_root=/var/ftp (d:/var/ftp)

#ftp_username=ftp (d:ftp)

 

- 제한 설정

#max_clients=30

- 동일 접속자 수 설정

#max_per_ip=3 (0은 무제한)

- IP당 접속 가능 갯수 ( 0이면 무제한 )

#ls_recurse_enable=YES

- [ ls -R ]옵션 사용 가능여부 체크 ( ls –R 명령은 부하가 크다 )

- chroot 설정 ( 현재 접속 디렉터리를 최상위 디렉터리로 설정 )

#chroot_local_user=YES (d:No)

#chroot_list_enable=YES

- chroot_local_user가 NO일 때 chroot_list_file에 지정된 사용자만 chroot를 적용한다.

- chroot_local_user가 YES일 때 chroot_list_file에 지정된 사용자만 chroot를 적용하지 않는다.

#chroot_list_file=/etc/vsftpd/chroot_list

- Default 값 : /etc/vsftpd/chroot_list

#allow_writeable_chroot=YES

- chroot 적용 사용자의 경우 이 설정이 반드시 필요하다.

• chroot 설정은 외부 디렉토리로 연결된 link 디렉토리에 접근도 금지되며 이때는 mount 명령을 이용

mount --bind [원본 디렉토리] [연결할 디렉토리]

- standalone 인 경우만 사용되는 항목

listen=YES

tcp_wrappers=YES

- /etc/hosts.deny, /etc/hosts.allow 파일에 정의

- vsftpd : 192.168.10. ( 10번 대역 모두 적용 )

local_max_rate=1024 # byte/sec

anon_max_rate=1024

- 등록된 사용자(/etc/passwd) 관련 설정

local_enable=YES // 접속가능 여부

write_enable=YES // 파일 올리기 여부

local_umask=022 // 권한 제거

- 사용자 제한 설정(user_list)

1) userlist_file(/etc/vsftpd/user_list)에 등록된 계정에 대한 접속 제어는

userlist_enable과 userlist_deny에 따라 결정

2) userlist_enable의 defaul는 No지만 YUM으로 설치된 경우 Yes로 설정


3. vsftp 설치 및 연결 실습

1) vsftp 설치

2) vsftp 서비스 활성화

3) 활성화 상태 체크

4) 테스트를 위해 일반 사용자로 로그인 [ su - hong ]

5) 연결 상태 확인

6) ls 로 파일 확인

 

- 상위 DNS 설정

1) /etc/name.conf 파일

2) /var/named/kst20.zone 파일


- 하위 DNS 설정

1) /etc/named.conf 파일

2) /var/named/hjm.net.zone 파일


- named.ca 파일

- /etc/resolv.conf 파일

+ Recent posts