보안키
- 데이터를 암호화하거나 복호화하는데 사용되는 암호화 기술
1) 대칭키
- 데이터를 암호화하고 복호화하는데 같은 키를 사용한다
- 암호화, 복호화 키를 같은 키를 사용하므로 속도가 빠르다
- 대량의 데이터를 처리하는데 유리하다
- 키 노출에 대한 리스크가 크다
키를 안전하게 교환할 수 있는 수단이 필요하다
2) 비대칭키
- 데이터를 암호화하는 공개 키, 데이터를 복호화하는 개인 키의 한 쌍으로 사용된다
- 공개 키 모두에게 공개되어 누구나 접근 가능하다
개인 키 사용자가 안전하게 보관하고 사용한다
- 공개 키는 노출되어도 개인 키만 노출되지 않으면 안전하다
- 공개 키로 암호화된 데이터는 해당 공개 키의 개인 키로만 복호화 가능하다
* SCP 명령어
ssh + copy
- ssh 원격 접속 프로토콜을 이용한 파일 복사
$ scp [옵션] 원본파일 <원격지 사용자>@<원격지 IP>:<원격지 경로>
---------------------------------------------------------------------------
DHCP ( Dynamic Host Configuration Protocol )
- 동적 호스트 설정 프로토콜
- 네트워크에서 클라이언트 컴퓨터에게 네트워크 설정을 할당해주는 프로토콜
- 클라이언트가 네트워크에 대한 지식이 없어도 네트워크를 사용할 수 있다
[패키지 이름]
isc-dhcp-server
[설정 파일]
/etc/dhcp/dhcpd.conf
[데몬 이름]
isc-dhcp-server
[포트]
67/udp
* 윈도우 ipconfig 명령어
ipconfig
- 네트워크 정보 확인
ipconfig /all
- 네트워크 상세 정보 확인
ipconfig /release
- IP 주소 반납
ipconfig /renew
- IP 주소 재할당
* 고정 IP 부여
- MAC 주소 기반으로 장치를 식별 후 네트워크 설정 부여
- 클라이언트의 MAC 주소가 필요하다
--------------------------------------------------------------------------------------
다음에 정보에 맞춰 DHCP 를 구성 후 클라이언트에게 부여하시오
( 클라이언트는 2개 사용, 필요 시 클론 사용 )
DHCP 서버 - X.X.X.10
DHCP 대역 - X.X.X.100 ~ X.X.X.109
게이트웨이 : X.X.X.2
서브넷 마스크 : 255.255.255.0
DNS : 168.126.63.1
W10-1 -> 자동부여
W10-2 -> X.X.X.105 고정 부여
작업 완료 후 클라이언트로 인터넷 작동 확인
$ apt install -y isc-dhcp-server
- 패키지 설치
$ ufw enable
- 방화벽 활성화
$ ufw allow 22/tcp
- ssh 포트 열기
$ vi /etc/dhcp/dhcpd.conf
- 설정 파일 열기
===================
subnet 192.168.111.0 netmask 255.255.255.0 {
range 192.168.111.100 192.168.111.109;
option routers 192.168.111.2;
option subnet-mask 255.255.255.0;
option domain-name-servers 168.126.63.1;
host raspberry {
hardware ethernet <MAC 주소>;
fixed-address 192.168.111.105;
}
}
====================
$ systemctl restart dhcpd
$ ufw allow 67/udp
- DHCP 방화벽 포트 열기
FTP(File Transfer Protocol)(/etc/vsftpd.conf): 파일 전송 프로토콜
-연결 방법 : ftp [주소]
- FTP 서버 포트
20 Port : Data Port
-실질적인 데이터를 전송하는데 사용되는 포트
21 Port : Command Port :
-클라이언트, 서버간의 제어를 위한 명령들을 전송하기 위한 포트
-파일 조회, 파일 업로드 명령, 파일 다운로드 명령등이 전송된다.
- FTP 서버를 구축해 서버, 클라이언트간의 데이터를 안전하게 전송할 수 있다.
- FTP 서버 종류
1) 로컬 FTP 서버
- FTP 서버가 구축된 운영체제의 일반 사용자들이 접속해 사용하는 설정
- 일반 사용자들의 보안 인증을 사용한다
2) 익명 FTP 서버
- 익명 사용자가 FTP 서버에서 파일을 공유하기 위해 사용하는 설정
- anonymous 계정을 통해 특별한 인증 절차 없이 서버에 접속할 수 있다
- 익명 계정 로그인 위치 : /srv/ftp
- [패키지 이름] : vsftpd
<FTP 클라이언트 명령어>
-get <파일명> : 다운로드
-put <파일명> : 업로드
-mget <파일명> <파일명2>.... : 복수의 파일을 다운로드
-mput <파일명> <파일명2>.... : 복수의 파일을 업로드
-dir : 파일 목록 확인
-pwd : FTP상의 현재위치 확인
-cd : FTP 상의 디렉터리 이동
-lcd : 클라이언트 상의 디렉터리 이동
-quit : FTP 종료
<기본 설정>
25. anonymous_enable = NO : 익명 계정 접속 설정 YES -> 허용, NO -> 거부
28. local_enable =YES : 로컬 계정 접속 설정 YES -> 허용, NO -> 거부
31. write_enable=YES : 로컬 계정 파일 업로드 설정 YES -> 허용, NO -> 거부
35. local_umask = 022 : FTP를 통해 업로드디는 파일들의 UMASK값
40. anon_upload_enable = YES : 익명 계정 파일 업로드 설정
103. ftpd_banner = ~~ : FTP 배너
*banner_file = /etc/ftp_banner : 배너 옵션 추가 , 해당 배너 파일의 내용으로 배너 내용을 추가하고 존재해야한다.
*chroot : 접속한 사용자의 홈 디렉터리를 "/" 최상위 디렉터리로 인식시키는 설정, 보안상 많이 사용
[chroot 설정]
-chroot_local_user=NO : chroot 활성화 YES -> 비활성화 NO -> 활성화
-chroot_list_enable=YES : chroot 설정 적용 받을 사용자를 지정할 chroot list 활성화
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
FTP 액티브 / 패시브 모드
1) 액티브 모드
-클라이언트가 서버에게 데이터 전송을 요청할 때, 서버가 클라이언트로 접근해 데이터 전송을 시도한다.
2) 패시브 모드
- 클라이언트가 서버에게 데이터 전송을 요청할 때, 클라이언트가 서버로 접속하여
데이터를 받아온다
- 클라이언트의 방화벽 설정을 필요로 하지 않는다
- 데이터 전송에 사용되는 포트는 1024 ~ 65535 포트 중 임의의 포트를 결정해
사용한다
[패시브 모드 설정]
pasv_enable=YES
- 패시브 모드 활성화
pasv_min_port=65010
pasv_max_port=65000
- 패시브 포트 대역 설정
FTP 실습 1
0. 방화벽 켜져 있는 상태로 작업
1. 로컬 계정 user1, user2 사용
2. 익명 계정 로그인 가능
3. 로그인 시 배너 출력
4. 로컬 계정 로그인 가능, 파일 업로드 가능
5. user1 은 chroot 적용, user2 는 미적용
6. FTP 설정에 필요한 파일은 모두 /ftp 디렉터리 안에 생성할 것
$ ufw enable
- 방화벽 활성화
$ ufw allow 22/tcp
- ssh 포트 열기
$ useradd -m user1
$ useradd -m user2
$ passwd user1
$ passwd user2
- 계정 설정
$ apt install -y vsftpd
- 패키지 설치
$ vi /etc/vsftpd.conf
- 설정 파일 열기
25 anonymous_enable=YES
28 local_enable=YES
31 write_enable=YES
104 banner_file=/ftp/banner
123 chroot_local_user=NO
124 chroot_list_enable=YES
126 chroot_list_file=/ftp/chroot_list
127 allow_writeable_chroot=YES
$ mkdir /ftp
$ vi /ftp/banner
$ vi /ftp/chroot_list
- FTP 관련 설정 파일 생성
$ systemctl restart vsftpd
$ systemctl status vsftpd
- 데몬 재실행 및 확인
$ ufw allow 20/tcp
$ ufw allow 21/tcp
- FTP 방화벽 설정
SFTP(Secure FIle Transfer Protocol)
-SSH + FTP
-FTP를 보안 측면으로 발전시킨 형태
-FTP 통신을 SSH기반으로 암호화 시켜 통신한다.
오토 마운트(Auto Mount)(/etc/fstab)
-파일 시스템을 자동으로 마운트 하는 기능
-시스템 종료 과정에서 모든 마운트 된 장치는 마우늩 해제 그 후 부팅 과정에서 자동으로 마운트 되도록 설정 된 장치만 마운트 되어 부팅
-마운트가 가능한 장치라면 별도의 설정을 통하여 오토 마운트가 가능하다
- 기본 설정 파일을 통한 오토 마운트(/etc/fstab파일에 오토 마우트 설정을 작성)
-서비스를 이용한 오토마운트
-autofs 등의 오토 마운트를 지원하는 서비스를 이용한 오토 마운트
-리눅스가 부팅되면서 /etc/fstab 파일의 마운트 관련 정보를 읽으면서 부팅
-file System : 오토 마운트 할 장치 파일의 이름을 절대 경로로 작성
-mount point : 장치를 오토마운트 할 디렉터리르 절대 경로로 작성
-type : 오토 마운트 할 장치의 파일 시스템 형식을 작성
-option : 오토 마운트에
NFS(Network File System)(/etc/exports)
[패키지 이름] : nfs-kernel-server
-서로 다른 시스템 간 파일 및 디렉터리르 공유하기 위한 시스템
-네트워크를 통하여 다른 장치의 파티션을 마운트 할 수 있다.
-용량을 제공하는 장치 NFS Server, 용량을 제공받는 장치를 NFS Client로 분류
-> NFS Server에서 NFS 관련 설정을 완료 한 후, NFS Client에서 Mount명령으로 연결
/nfs_server 192.168.111.20(rw,no_root_squash,no_subtree_check,sync)
:/nfs_server : 공유할 디렉터리(장치명을 통해 공유하는 것이 아닌 디렉터리를 통해 공유한다)
:192.168.111.20 : 공유 받을 클라이언트, 클라이언트 IP, 10.0.0.0/24와 같은 네트워크 ID를 통해 네트워크 대역 지정 가능
:rw : read writ(ro : read only)
:no_root_squash(Clinet가 root계정으로 접근시 Server에서 root취급)
-root_squash(Client가 root 계정으로 접근 시 Server에서 root취급하지않는다)
-all_squash(Clinet가 일반 계정으로 접근 시 일반 계정으로 취급하지않는다)
-no_all_squash(Client가 일반 계정으로 접근 시 일반 계정으로 취급)
:no_subtree_check : NFS연결후 공유된 디렉터리의 하위 디렉터리를 대상으로 명령이 전달되면 하위 디렉터리에 대한 검사를 수행하지 않겠다.
:sync : 데이터 동기화
[클라이언트 패키지] : nfs-common
mount -t nfs 192.168.111.10:/nfs_server /nfs_client