Contents
🐧 리눅스와 쉘, 네트워크 기본 정리🐧 리눅스와 쉘, 네트워크 기본 정리
1. 🖥️ 터미널과 쉘
- 터미널: 명령어를 입력하는 인터페이스
- 쉘(Shell): 명령어 해석기, 입력된 명령을 OS에 전달
- 명령어 체계는 OS 계열마다 다름 (ex. 유닉스, 리눅스, 윈도우)
2. 🧱 리눅스 개요
- 리눅스(Linux): 유닉스에서 파생된 오픈소스 운영체제
- 용도 차이
- 유닉스: 주로 대형 서버 컴퓨터용
- 리눅스: 개인용 컴퓨터에 적합
- 라이선스: GPL (소스코드 공개 의무, 자유 사용/배포 가능)
3. 🧠 리눅스 구조
- 커널(Kernel): OS의 핵심, 하드웨어 자원 제어 및 최적화
- 쉘 및 명령어: 사용자 ↔ 커널을 연결하는 수단
- 명령어를 통해 시스템 설정, 프로세스 제어 등 가능
4. 🌱 리눅스 배포판 계열
📦 Red Hat 계열 (RPM 기반)
- Red Hat → 엔터프라이즈/서버용
- CentOS: Red Hat 무료판 (→ CentOS Stream으로 전환됨)
- Amazon Linux: AWS에서 최적화한 리눅스
- → 특징: 패키지 매니저
yum
또는dnf
사용
📦 Debian 계열 (DEB 기반)
- Debian: 안정성 중심
- Ubuntu: 사용자 친화적, 데스크탑/클라우드에서 인기
- Raspberry Pi OS (구 Raspbian): 라즈베리 파이용
- → 특징: 패키지 매니저
apt
사용
📦 Alpine 계열 (APK 기반)
Alpine Linux는 도커(Docker) 컨테이너 환경에서 특히 인기가 많은 경량 리눅스 배포판입니다. 다른 배포판들과는 근본적으로 다른 C 라이브러리를 사용하며, 최소한의 기능만을 담고 있어 작은 크기와 높은 보안성이 특징입니다.
- Alpine Linux: 작고 가벼운 컨테이너 환경에 최적화된 리눅스입니다.
→ 특징:
- 패키지 매니저
apk
사용:apk
는 Alpine Package Keeper의 약자로, 매우 빠르고 가벼운 패키지 관리자입니다.
musl
libc 사용: 대부분의 다른 리눅스 배포판이 사용하는glibc
대신musl
C 라이브러리를 사용합니다. 이 덕분에 이미지 크기가 극적으로 작아지지만, 가끔glibc
기반으로 빌드된 일부 프로그램에서 호환성 문제가 발생할 수 있습니다.
- 보안 중심: 최소한의 패키지만 포함하여 공격 표면이 적습니다.
이로써 리눅스 배포판 계열을 크게 세 가지로 분류할 수 있습니다.
- Red Hat 계열: RPM 기반,
yum
또는dnf
사용 (엔터프라이즈/서버에 적합)
- Debian 계열: DEB 기반,
apt
사용 (데스크톱/클라우드에 적합)
- Alpine 계열: APK 기반,
apk
사용 (컨테이너/경량 환경에 적합)
5. 🌐 네트워크 기본 개념
포트와 통신
- 포트 번호: 통신 통로, 특정 서비스를 식별
- 예: 22번 포트 → SSH (터미널 접속용)
인바운드 / 아웃바운드
- 인바운드(Inbound): 외부 요청을 받는 방향
- 기본적으로 닫혀 있음 (보안)
- 요청 시 반드시 인증 필요
- 아웃바운드(Outbound): 외부로 요청을 보내는 방향
- 기본적으로 모두 열려 있음
- 요청한 쪽만 응답 받기 때문에 추가 인증은 없음
6. 🧩 원격 접속과 인증
- 원격 터미널 접속 방식 예시
- Telnet: 오래된 방식, 보안 약함
- SSH: 현재 표준, 보안성 뛰어남 (22번 포트 사용)
- 인증 방식
- ID / Password
- 공개키(Public Key) 방식
- 인증 성공 → 세션(Session) 연결 → 터미널 명령어 사용 가능
Share article