📒 Linux

    [Linux] Alpine Linux란?

    Alpine Linux : BusyBox + APK(패키지 관리자) BusyBox는 리눅스 커널와 핵심 바이너리와 라이브러리만 포함 yum과 같은 패키지 관리자가 없어서, 소스코드 실행 파일을 직접 빌드해야함 일반적으로 임베디드 장치에 사용하기 위해 만듬 BusyBox 의 불편함을 해결하기 위해 만든 것이 바로 Alpine Linux이다. 단, Alpine Linux는 bash shell이 없고, 기본적으로 본 shell만 가지고 있다. $ docker run -it alpine:3 bash docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting c..

    [Linux] shell 변수(variable) : 매개변수

    shell 에서 변수를 선언할 때는 다른 프로그래밍 언어와 마찬가지로 = 을 사용한다. 쉘에서 스크립트로 매개변수를 보내줄 수도 있는데, 규칙은 아래와 같다 $0 : 현재 쉘 스크립트의 이름 $# : 위치 매개변수의 총 개수 $* : 모든 위치 매개변수 $@ : 큰 따옴표를 사용하였을 때를 제외하고는 $*와 동일한 의미 $1 ... ${10} : 사용가능한 위치 매개변수 a.sh 을 다음과 같이 작성하였다. #!/bin/sh echo "\$MSG = $MSG" echo "\$@ = $@" echo "\$0 = $0" echo "\$1 = $1" 실행할 수 있는 권한을 부여하고, shell script를 실행시켜보자. $ chmod +x a.sh $ ./a.sh $0은 shell script의 이름이 할당..

    [Linux] 데이터베이스 SQL : DML(Data Manipulation Language)

    📌INDEX 데이터베이스란? 데이터 베이스 설치 및 설정 SQL 문법 SQL 문법의 분류 WHERE 조건 LIKE와 함께 사용하는 와일드 문자 DML 구문 SELECT INSERT UPDATE DELETE ✔️ 데이터베이스란? 데이터를 효율적으로 저장/관리하기 위해 사용 1950년대에 미국에서 처음 사용(용어) 데이터베이스 종류 계층형 DB 관계형 DB 가장 광범위 하게 사용 ex) 오라클 DB, MariaDB 등 NoSQL ex) AWS DynamoDB 등 데이터 베이스의 특징 실시간 접근성 지속적인 변화 동시 공유 내용에 대한 참조 데이터 논리적 독립성 용어 설명 DB : 데이터베이스 DBMS : 데이터베이스 관리 시스템 DBA : 데이터 베이스 관리자 테이블 : 데이터가 저장된 객체 컬럼(Colum..

    [Linux] 리눅스 Web 서비스 : https

    👉미리 보고 와야할 글 📌INDEX HTTPS란? HTTPS 구성 및 실습 ✔️ HTTPS란? HTTPS(HTTP Secure) HTTP protocol 의 암호화된 버전 클라이언트와 서버 간의 모든 커뮤니케이션을 암호화하기 위하여 SSL이나 TLS을 사용 SSL (Secure Socket Layer) : 넷스케이프사에서 개발한 인터넷 보안 프로토콜 TLS (Transport Layer Security) : SSL이 표준화되면서 바뀐 이름 HTTPS 암호화 방식 클라이언트 -> 서버로 랜덤 데이터와 사용 가능한 암호화 방식을 보낸다. 클라이언트가 생성한 랜덤 데이터(32 byte) 서버 -> 클라이언트로 랜덤 데이터, 사용할 암호화 방식과 SSL 인증서를 보낸다 클라이언트는 서버에게 받은 인증서의 CA가..

    [Linux] 리눅스 Web 서비스 : apache

    📌INDEX 웹 서버란? apache apache 설정 apache 구성 apache 웹페이지 설정 가상 호스트(Virtual Hosts) 실습 ✔️ 웹 서버란? 웹(Web) 서버 웹 서비스(Web Service)를 제공하는 서버 인터넷만 연결되어 있다면, 어느 곳에서든 웹 서버에 방문 가능 네트워크를 통해 약속된 주소로 요쳥 시 지정된 컨텐츠를 제공 기본적으로 정적인 컨텐츠만 제공 별도의 구성 시 동적인 컨텐츠 제공 가능 모듈을 추가함으로써 ex) python, php 등 웹 서버의 기본적인 동작 웹 브라우저로 Client가 페이지 요청 HTTP (Hypertext Transfer Protocol)을 사용하여 웹 브라우저와 웹 서버간 의사소통 Client가 페이지 요청 시 웹 서버는 요청 받은 페이지를..

    [Linux] master/slave 설정

    👉미리 보고 와야할 글 📌INDEX Master/Slave 구조란? Master/Slave 구조 설정 Master 서버 설정 Slave 서버 설정 ✔️ Master/Slave 구조란? Primary Server(1차 네임 서버) : 해당 도메인을 관리하는 주 네임 서버 Secondary Server(2차 네임 서버) : 주 네임 서버(1차 서버)를 백업(backup)해주는 서버 Primary 서버가 비정상적으로 운영될 때 혹은 부하는 분산 시키기 위해 다수 존재 상시 Primary 서버의 data를 백업(backup) 받기 위해 동기화 설정 필요 Master/Slave 네임서버 : 마스터 네임서버가 동작하지 않을 경우, 슬레이브 네임서버가 마스터를 대신하여 클라이언트에게 도메인/IP주소 정보를 제공 Ma..

    [Linux] DNS : 서버 구성, 정방향·역방향 조회

    📌INDEX DNS란? DNS 관련 파일 /etc/hosts /etc/resolv.conf /etc/named.conf zone 파일 도메인 확인 명령어 nslookup host dig DNS 서버 DNS 서버 구성 과정 정방향 조회 역방향 조회 ✔️ DNS란? DNS(Domain Name Server)란 IP주소를 Domain 형식(문자열)으로 변환해주는 서비스이다 Domain Name이란? 네트워크에 연결되어있는 모든 시스템에는 숫자의 조합으로 구성되는 주소를 가짐 이러한 주소를 다 외우기는 불가능하므로, 알파벳으로 이루어지는 도메인 이름을 사용 ex) naver.com = 222.122.84.250 도메인 등록 원칙 도메인 이름은 영문자(a-z), 숫자(0-9) 10개, 특수기호(-) 1개를 합쳐 ..

    [Linux] 리눅스 방화벽 : firewalld

    📌INDEX 리눅스 방화벽이란? zone firewalld ✔️ 리눅스 방화벽이란? 리눅스 방화벽(firewall)이란 외부에서 시스템으로 접근하는 패킷을 차단하는 서비스이다 규칙을 이용하여 접근을 허용하거나 차단할 수 있다 방화벽(firewall)은 일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성 서로 다른 네트워크를 지나는 데이터를 허용/거부하거나 검열/수정하는 하는 하드웨어 또는 소프트웨어 장치라고 할 수 있다 iptables의 단점을 보완하기 위해 도입되었다 iptables : Netfilter 제어하는 도구를 사용하며, 설정을 변경하면 재시작해야한다는 단점이 존재 (Centos 7이전) firewall은 동적으로 방화벽 설정 변경이 가능하다 Runtim..

    [Linux] ssh와 키 기반 인증 방식

    ✔️ ssh란? ssh는 secure shell의 줄임말로, 보안적으로 취약했던 기존 telnet을 대체하기위해 설계되었다. telnet : 전통적으로 사용되어 온 원격 접속 서비스로, 암호화하지 않아(평문 전송) 정보 노출의 위험이 크다 OpenSSH secure shell(ssh) 란? 원격 접속 프로토콜 TCP/22번 포트 사용 패킷 전송 시 암호화된 패킷 전송 IP 및 사용자로 접속 허용/차단 설정 가능 RSA 공개키 암호화 기법 사용 Client가 Server에 접속 시도 시 공개 키를 전송 받음 전송 받은 공개 키는 .ssh/know_hosts 파일에 저장 ssh는 비대칭키 암호화 방식과 대칭키 암호화 알고리즘을 동시에 사용한다 보낼 때 암호화, 받을 때 복호화 ssh 서버 실행 파일: /et..

    [Linux] 네트워크 설정: nmcli, hostname

    📌INDEX NetworkManager 네트워크 설정 방법 4가지 1. 직접 편집하기 2. nmtui 3. 그래픽 도구 4. nmcli hostname ✔️ NetworkManager RHEL 6까지는 network.servie 사용 직접 네트워크에 연결하는 방식 인터페이스 카드에 직접 설정 NetworkManager란 RHEL 7부터 네트워크를 모니터링하고 관리하는 데몬 네트워크의 변경 사항을 탐지하고 설정해주는 역할을 수행 연결이라는 논리적인 설정(유동 ip(connect), 고정 ip 연결) 설정 파일: /etc/sysconfig/nework-scripts/ nmcli 명령을 통해 설정 파일 수정 가능 여러개의 연결 설정 파일로 네트워크 관리 가능 [root@localhost ~]# nmcli st..

    [Linux] rpm과 yum

    📌INDEX RPM Package Manager rpm 명령어 yum yum 명령어 repository 파일 설정 ✔️ RPM Package Manager RPM(RedHat Package Manager) 이란, 레드햇 계열의 리눅스 배포판에서 사용하는 프로그램(패키지) 설치관리 도구이다. 프로그램(패키지)을 쉽게 설치하기 위한 도구 아카이브에서 파일 시스템으로 추출된 소프트웨어로 작업하는 것보다 간단하다 설치된 패키지 확인 가능 제거된 패키지 파일 잔재 추척 설치된 소프트웨어의 지원 패키지 확인 시스템 로컬 RPM 데이터 베이스에 패키지 정보 저장 패키지 파일 이름 구성 패키지명과 사용되는 서비스명이 다를 수 있음 🔹 rpm 명령어 rpm [옵션] 옵션 -q : 쿼리 -a : 시스템에 설치되어 있는 모..

    [Linux] 부트 프로세스: system target, boot loader

    📌INDEX 리눅스 부트 프로세스 system target target 목록 출력하기 default target 확인 default target 설정 target 전환 root 비밀번호 변경하기 부트 로더(boot loader) 부트로더 커널 이미지 시간 부트로더 ID 및 PW 설정 설정 내용 부트로더 인식 ✔️ 리눅스 부트 프로세스 1. 시스템 전원 ON(power on) 모든 운영체제를 부팅하기 위한 첫 단계 2. BIOS 프로그램의 실행 POST(power on self test) : 부팅이 시작되면 컴퓨터는 가장 먼저 자체진단 기능을 통하여 컴퓨터 이상 유무를 검사 컴퓨터에 전원이 들어오면 먼저 전류는 CPU로 흘러 들어가게 되며, CPU는 BIOS 프로그램을 불러들이게 됨 BIOS 프로그램은 C..

728x90