KT 에이블스쿨 복습
[0510 복습] IT 인프라_IT 보안, 리눅스, Putty 실습
리니끄적
2024. 5. 10. 19:00
IT 인프라
CH4. 서버와 스토리지 이어서
보안 기본
IT 보안
- 서버, 네트워크, 스토리지 등 IT 자산에 대한 무단 접근을 방지해 데이터를 보호
- 소프트웨어 또는 데이터의 도난, 손상, 서비스 중단 등으로부터 시스템을 보호
보안 유형
- 네트워크 보안: 네트워크 내부로 권한이 없거나 악의적인 사용자가 접근하지 못하게 차단
- 인터넷 보안: 브라우저에서 주고 받는 정보를 보호, 웹 기반의 애플리케이션의 네트워크 보안
- 엔드포인트 보안: 휴대폰, 태블릿, 노트북, 데스크탑 등 악성코드 방지
- 클라우드 보안: 클라우드 아키텍처 내 데이터와 정보를 보호
- 애플리케이션 보안: 애플리케이션 내 데이터, 코드 등이 해킹에 의해 도난, 변질되는 것을 방지
방화벽(Firewall)
- 미리 정의된 보안규칙에 의해 들어오고 나가는 네트워크 트래픽을 모니터링, 제어
- 신뢰할 수 없는 외부 네트워크간 장벽을 구성
- 서로 다른 네트워크를 지나는 데이터를 허용, 거부, 검열하는 기능을 갖춘 소프트웨어 또는 해당 소프트웨어를 구동하는 하드웨어 장비
방화벽(Firewall) 기능
- 접근 통제: 허용되는 서비스를 제외하고 외부에서 내부로 접속하는 것을 차단하는 기능
- 로깅: 규칙 변경사항, 관리자 접근 로그, 네트워크 트래픽 플로우 로그 등
- 인증: 허가된 사용자만 접근이 가능하도록 통제하는 기능
OS 계정
- 불필요한 사용자 계정 삭제: 이전 사용자, 의심스러운 계정 존재 시 삭제
- 패스워드 규칙 설정: 패스워드 길이, 변경기간 설정, 특수문자 사용 등
- root 계정 접근 설정: 일반사용자의 su명령 사용 제한, root 계정으로 ssh 접근 제한 등
백신 보안
- 악성코드를 탐지하고 치료하는 소프트웨어
ex) 바이러스, 웜, 트로이목마, 랜섬웨어, 애드웨어, 스파이웨어 등으로부터 보호 - 일반적인 기능: 악성코드 탐지, 시스템 분석, 맬 웨어 제거, 파일격리
- 백신종류
- Windows 백신: Norton, V3, McAfee, 알약, V3 등
- Linux 백신: Comodo, ClamAV 등
putty 실습(Linux, 리눅스)
- 윈도우키 + R로 실행창, cmd 입력 후
- cd C:\Windows\system32 > ipconfig /all 명령어로 cirtualbox 네트워크 어댑터 IP 확인 - ①
- Virtualbox 실행 후 로그인, ip a 명령어로 vm의 ip 확인 - ②
- ubuntu 설정 창 > 네트워크 > 고급 > 포트 포워딩에서 호스트 IP(①), 호스트 포트, 게스트 IP(②), 게스트 포트 입력
명령어
명령어 | 기능 |
sudo ufw enable | 방화벽 활성화 |
sudo ufw status | 활성화 확인 |
sudo ufw status verbose | UFW 상태 확인 |
sudo ufw allow ssh comment 'ssh' | 22번 포트(ssh)를 오픈하도록 방화벽 설정 |
sudo ufw delete allow ssh | ssh 설정 삭제 |
cat /var/log/auth* | grep Accepted | Local IP에서만 22번 포트 접속 허용해주도록 설정하기 위해 IP 확인 |
sudo ufw allow from <IP> to any port 22 | IP 기반 방화벽 설정 |
sudo apt-get update | 백신프로그램 설치를 위해 apt-get 레포지토리 업데이트 |
sudo apt-get install clamav | clamav 설치, y/n에서는 y 선택 |
clamscan -r /home | 설치한 프로그램으로 /home 디렉토리와 하위 디렉토리 검사 실시 |
clamscan -r /home --move=/virus | 검사 실시 및 감영된 파일은 /virus 디렉토리로 이동 |
clamscan -r /home --move | 검사 실시, 감염된 파일은 삭제 |
CH5. 고가용성 IT 인프라
인프라 구성도 제작 - draw.io
- 순서도, 구성도, 흐름도, 다이어그램, 조직도 등을 제작하는데 사용하는 설계 소프트웨어
- 회원가입 없이 무료로 사용 가능, Google Drive, Github 등 다양한 저장소에 저장하여 사용가능
- 웹으로도 쉽게 접근 가능
- 다른 도구들은 Cloudcraft, Cacoo, MS Visio 등이 있음
고가용성 개요
- High Availability, 높은 가용성
- 가용성이란? 서버와 네트워크 등 서비스가 정상적으로 사용 가능한 정도
- 서비스가 다운(장애)되지 않고 정상적으로 유지된 시간, 가용성 = 사용 가능한 시간 / 전체 시간으로 계산
가용성
- 주로 백분율화해 표기, 99%, 99.9%, 100%로 표현
고가용성 구현을 위한 솔루션 - 이중화
- 이중화: 시스템의 장애를 대비하는 등 안전성 강화를 위해 같은 시스템을 2개 이상으로 구현하는 구조
- 특정 지점에 문제가 발생하더라도 서비스를 계속 제공할 수 있게 지원
Active 시스템
- 시스템에 연결이 되어 정상적으로 동작을 하고 있는 시스템
Standby 시스템
- Active 시스템이 장애가 발생 시 Standby 시스템이 Active로 전환
Active-Active 이중화 구성
- 동일한 시스템을 구성해 시스템 모두를 Active로 유지하는 이중화 구성
Active-Standby 이중화 구성
- Standby 시스템을 대기 상태로 유지, Active 시스템에 장애 발생 시 Standby 시스템이 Active 시스템으로 승격
Failover
- Standby 상태였던 시스템이 Active 상태로 전환되는 기능
- Hot Standby Failover
: 기존 시스템 장애 시 즉각 Standby 시스템 사용 가능
: Active 시스템과 Standby 시스템의 구성이 같은 상태로 유지, Active 시스템 장애 시 즉시 Standby 시스템으로 교체 - Warm Standby Failover
: 기존 시스템 장애 시 Standby 시스템의 추가 설정 이후 사용
: Active 시스템과 Standby 시스템의 구성이 다른 상태로 유지, Active 시스템 장애 시 Standby 시스템으로 교체 후 기존 Active 시스템의 구성으로 변경 - Cold Standby Failover
: Standby 시스템을 정지(유휴) 상태로 유지하다가 기존 시스템 장애 시 수동으로 작동하여 사용
: Standby 시스템을 종료 상태로 유지, Active 시스템 장애 시 Standby 장비를 On하여 Active로 교체
로드밸런서
- 로드밸런싱(부하분산): 처리해야 할 업무, 요청, 트래픽 등을 나누어 처리하도록 분산하는 것
- L4 로드밸런서
: IP와 Port를 기준으로 부하분산
: 라운드 로빈 - 순차적으로 서버에 트래픽을 할당하여 분산
: 가중치 라운드 로빈 - 가중치를 설정하고 가장 높은 가중치가 설정된 서버부터 트래픽 처리 (서버 간 스펙 차이가 있을 때 사용)
: 최소 연결 방식 - 가장 처리를 적게 한 서버에게 우선적으로 할당하여 분산하는 방식
: IP 해시 방식 - 를라이언트의 IP 주소를 기반으로 동일한 IP의 트래픽은 항상 동일한 서버로 연결 - L7 로드밸런서
: IP와 Port 외에 URL, Payload, Http, Cookie 등의 내용을 기준으로 부하 분산
: URL 스위칭 방식 - 특정 하위 URL 들은 특정 서버로 처리하는 방식
: 컨텍스트 스위칭 방식 - 특정 리소스 요청에 대해 특정 서버를 연결 (image file 요청은 요청한 image File이 있는 스토리지에 연결해줌)
로드밸런서의 기능
Health Check
- 서버들의 장애 여부를 주기적으로 모니터링
- 정상적으로 동작중인 서버로만 트래픽을 전달
NAT
- 공인 IP주소와 사설 IP 주소간 변환
DS
- Direct Server Return
- 로드밸런서를 거치지 않고 서버에서 클라이언트로 트래픽을 전달 (직통라인)
서버, 네트워크, 스토리지, 보안, 사이트 이중화
네트워크 이중화
- 네트워크 장비의 장애 발생 시 계속해서 통신이 가능하도록 예비 네트워크 장비를 배치하는 것
스토리지 이중화
- 스토리지 장비에 장애 발생 시 데이터로의 접근, 데이터의 손실을 최소화하도록 예비 스토리지를 배치하는 것
- RAID: Redunbant Array of Independent Disk
- 여러 개의 디스크에 데이터를 나눠서 저장하는 기술, 디스크 I/O 병렬화로 성능 향상, 데이터 복제로 인한 안정성 향상
RAID 0
- Striping, 최소 2개 이상의 디스크가 필요
- 데이터를 분할하여 저장, 다수의 디스크를 하나로 묶어 고용량, 고성능 효과, 하나의 디스크도 문제가 발생하면 RAID 기능 장애
RAID 1
- Mirroring, 최소 2개 이상의 디스크가 필요
- 데이터를 복제하여 저장, 디스크에 문제 발생 시, 다른 디스크에서 복제하여 복원 가능, 안정성은 좋으나 비용이 2배, n배 필요
RAID 5
- 가장 많이 사용되는 RAID 구성, Block 단위로 Striping 을 하고, 패리티를 순차적으로 다른 디스크에 저장
- 1개의 디스크 장애 시, 복구 가능(2개 이상 디스크 장애시 복구 불가)
- RAID 0에서 성능과 용량을 조금 줄이고, 안정성을 높인 레벨
- 최소 3개 이상의 디스크 필요
패리티 활용 복구 로직
- XOR 함수
: 디스크의 같은 열에 데이터 합이 짝수일 때 0, 홀수일 때 1 계산하여 패리티에 기록
: 디스크의 같은 열에 데이터 합이 짝수일 때 0, 홀수일 때 1 고장난 디스크의 데이터 복구
RAID 6
- RAID 5에서 성능과 용량을 좀 더 줄이고 안정성을 더 높인 레벨, 패리티를 2개 저장
- 2개의 디스크 장애 시 복구 가능(3개 디스크 장애 시 복구 불가)
- 조금 더 안전성을 높여야 하는 서버 구축 시 사용
RAID 10
- RAID 10은 RAID 0의 빠른 속도의 장점을 살리고, RAID 1으로 안전성을 보강
- 미러링 → 스트라이핑 방식
- 최소 4개의 디스크 필요
사이트 이중화
- 2개 이상의 데이터센터에서 동일한 인프라를 구현
Disaster Recovery (DR)
- 재해복구: 각종 재해 및 위험요소에 의해 구현되어있는 서비스나 시스템이 중단되었을 때 정상 상태로 복구시키는 것
- 재해: 지진 또는 화재, 기술장애, 사용자의 실수, 악의적인 무단 접근
- DR의 중요성: 비즈니스 연속성, 고객유지, 복구비용 절감
DR 복구 목표
- RTO: 복구 시간 목표 → 서비스가 중단된 시점부터 서비스가 복원된 시점에 대한 허용된 최대 시간
- 시간을 빨리 복구하길 원할수록 비용 더 많이 듦
- RPO: 복구 시점 목표 → 마지막으로 백업한 복구시점으로부터 서비스가 중단된 시점 사이의 최대 시간
- 백업의 주기를 짧게 설정할수록 비용 더 많이 듦