대학교 2학년 1학기/리눅스 프로그래밍 (15) 썸네일형 리스트형 리눅스 보안 1. 정보 보안의 3요소 - 기밀성: 허가받은 사용자만이 해당 정보에 접근 - 무결성: 정보가 무단으로 변조되지 않았음을 의미 - 가용성: 필요할 때 인가를 받은 사용자가 정보나 서비스에 접근할 수 있는 것 2. 시스템 로그 로그: 커널과 리눅스 시스템이 제공하는 여러 서비스와 응용 프로그램이 발생시키는 메시지 3. 방화벽 관리 - 네트워크를 통한 외부의 접속을 차단하려면 방화벽을 사용 ufw 명령어: 방화벽을 설정 4. 보안 관리 도구 NMap: 내 서버나 원격의 서버가 사용 중인 포트, 운영체제 등을 스캔하여 출력 nmap 명령어: 네트워크를 탐색하고 보안을 점검 원격 접속과 FTP Protocol: 통신 쌍방 간에 정해놓은 규칙 IP 주소: 특정 컴퓨터에 부여된 주소 Port 번호: 컴퓨터 내에서 응용 분야별 구별 번호 Packet: 통신하는 상호간에 교환하는 데이터 표현 TCP: 두 개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 네트워크 프로토콜 UDP: IP를 사용하는 네트워크 내에서 컴퓨터들 간에 메시지들이 교환될 때 제한된 서비스만을 제공하는 통신 프로토콜 텔넷: 원격에서 리눅스에 접속하는 프로그램 - 서버의 이름은 telnetd cf) 설치: sudo apt-get install telnetd - 사용법: telnet을 입력하면 > 프롬프트가 뜨면서 텔넷 모드로 전환. FTP 서버: 파일을 하나의 장치에서 다른 장치로 전송하는 소프트웨어 프로토콜 - 리눅스에서 사.. 소프트웨어 관리 우분투 패키지 특징 - 바이너리 파일로 구성되어 있어 컴파일이 필요 없다 - 패키지의 파일이 관련 디렉터리에 바로 설치 - 패키지 삭제 시 파일을 일괄적으로 삭제 - 패키지를 바로 업그레이드할 수 있음 apt-get 명령어: 패키지를 관리한다. ex) apt-get update, apt-get install, apt-get upgrade, apt-get remove 파일 아카이브와 압축 파일 아카이브 - 파일을 묶어서 하나로 만드는 것 - 다른 시스템과 파일을 주고 받거나, 백업을 하기 위해서 아카이브 파일을 생성 tar 명령어: 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성 - 아카이브 생성: cvf ex) tar cvf chap9.tar week3 week5 - 아카이브 내용 확인: tvf ex.. 리눅스 부팅과 종료 리눅스 시스템의 부팅 과정 전원 ON -> 바이오스 단계 -> 부트 로더 단계 -> 커널 초기화 단계 -> systemd 서비스 단계 -> 로그인 프롬프트 출력 바이오스 단계: PC에 장착된 기본적인 하드웨어의 상태를 확인한 후 부팅 장치를 선택하여 로딩 부트 로더 단계: 여러 운영체제 중에서 부팅할 운영체제를 선택할 수 있도록 메뉴를 제공하고 리눅스 커널을 메모리에 로딩 커널 초기화 단계: 시스템에 연결된 장치들을 검사 systeemd 서비스 단계: 기존의 init 스크립트를 대체한 것으로 다양한 서비스를 동작 init 프로세스: 처음 생성되는 프로세스로서 PID 1번이다. 디렉터리들의 관리 정보를 통해서 순차적으로 필요한 프로세스들을 생성한다. - systemd로 대체된다. 리눅스를 종료하는 방법 -.. 프로그램 개발 도구 프로그램 개발 도구 (C언어) - 컴파일: gcc, make - 디버깅: gdb - 라이브러리 유지: ar gcc: 컴퓨터가 이해할 수 있는 기계어 형태로 변환하는 작업을 하는 툴 전처리 단계 -> 컴파일 단계 -> 어셈블 단계 -> 링크 단계 1. 전처리 단계 cpp: 소스파일의 #include와 #define과 같은 전처리기 부분을 처리. 헤더를 삽입하고 실행 문장의 매크로를 상수로 반환 2. 컴파일 단계 - 어셈블리어로 된 파일을 생성 (파일이 생성되지만 보통 디스크에는 저장되지 않음) 3. 어셈블 단계 - 어셈블리어 파일을 기계가 이해할 수 있는 오브젝트 파일로 변환 4. 링크 단계 - 오브젝트 파일은 라이브러리 함수에 해당하는 코드가 없어서 실행할 수 없다. 또한 여러 파일로 이루어진 프로그램의.. 사용자 관리 01. 사용자 계정 관련 파일 사용자 관리 - 사용자가 시스템에 접근할 수 있는 유일한 방법 - 시스템 관리자 입장에서도 사용자의 접근 권한을 통제할 수 있는 중요한 수단 /etc/passwd 파일 - 사용자 계정 정보가 저장된 기본 파일 /etc/passwd 파일의 구조 - 쌍점(:)으로 구분되는 일곱 개의 항목으로 구성 1. 로그인 ID: 사용자 계정의 이름 2. x: 사용자 암호를 저장하던 항목으로 요즘은 /etc/shadow 파일에 별도로 보관 3. UID: 사용자 ID 번호 (로그인 ID가 다르더라도 UID가 같으면 같은 사용자로 판단) 4. GID: 그룹 ID, 시스템에 등록된 그룹에 대한 정보는 /etc/group 파일에 저장 5. 설명: 사용자에 대한 일반적인 정보가 기록 6. 홈 디렉터리.. 쉘 스크립트 프로그래밍 (2) Test 명령어 - 문자열 비교나 파일 특성 검사에 사용 - 정수 비교에도 사용 가능 하지만 (( )) 표현이 더 편리함. 1. test expression - test 명령어에 의해 expression 검사 - 성공시 종료 코드0, 실패시 종료 코드1 2. [ expression ] - test와 거의 동일, 명령어이므로 [ 다음에 공백이 있어야 함 3. [[ expression ]] - Bash 내장 명령, 특수 문자 대치 없음, [[ 다음에 공백이 있어야 함 - 확장된 기능: &&, ||,괄호 사용 조건 표현 방법 (if, while, until) 1. 임의의 명령 - 성공적인 실행이면 true, 아니면 false 2. Test 명령 표현 방법 (숫자/파일/문자열 검사) 3. (( )) 표현 방법 .. 쉘 스크립트 프로그래밍 (1) 스크립트 프로그램의 실행 - 텍스트 파일로 작성 - 운영체제가 전용 인터프리터 프로세스를 실행 - 인터프리터 프로세스가 파일을 한 줄씩 읽어서 표현된 대로 실행 인터프리터의 실행 1. 인터프리터 직접 실행 2. 대상 프로그램을 명령어처럼 사용 - 대상 프로그램에 실행 가능 모드 추가 ex) chmod +x 파일 - 인터프리터 종류는 프로그램 속의 첫 줄에 지정 ex) #! /bin/bash - OS 커널에서 대상 파일을 읽는데 텍스트 파일이면 첫 줄에 지정된 인터프리터를 메모리에 적재, 실행하면서 지정된 프로그램 파일명을 인수로 전달 쉘 스크립트 작성 및 실행 1. vi 편집기로 쉘 스크립트 파일 작성 2-1. Bash로 실행 - Bash로 실행할 때에는 실행가능 모드 여부와 상관없음 ex) bash h.. 이전 1 2 다음