2020. 2. 7. 16:14ㆍSecurity/물리보안&보안 요구 분석&거버넌스
목차
1. 보안 명세 요구 사항 확인
1-1. 보안 명세 요구 사항 확인
2. 사전 설정
2-1. ftp 설치 확인 및 설치
2-2. ftp 시작
3. 보안 명세 구현
3-1. 자료 배포 디렉토리 설정
3-2. root를 제외하고 자신의 홈 디렉토리를 벗어날 수 없게 설정
3-3. ftpadmin 계정만 파일 업로드 가능
3-4. 리눅스 모든 사용자가 /home/ftp에서 자료 다운로드가 가능하도록 설정
3-5. 일반 사용자 업무 계정인 st01, st02, st03 계정은 ftp 접속을 불허.
4. 보안 명세 구현 확인
4-1. 자료 배포 디렉토리 설정 확인
4-2. 일반 계정의 chroot 적용 확인
4-3. ftpadmin 계정의 파일 업로드 가능 확인
4-4. st01, st02, st03의 ftp 접속 가능 여부 확인
1. 보안 명세 요구사항 확인
1-1. 보안 명세 요구사항 확인
- 자료 배포 디렉토리 : /home/ftp
- 리눅스 모든 사용자가 해당 디렉토리에서 다운 가능
- root를 제외하고 자신의 홈 디렉토리를 벗어날 수 없다.
- ftpadmin 계정만 파일 업로드 가능.
- 일반 사용자 업무 계정인 st01, st02, st03 계정은 ftp 접속을 불허.
2. 사전 설정
2-1. FTP 설치 여부 확인 및 설치
# yum list vsftpd
# yum list ftp
# yum -y install vsftpd
# yum -y install ftp
// vsftpd와 ftp 설치 확인 후 설치
2-2. FTP 시작
# systemctl start vsftpd.service
# systemctl status vsftpd.service
// 시작 후 구동 확인
3. 보안 명세 구현
3-1. 자료 배포 디렉토리 설정
# mkdir ftp
// /home에 자료 배포 디렉토리인 ftp 폴더 생성.
3-2. root를 제외하고 자신의 홈 디렉토리를 벗어날 수 없게 설정
<사용 명령어>
chroot_local_user
- yes로 설정을 할 경우 사용자들은 자신의 계정에서 상위 디렉토리로 이동할 수 없음
- default 값은 no
chroot_list_enable
- chroot_local_user가 NO일 때는 chroot_list_file에 지정된 사용자만 chroot를 적용
- chroot_local_user가 YES일 때는 chroot_list_file에 지정된 사용자만 chroot를 적용하지 않음
chroot_list_file
- chroot가 적용될 계정을 적어주는 파일.
- 기본 경로는 /etc/vsftpd/chroot_list
# vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
추가
// root를 제외하고는 전부 chroot를 설정 할 것 이기때문에 chroot_local_user는 yes로 설정
// chroot_list 파일에 chroot를 설정하지 않을 root를 작성
// allow_writeable_chroot=YES 옵션은 chroot 적용 사용자의 경우 이 설정이 반드시 필요.
# vi /etc/vsftpd/chroot_list
# cat /etc/vsftpd/chroot_list
// chroot_list 파일에 root가 작성된 것을 확인. 필요할 경우 파일을 직접 생성해준다
# systemctl restart vsftpd.service
3-3. ftpadmin계정만 파일 업로드 가능.
- ftp 설정만으로는 ftpadmin 계정만 파일 업로드 할 수 있게 설정이 불가능
- 따라서 ftpadmin의 퍼미션을 조정
# chown -R ftpadmin.user /home/ftp
// /home/ftp 디렉토리 소유권한 소유자를 ftpadmin 으로 변경
# cd 755 /home/ftp
// /home/ftp 디렉토리의 ftpadmin만 파일의 업로드가 가능하고, ftp를 사용할 수 있는 그룹의 해당되는 계정만 파일의 실행 가능, 나머지는 접근이 불가능하도록 750으로 설정.
3-4. 리눅스 모든 사용자가 /home/ftp에서 자료 다운로드가 가능하도록 설정
<사용 명령어>
mount --bind [원본 디렉토리] [연결할 디렉토리]
- chroot 설정을 사용시 외부 디렉토리로 연결된 link 디렉토리에도 접근이 금지되는데 이럴때 사용
# mount --bind /home/ftp /home/bst15/ftp
# mount --bind /home/ftp /home/ftpadmin/ftp
# mount --bind /home/ftp /home/user1/ftp
# mount --bind /home/ftp /home/user2/ftp
# mount --bind /home/ftp /home/user3/ftp
// mount 하기전 계정의 하위 디렉토리에 /ftp를 작성후에 mount 명령어 수행.
3-5. 일반 사용자 업무 계정인 st01, st02, st03 계정은 ftp 접속을 불허.
<사용 명령어>
1. user_list
- ftp의 접근 제한 파일은 user_list와 ftpusers가 있는데 여기서는 user_list를 사용.
- userlist_file(/etc/vsftpd/user_list)에 등록된 계정에 대한 접속 제어는 userlist_enable과 userlist_deny에 따라 결정.
- userlist_enable와 userlist_deny 모두 yes일 경우 user_list에 등록된 사용자는 접속이 불허
- userlist_enable는 yes, userlist_deny는 no일 경우 user_list에 등록된 사용자만 접속이 가능
- userlist_enable가 no로 설정 되 있을 경우 user_list 파일은 사용되지 않음(userlist_deny 설정은 무관)
# vi /etc/vsftpd/vsftpd.conf
# userlist_enable = YES
# userlist_deny = YES
// userlist_enable와 userlist_deny가 모두 yes로 설정 되어 있기때문에 user_list 파일에 등록된 사용자는 접속이 불허
// userlist_enable은 이미 적혀 있음.
# vi /etc/vsftpd/user_list
st01
st02
st03
추가
// st01, st02, st03를 접속하지 못하게 설정
4. 보안 명세 구현 확인
4-1. 자료 배포 디렉토리 설정 확인
- 일반 계정은 user1로 확인
- user1로 ftp 접속이 가능
- 자료 배포 디렉토리인 ftp 디렉토리 mount 확인
4-2. 일반 계정의 chroot 적용 확인
- chroot가 적용되어 자신의 홈 디렉토리를 벗어날 수 없는 것을 확인
4-3. ftpadmin 계정의 파일 업로드 가능 여부 확인
- ftpadmin이 아닌 계정에서는 파일의 업로드가 불가능
- ftpadmin 계정에서는 파일이 업로드가 되는 것을 확인
4-4. st01, st02, st03의 ftp 접속 가능 여부 확인
# systemctl restart vsftpd.service
// 서비스 재시작후 st01, st02, st03 계정으로 접속 확인. 접속이 안 되는 것을 확인할 수 있음.
'Security > 물리보안&보안 요구 분석&거버넌스' 카테고리의 다른 글
정보 보안 거버넌스 1. Security management practices (0) | 2020.02.21 |
---|---|
보안 명세 구현(NFS 서버) (0) | 2020.02.10 |
보안 요구 분석 (2)요구 분석 명세화 (1) | 2020.02.06 |
보안 요구 분석(1) (0) | 2020.02.04 |
물리 보안 (0) | 2019.12.20 |