linux master

6 분 소요

시스템 관리 실무

사용자 및 그룹 계정 관리

  • 로그인 관련 명령어
    • w: 로그인 한 사용자가 하고있는 행위 확인(로그인시간, 원격 IP주소 …)
    • who: 로그인한 사용자 확인
    • users: 로그인한 사용자명만 출력 (로그인한 사용자들이 누구인지 빠르게 확인)
    • lslogins: 시스템의 모든 계정정보 출력
  • 사용자 관리 명령어
    • usermod: 사용자 수정(사용자명, 사용자홈 …)
    • passwd: 사용자 비밀번호 변경
      • -l: lock > 잠금
      • -d: delete > 비밀번호를 삭제
      • -u: unlock > 잠겼던 해제
  • 권한 관리 명령어
    • sudo(superuser do): 특정 사용자에게 관리자권한을 임시 부여. sudo가 허용된 명령어만 실행 가능(기록은 root로 남는게 아닌, 명령을 실행한 사용자명으로 남음)
    • su: 관리자 계정으로 로그인(보안 취약)
  • 계정 관리 설정 파일
    • /etc/login.defs: 계정 관리 및 정책(최소 길이, 최대 길이, 유효기간 …) 설정
    • /etc/passwd: 계정 정보
    • /etc/skel: 사용자가 생성될 때 복사되는 사용자 홈 디렉토리의 템플릿 파일
    • /etc/default/useradd: 사용자 생성시 디폴트값을 설정하는 파일 (홈 디렉토리, 기본 그룹 …)
    • /etc/group: 시스템의 그룹 정보를 저장
  • 인증 관리 시스템
    • PAM(Pluggable Authentication Modules): 인증 방법(비밀번호, 지문, 스마트카드) 및 정책 설정

파일 및 디렉터리 관리

  • 백업 명령어
    • dump: 시스템 백업, 복원 (증분 백업 0~9단계 지원)
    • dd: 데이터 변환 및 복사
    • cpio: 파일 압축 해 시스템을 백업, 복원. 손상된 부분을 제외하고 복구 가능.
    • rsync(remote sync): 원격 파일 동기화
  • 파일 권한 관리 명령어
    • setfacl(Access Control List): 파일에 대해 세밀한 접근 권한을 부여하기 위한 명령어 > 보안 강화
    • umask: 파일, 디렉토리가 생성될 때 기본 권한을 설정하는데 사용되는 값
    • chmod(change mode): 파일, 디렉토리의 권한을 변경하는데 사용되는 명령어
      • 옵션: u(user), g(group), o(other), a(all), r(read), w(write), e(execute), +, -, =
  • 파일 시스템
    • quota: 사용자, 그룹이 사용할 수 있는 자원을 관리하는 매커니즘
      • edquota: 쿼터 수정 in 에디터
      • setquota: 쿼터 수정 in cli
      • xfs_quota: XFS 파일 시스템용 쿼터 관리
    • XFS: Rhel 계열에서 사용되는 파일시스템
    • Set-UID: 파일 실행시 그 파일에 소유자 권한으로 실행
  • 설정 파일
    • /etc/fstab: 시스템이 부팅될 때 자동으로 마운트할 파일 시스템의 정보를 설정하는 파일

장치 및 프로세스 관리

  • 디스크 관리 명령어
    • mount: 볼륨을 시스템에 연결 ($ mount /dev/sdb1 /mnt)
    • umount: 볼륨을 시스템에서 연결 해제
    • fdisk: 디스크, 파티션 정보 조회 및 생성
  • 디스크 관리 시스템
    • LVM(Logic Volumn Manageer): pvcreate, vgcreate, lvcreate, lvextend 명령을 통해 물리, 논리 볼륨 생성 및 그룹핑, 논리 볼륨 확장 기능 수행 가능 ($ lvcreate -L 20G -n backup lvm0)
    • RAID: 여러 물리적 디스크를 논리적으로 묶어 마치 한개인것처럼 관리하는 기술
  • 프로세스 스케쥴링
    • NI (nice value): 프로세스 우선순위 조정 by 사용자 (범위: -20 ~ 19)
    • PRI (Priority): 커널 프로세스의 실행 우선순위
  • 스케쥴링 명령어
    • crontab: 주기적인 작업 예약 (-e: 편집, -l: 목록, -r: 삭제)
    • at: 1회성 작업 예약
    • atq: 예약된 작업 목록
    • atrm: 예약된 작업 삭제
  • 프린터 관리 명령어
    • lp: 프린터 작업요청 (System V)
    • lpc: 프린터 대기열 제어 (BSD)
    • lpstat: 프린터 대기열 상태 출력 (System V)
    • cancel: 프린터 작업 취소 (System V)
    • lpr: 시스템에서 프린터로 파일을 보내는 명령
  • 스캐너 명령어
    • XSANE(XScanner Access Now Easy): 스캐너 인터페이스 명령어
    • xcam: 카메라 장치에서 이미지를 캡처
    • scanadf: 자동 문서 공급기(ADF)를 사용하여 여러장 연속 스캔
    • scanimage: 이미지를 캡처하는 명령어
    • sane-fine-scanner: 시스템에서 스캐너를 검색하고 연결 확인
  • 시스템 관리 명령어
    • uname: 시스템 정보를 출력(커널버전, OS…) (-u: 호스트명, -o: OS명, -r: 커널버전, -s: 커널명)
  • 기타 시스템
    • CUPS(Common Unix Printing System): 인쇄 시스템 (프린터 설정, 대기열 관리)
    • ALSA(Advanced Linux Sound Architecture): 오디오 장치 관리
    • cgroups: 리눅스 자원제한 커널 기능

부팅 및 종료 관리

  • 프로세스 운영 방식
    • standalone: 부팅시 서비스가 메모리에 상주하며 클라이언트의 요청을 처리하는 방식
    • inetd(xinetd): 요청이 있을때, 필요한 서비스를 실행하는 서버 관리 프로세스. 메모리 사용량을 줄일 수 있으나 속도가 느릴 수 있음.
  • 커널 관리
    • dmesg: 커널 링 버퍼의 내용을 출력 (부팅 메세지, 하드웨어 오류 등)
    • sysctl: 커널 런타임 파라미터를 조회, 수정 (-w 옵션으로 값 변경)
    • ldd(List Dynamic Dependencies): 실행 파일이 필요로하는 의존성 출력
    • ldconfig(Dynamic Linker Runtime Binding): 공유 의존성 캐시를 갱신
    • ld.so.conf: 의존성 설정파일
  • 커널 컴파일
    • make mrproper: 소스 디렉토리 초기화 (clean)
    • make menuconfig: 커널 옵션 설정 도구. .config 파일 생성.
    • make modules: 커널 소스 컴파일(빌드)
    • make modules_install: 커널을 부팅하기위해 설치
    • modprobe: 커널 모듈을 로딩/언로딩 (-r 옵션으로 제거)
    • lsmod: 로딩된 모듈 목록
    • insmod: 커널 모듈 로딩(modprobe보다 저수준)
  • 커널 아키텍처
    1. 단일(monolithic): 리눅스에서 사용
    2. 마이크로(micro): 미닉스에서 사용
    3. 혼합(hybrid): 윈도우에서 사용
  • X 윈도우 시스템 (GUI)
    • startx: X윈도 실행 스크립트
    • systemctl set-default multi-user: 부팅시 CLI 모드로 설정
    • systemctl set-default graphical: 부팅시 GUI 모드로 설정
    • xhost: X서버에 대한 엑세스 제어
    • xauth: X서버 연결 인증

네트워크 및 서비스 관리 실무

TCP/IP 설정

  • 프로토콜
    • ARP (Address Resolution Protocol): 로컬 네트워크의 다른 호스트의 Mac주소를 확인
    • RPC (Remote Procedure Call): 원격 호스트의 프로시져를 호출
    • NTP (Network Time Protocol): 네트워크로 서버시간을 동기화하는 프로토콜
    • BOOTP(Bootsrap Protocol): 부팅시 IP주소와 네트워크 설정 정보를 자동으로 할당 > DHCP가 이를 대신함
    • RIP(Routing Information Protocol): 단거리 경로 탐색 프로토콜
    • RTP(Realtime Trasnport Protocl): 오디오, 비디오같은 실시간 데이터 전송을 위해 사용되는 프로토콜
  • PDU(Protocol Data Unit)
    • segment > Transfer Layer(4)
    • packet > Network Layer(3)
    • frame > DataLink Layer(2)
    • bit > Physical Layer(1)
  • 통신 명령어
    • ss: 소켓 분석, 네트워크 커넥션에 대한 정보를 표출
  • 네트워크 장치
    • docker0: Docker가 설치될 때 생성되는 가상 브릿지 네트워크 장치
  • IPv4 대역 클래스
    • Class A: 10.0.0.0/8
    • Class B: 172.16.0.0/12
    • Class C: 192.168.0.0/16
  • TCP 상태
    • SYN_RECV: 3-way handshake 과정에서 SYN-ACK 단계를 지난 후 서버의 대기상태
    • ESTABLISHED: 3-way handshake 과정에서 클라이언트로부터 ACK 패킷을 수신한 상태
  • 기타
    • Jumboframe: 1500바이트 이상 크기의 이더넷 프레임

네임 서비스(DNS)

  • DNS 서버 (BIND)
    • 호스트존: 특정 도메인의 모든 DNS정보를 관리 (A, AAAA 레코드)
    • 포워드존: 특정 도메인에 대해 다른 DNS서버로 조회를 위임 (MX, CNAME 레코드)
    • 리버스존: IP를 이용해 Domain을 찾기위한 DB (PTR 레코드)
  • 설정 파일
    • /etc/named.conf: DNS 서버의 주요 설정 파일
    • /etc/resolv.conf: 사용할 DNS 서버의 IP 주소를 설정
  • 관련 개념
    • acl(Acess Control List): BIND DNS 서버에서 특정 네트워크에 대한 접근 권한을 설정

웹 서비스(Apache, Nginx)

  • Apache
    • mod_userdir.so: 사용자가 자신의 홈 디렉토리에서 웹 콘텐츠를 제공할 수 있도록 하는 아파치 모듈
    • htpasswd: 아파치 사용자 인증 파일을 생성/관리하는 명령어
    • ServerRoot, ServerAdmin, ServerName: httpd.conf의 주요 지시어

메일 서비스(Postfix, Sendmail 등)

  • 메일 시스템 구성요소
    • MTA(Mail Transfer Agent): 메일 전송 (qmail, postfix, sendmail)
    • MDA(Mail Delivery Agent): 도착한 메일을 사용자 메일박스에 전달 (dovecot)
    • MUA(Mail User Agent): 사용자가 메일을 확인하는 클라이언트 (evolution, Outlook)
  • 메일 관련 명령어
    • mail: 메일 전송 명령어
  • 설정 파일
    • sendmail.cf: Sendmail의 주 설정 파일 (Cw, Fw, Dj, O 등의 지시어 사용)
    • /etc/mail/local-host-names: 메일 서버에서 로컬로 처리할 도메인 지정
    • /etc/mail/access: 특정 호스트나 도메인의 접근 제어
    • /etc/mail/virtusertable: 가상 도메인 및 사용자 매핑
    • /etc/aliases: 특정 계정으로 들어오는 메일을 다른 계정으로 전달

데이터베이스 연동(MySQL 등)

(현재 내용 없음)

기타 서비스

  • 파일 공유
    • SMB(Server Message Block): 파일, 프린터 공유 프로토콜
    • CIFS(Common Internet File System): SMB의 확장 버전
    • samba: Windows와 Linux/Unix 시스템 간 파일 및 프린터 공유를 위한 소프트웨어
    • NFS(Network File System): 네트워크를 통해 파일을 공유
      • /etc/exports: NFS 서버에서 공유할 디렉토리 설정
      • root_squash, no_root_squash, all_squash, no_all_squash: NFS 권한 매핑 옵션
  • 원격 접속
    • sshd(secure shell daemon): SSH 서버 데몬
    • in.telnetd: 텔넷 서버 데몬
    • VNC (Virtual Network Computing): 원격 데스크톱 프로토콜
  • 디렉터리 서비스
    • LDAP (Lightweight Directory Access Protocol)
  • 중앙 계정 관리
    • NIS(Network Information System): 사용자 계정, 호스트명 등 시스템 정보를 중앙에서 관리
      • /etc/yp.conf: NIS 클라이언트 설정 파일
      • ypbind: NIS 클라이언트 데몬
      • ypserv: NIS 서버 데몬
  • 파일 전송
    • vsftpd(very secure FTP daemon): FTP 서버 데몬
      • /etc/vsftpd/ftpusers: FTP 접근 불가 사용자 목록 (블랙리스트)

시스템 보안 및 최적화

보안 계정 관리

  • 가상화
    • VT-x: Intel의 하드웨어 가상화 기술
    • SVM: AMD의 하드웨어 가상화 기술
  • 가상화 관리 도구
    • libvirt: 가상화 관리 API 라이브러리
    • virt-manager: GUI 기반 가상 머신 관리 도구
    • virsh: CLI 기반 가상 머신 제어 명령어

방화벽 설정(iptables, firewalld)

  • 보안 명령어 및 도구
    • Tripwire: 시스템 파일의 변조 여부 확인
    • iptables: 리눅스 커널 방화벽(Netfilter)을 제어하는 도구
      • 테이블: filter, nat, mangle, raw
      • 체인: INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
    • nftables: iptables를 대체하는 최신 패킷 필터링 프레임워크
    • Suricata: 오픈 소스 침입 탐지 시스템(IDS)
  • 네트워크 보안 시스템
    • TCP Wrapper: 특정 서비스에 대한 접근을 호스트 기반으로 제어

로그 분석 및 모니터링

  • 로그 파일 종류
    • /var/log/secure: 보안 및 인증 관련 로그 (텍스트)
    • /var/log/lastlog: 각 사용자의 마지막 로그인 정보 (바이너리, lastlog 명령어로 확인)
    • /var/log/wtmp: 시스템 부팅, 종료, 로그인, 로그아웃 정보 (바이너리, last 명령어로 확인)
    • /var/log/btmp: 실패한 로그인 시도 (바이너리, lastb 명령어로 확인)
    • /var/log/xferlog: FTP 파일 전송 로그
    • /var/log/boot.log: 부팅 과정 이벤트 로깅
  • 로그 우선순위 (Priority)
    1. Emergency
    2. Alert
    3. Critical
    4. Error
    5. Warning
    6. Notice
    7. Information
    8. Debug

시스템 공격 유형

  • DDoS(Distributed Denial of Service)
    • Boink: 대량의 SYN 패킷을 이용한 공격
    • Trinoo: UDP Flooding 분산 서비스 거부 공격
    • TFN 2K: 대규모 봇넷을 활용한 공격
  • DoS(Denial of Service)
    • I-node 공격: 파일을 대량 생성해 I-node를 모두 소모시켜 파일 생성을 불가능하게 하는 공격
    • TearDrop: 패킷의 시퀀스 번호를 조작하여 재조합 과정에서 시스템에 혼란을 유도하는 공격
    • Smurf: ICMP와 브로드캐스트 주소를 이용해 다수의 시스템에 패킷을 보내는 공격

카테고리:

업데이트: