- 리눅스 개념
- 리눅스
- 개념
- 컴퓨터 운영체제
- 애플리케이션이 실행되는 환경
- 기능
- 하드웨어 감지 및 준비
- 프로세스 관리
- 메모리 관리
- 요청된 메모리의 처리 방식을 결정.
- 사용자 인터페이스 제공
- 사용자 계정 생성 및 사용자 간 경계 설정
- 사용자 간 및 그룹 간 계정 분리
→ 사용자가 자신의 파일과 프로세스 제어할 수 있는 토대 - 파일시스템 제어
- 파일시스템 구조는 리눅스 운영체제와 한 몸(모듈로 로드되기도 함)
- 각종 파일과 디렉터리에 대해 그 소유권과 접근 권한 제어
- 사용자 접근 권한 및 인증 방식 제공
- 관리용 유틸리티 제공
- 서비스 시작
- 웹 페이지를 볼 수 있는 웹 브라우저가 포함됨과 동시에 리눅스 자체가 웹 페이지를 다른 시스템에 제공하기 위한 서버 컴퓨터가 되기도 함
- 프로그래밍 도구 제공
- 대기업에서 주로 사용하는 리눅스의 고급 기능
- 클러스터링
- 다수의 시스템이 외부에서 하나의 시스템처럼 보이도록 클러스터 구성
- 서비스는 클러스터 노드들이 주고받을 수 있도록 구성
- 클러스터 노드에서는 서비스가 방해받지 않고 지속적으로 실행되는 것처럼 보임
- 가상화
- 가상화 호스트에서는 다른 리눅스 시스템을 비롯하야 마이크로소프트 윈도우, BSD 등 다른 운영체제까지도 가상 게스트로 실행 가능
- 외부에서는 가상 게스트가 개별 컴퓨터로 보임
- KVM과 젠(Xen)
- 클라우드 컴퓨팅
- 대규모 가상화 환경 관리
- 오픈 스택(OpenStack) 또는 레드햇 엔터프라이즈 가상화
- 다수의 가상화 호스트
- 가상 네트워크
- 사용자 및 시스템 인증
- 가상 게스트
- 네트워크 기반 스토리지
- 실시간 컴퓨팅
- 우선순위 높은 프로세스들을 빠르고 예측 가능하도록 실행하기 위해
- 전문 저장소
- 전문화된 로컬 및 네트워크 스토리지 인터페이스 사용 가능
- 공유 스토리지 장치
ex. Ceph와 GusterFS - 차이점
- 운영체제를 만들 때 사용했던 코드 볼 수 있다
- 사용 목적에 부합하지 않을 경우 가장 기본적인 수준에서 변경할 수 있고 운영체제를 직접 빌드하여 사용할 수 있다.
- 코드를 통해 버그를 찾는다거나 보안 취약점을 찾아서 확인하고 무슨 일을 하는지 알 수 있다.
- 필요한 소프트웨어를 운영체제에 직접 끼워넣을 수 있다.
- OSI(Open Source Initiative) 오픈 소스 정의
- 기본 목적: 소스 코드를 함께 사용
- 규칙 for 오픈 소스 코드의 자유와 무결성 보호
- 자유 배포
- 소스 코드
- 파생 작업
- 저작자의 소스 코드 무결성
- 개인 또는 단체에 대한 차별 금지
- 연구 분야에 대한 차별 금지
- 라이선스 배포
- 라이선스는 특정 제품으로만 국한되어서는 안 된다
- 라이선스는 다른 소프트웨어를 제한해서는 안 된다
- 라이선스는 기술 중립적이어야 한다
- 리눅스 배포판
- 슬랙웨어
- 디스크 포맷
- 스왑 공간 활성화
- 사용자 계정 만들기
- 크노픽스
- 젠투
- 맨드레이크 → 맨드리바
- 레드햇 → 기업용(레드햇 엔터프라이즈 리눅스, RHEL) 및 개인용(페도라)
- 초기 배포판 특징
- RPM 패키지 관리
- 소프트웨어 패키지에 파일 및 패키지 정보 함께 넣음
ex. 누가 만들었는지, 문서화 파일인지 설정파일인지 등 - 소프트웨어 패키지 정보가 로컬 RPM 데이터베이스에 저장
- 설치, 검색, 업데이트, 제거 편리
- 단순 설치
- 그래픽 기반 시스템 관리
- RHEL
- 빠른 트랜잭션 처리
- 클러스터나 가상호스트로 배치될 수 있는 시스템
- JBoss → 자바 기반 애플리케이션을 인터넷이나 기업 인트라넷에 배포하기 위한 미들웨어 제품
- 레드햇 엔터프라이즈 가상화
→ 가상화 호스트 + 각종 관리자 + 게스트 컴퓨터
→ 사용자가 직접 거대한 가상 컴퓨팅 환경을 설치, 실행, 관리, 마이그레이션, 서비스 해제 등 가능 - 레드햇 클라우드폼 → 클라우드 관리 플랫폼
- 도커(Docker) 형태의 리눅스 컨테이너와 RHEL 아토믹
→ 클라우드용 애플리케이션 컨테이너화 방법 제공 - 페도라
- 데비안 GNU/리눅스 배포판
- 리눅스 민트
- elemetary OS
- 조린(Zorin)
- LXLE
- 칼리(Kali)
- 우분투
- 단순하고 사용하기 쉬운 그래픽 기반 인스톨러와 도구 채용
- 서버 패키지 제공
- 완전한 데스크톱 시스템
- 레드햇 공인 전문가
- RHCSA → 기본적인 시스템 관리 기술
- 기본적인 도구 이해
- 셸(bash)에 대한 실무 지식
- 설명에 대한 올바른 명령 문법 사용하고 입출력 리디렉션(<, >, >>) 수행
- 원격 및 로컬 시스템 로그인
- 파일의 권한이나 소유권 생성, 이동, 복사, 링크, 삭제, 변경
- man 페이지와 /usr/share/doc에서 원하는 정보 찾을 수 있어야 함
- 실행 시스템 운영
- 리눅스 부팅 프로세스 이해
- 단일 사용자 모드 진입
- 시스템 종료
- 재부팅
- 타깃(=런레벨, runlevel에 해당하는 새로운 용어) 변경 수행
- 프로세스 식별하고 값을 변경하거나 요청을 받으면 프로세스 죽일 수 있어야 함
- 가상 머신 및 네트워크 서비스 시작 및 중지
- 로그 파일 찾아 해석 가능
- 로컬 저장소 구성
- 디스크 파티션 설정에서 물리적 볼륨의 생성
- LVM(논리적 볼륨 관리)구성
- 암호화(LUKS)
- 파티션을 파일시스템이나 스왑 공간으로 설정하여 마운트하거나 부팅 시 활성화할 수 있어야 함
- 파일시스템 생성 및 구성
- 여러 파일시스템을 만들고 자동으로 마운트 할 수 있어야 함
- 정규 리눅스 파일시스템(ext2, ext3, ext4 등),
LUKS 암호화 파일시스템,
네트워크 파일시스템(NFS 및 CIFS) 등을 다룰 수 있어야 함 - set group ID 비트 기능과 ACL(Access Control List) 사용하여 협업 디렉터리 만들 수 있어야 함
- LVM 사용하여 논리 볼륨 크기 늘릴 수 있어야 함
- 시스템 배포 및 구성, 유지 관리
- 네트워크 구성, cron 작업 생성, 기본 런레벨 설정, RHEL 시스템 설치 등
- 간단한 HTTP 및 FTP 서버 구성 능력
- 레드햇 네트워크 / 원격 보관소(repository )/ 로컬 파일시스템에서 소프트웨어 패키지를 가져다 설치할 수 있는 능력
- 새로운 커널을 올바로 설치할 수 있어야 함
- 시스템 시작 시 여러 커널 중 하나를 선택하여 부팅시키는 능력
- 사용자 및 그룹 관리
- 사용자 및 그룹 계정을 추가, 삭제, 변경
- change 명령을 사용한 암호 기간 설정 반드시 숙지
- LDAP 디렉터리 서버로 연결하여 시스템 인증할 수 있도록 구성하는 능력
- 보안 관리
- 기본적인 방화벽(firewalld 또는 system-config-firewall, iptables) 설정 방법과 SELinux 사용 방법 이해
- 키 입력 기반 인증 위한 SSH 설정 능력
- RHCE
- 시스템 구성과 관리에 필요한 넓은 범위의 주제
- 본딩(bonding)
- 네트워크 링크 종합 능력
- IP 트래픽 라우팅
- 특정 네트워크 주소의 정적 라우트 설정 능력
- 방화벽
- 웹, FTP, NFS 등의 서비스를 제공하는 시스템에서 특정 포트의 트래픽을 차단하거나 허용할 수 있어야 함
- 접속자의 IP 주소에 따라 특정 서비스를 차단하거나 허용할 수 있어야 함
- 커널 turnable 파라미터
- /etc/sysctl.conf파일과 sysctl 명령으로 커널 turnable 파라미터 설정할 수 있어야 함
- /etc/sysctl.conf 파일을 활용하여 /proc/sys에서 IP 포워딩 설정 변경할 수 있어야 함
- 커버로스(Kerberos) 인증
- 커버로스 방식을 사용하여 RHEL 시스템 사용자를 인증할 수 있어야 함
- iSCSI(internet Small Computer System Interface)
- iSCSI는 컴퓨팅 환경에서 데이터 스토리지 시설을 이어주는 IP 기반의 스토리지 네트워킹 표준
- 부팅 시 iSCSI 타깃을 마운트하는 iSCSI 타깃 및 이니시에이터로 시스템을 설정할 수 있어야 함
- 시스템 보고
- sar 등의 기능을 사용하여 시스템의 메모리, 디스크 액세스, 네트워크 트래픽, 프로세서 활용 등에 관한 보고서 작성 능력
- 셸 스크립팅
- 입력을 받고 이를 다양한 방법으로 출력하는 셸 스크립트를 만들 수 있어야 함
- 원격 로그 처리
- 로그 메시지를 수집하여 이를 원경 로깅 서버에 분배할 수 있도록 rsyslogd 기능을 구성할 수 있어야 함
- 로깅 클라이언트에서 로그 메시지를 수집할 수 있도록 원격 로깅 서버 기능을 구성할 수 있어야 함
- SELinux
- 모든 서버 구성의 보안이 SELinux로 올바르게 유지되고 있는지 강제(Enforcing) 모드의 보안 강화 리눅스(Security Enhanced Linux)를 사용하여 확인할 수 있어야 함
- 네트워크 서비스 설치하기와 구성하기
- 목표
- 모든 네트워크 서비스에 대해 정해진 단계를 밟아 각 서비스에 필요한 패키지를 설치하고 액세스를 허용할 수 있도록 SELinux를 설정할 수 있어야 함
- 부팅 시 서비스가 시작하도록 설정하고, 호스트나 사용자가 제공하는 서비스의 보안을 유지할 수 있어야 함
- 구체적인 서비스
- 웹 서버
- 아파치 서버(HTTP/HTTPS) 구성 능력
- 가상 호스트를 설정하고 CGI 스크립트를 배포할 수 있어야 함
- 사설 디렉터리를 사용하고 특정 리눅스 그룹에서 콘텐츠를 관리할 수 있도록 해야 함
- DNS 서버
- DNS 쿼리를 다른 DNS 서버로 전달할 수 있는 캐시 전용 이름 서버로 동작할 수 있도록 DNS 서버(bind 패키지)를 설정할 수 있어야 함.
- 마스터나 슬레이브 영역까지 구성할 필요 없음
- NFS 서버
- 특정 디렉터리를 특정 클라이언트 시스템과 공유하여 그룹 간 협업에 사용될 수 있도록 NFS 서버를 구성할 수 있어야 함
- Windows 파일 공유 서버
- 특정 호스트 및 사용자에게 SMB 공유 기능을 제공할 수 있도록 리눅스(삼바, samba)를 설정할 수 있어야 함
- 이를 통해 그룹 간 협업을 구현
- 메일 서버
- 로컬 호스트 외부에서 보낸 메일을 수신할 수 있도록 postfix와 sendmail을 구성할 수 있어야 함
- 스마트 호스트(smart host)로 메일을 전달(릴레이)할 수 있어야 함
- 보안 셸 서버
- 로컬 시스템에 대한 원격 로그인
- 키 입력 기반 인증을 허용할 수 있도록 SSH 서비스(sshd)를 설정할 수 있어야 함
- sshd.conf 파일을 필요에 따라 구성하는 능력
- 네트워크 시간 서버
- NTP(Network Time Protocol) 피어들과 시간을 동기화할 수 있도록 NTP 서버(ntpd)를 구성할 수 있어야 함
- 데이터베이스 서버
- 마리아DB 데이터베이스를 구성하고 다양한 관리방법을 이해하여 MariaDB.org 사이트로부터 마리아DB를 구성할 수 있어야 함
1. 리눅스 개념
피드 구독하기:
댓글 (Atom)
-
자료 종류와 표현 자료의 표현 수치 자료 정수 표현(고정소수점 수의 표현) 10진 연산 팩(packed) 연산 언팩(unpacked) 연산 2진 연산 부호화 크기 1의 보수 2의 보...
-
a. 정의 i. 데이터 타입을 추상적*(수학적)으로 정의한 것 1) 추상 = 어떤 물체나 현상의 중요한 특징만을 추출하여 표현하는 것 2) 가장 중요한 추상의 타입 i) 부분으로 나누기( Has-A abstraction) → 요소(c...
-
//코드 참조 사이트: http://javannspring.tistory.com/174 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
댓글 없음:
댓글 쓰기