본문 바로가기
Study

Linux 개인정보 파일 보호

by yadirp 2025. 3. 4.

목차

    목표

    개인정보 파일을 안전하게 보호

    • 파일 암호화 및 접근 제한
    • 접근제어 정책(DAC, MAC) 적용
    • 네트워크를 통한 유출 차단
    • 패킷 모니터링을 통한 보안 점검
    • PKI를 활용한 안전한 데이터 저장 및 전송

    실제 운영 가능한 보안 환경 구축

    • 방화벽(Netfilter) 설정
    • 자동화된 보안 정책 적용 스크립트 작성
    • 암호화 및 접근제어 정책을 결합하여 보안 강화

    진행 과정

    개인정보 파일 (personal_data.txt)

    • 민감한 정보가 포함된 가상의 개인정보 파일을 생성
    • 프로젝트 종료 시 안전하게 보호된 상태로 유지되어야 함

    목표

    • 1단계: 파일 및 디렉터리 보안 설정 (DAC)
    • 2단계: 파일 암호화 (GPG, LUKS)
    • 3단계: 네트워크 접근제어 (방화벽, SSH 보안)
    • 4단계: 패킷 모니터링 및 트래픽 분석
    • 5단계: PKI를 활용한 데이터 암호화 및 인증
    • 6단계: 자동화 스크립트 작성 및 보안 점검

     

    1. 파일 및 디렉터리 보안 설정 (DAC)

    1.1. 개인정보 파일 및 보호 디렉터리 생성

    mkdir -p ~/secure_data && echo "이름, 주민등록번호, 계좌 비밀번호" > ~/secure_data/personal_data.txt

    1.2. 파일 접근 제한 (chmod, chattr)

    # 본인만 읽기/쓰기 가능
    chmod 600 ~/secure_data/personal_data.txt
    # 소유자 설정
    chown $USER:$USER ~/secure_data/personal_data.txt

    1.3. ACL을 활용한 세부 접근제어

    # guest 계정 접근 차단
    setfacl -m u:guest:0 ~/secure_data/personal_data.txt
    # ACL 설정 확인
    getfacl ~/secure_data/personal_data.txt

     

    2. 파일 암호화 및 보호 (GPG, LUKS)

    2.1. GPG를 이용한 파일 암호화

     
    # 원본 삭제
    gpg --output ~/secure_data/personal_data.gpg --encrypt --recipient $USER ~/secure_data/personal_data.txt rm ~/secure_data/personal_data.txt

    복호화 방법

    gpg --output ~/secure_data/personal_data.txt --decrypt ~/secure_data/personal_data.gpg

    2.2. 디렉터리 전체 암호화 (LUKS)

    # 디스크 암호화
    sudo cryptsetup luksFormat /dev/sdb1
    sudo cryptsetup open /dev/sdb1 secure_storage mkfs.ext4 /dev/mapper/secure_storage mkdir /mnt/secure sudo mount /dev/mapper/secure_storage /mnt/secure

     

    3. 네트워크 접근제어 (Netfilter, 방화벽)

    3.1. UFW 방화벽 설정

    # 기본적으로 외부 연결 차단 
    sudo ufw enable sudo ufw default deny incoming
    # 특정 네트워크에서만 접근 허용
    sudo ufw allow 443/tcp
    # HTTPS 허용
    sudo ufw allow from 192.168.1.0/24
    # 방화벽 설정 확인
    sudo ufw status verbose

    3.2. iptables 기반 네트워크 차단

    # SSH 차단
    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    # 특정 IP로의 연결 차단
    sudo iptables -A OUTPUT -d 8.8.8.8 -j REJECT
    # 현재 설정 확인
    sudo iptables -L -v

     

    4. 패킷 모니터링 및 네트워크 보안 점검

    4.1. Wireshark / tcpdump를 이용한 네트워크 분석

    # SSH 트래픽 캡처
    sudo tcpdump -i eth0 port 22 -nn -c 10

    4.1. 패킷  파일 저장 후 분석

    # Wireshark로 분석
    sudo tcpdump -i eth0 -w ~/secure_data/network_traffic.pcap wireshark ~/secure_data/network_traffic.pcap

     

    5. PKI를 활용한 안전한 데이터 저장 및 전송

    5.1. 개인 키 및 인증서 생성

    openssl genpkey -algorithm RSA -out ~/secure_data/private_key.pem openssl req -new -key ~/secure_data/private_key.pem -out ~/secure_data/cert_request.csr openssl x509 -req -days 365 -in ~/secure_data/cert_request.csr -signkey ~/secure_data/private_key.pem -out ~/secure_data/public_cert.crt

    5.2. 인증서를 이용한 파일 서명

    openssl dgst -sha256 -sign ~/secure_data/private_key.pem -out ~/secure_data/signature.sig ~/secure_data/personal_data.gpg

    5.3. 서명 검증

    openssl dgst -sha256 -verify ~/secure_data/public_cert.crt -signature ~/secure_data/signature.sig ~/secure_data/personal_data.gpg

     

     

    6. 자동화 스크립트 및 보안 점검

    6.1.자동으로 보안 유지하는 스크립트 (secure_maintenance.sh)

    # 개인정보 파일이 암호화 상태인지 확인
    #!/bin/bash
    # 로그 정리
    if [ -f ~/secure_data/personal_data.gpg ]; then echo "개인정보 파일이 암호화 상태입니다." else echo "암호화되지 않은 파일이 존재합니다. 즉시 암호화하세요!" fi
    # 방화벽 규칙 재적용
    find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \; echo "7일 이상된 로그 삭제 완료"
    sudo ufw reload echo "방화벽 정책이 업데이트되었습니다."

    6.2. crontab에 등록하여 자동 실행

    crontab -e
    # 매일 새벽 3시에 실행
    0 3 * * * /path/to/secure_maintenance.sh

     

    'Study' 카테고리의 다른 글

    [CPPG] 개인정보 관리체계  (0) 2025.04.17
    [CPPG] 개인정보 보호 조치  (0) 2025.04.17
    [CPPG] 개인정보 라이프 사이클 관리  (1) 2025.04.14
    [CPPG] 개인정보 보호 제도  (0) 2025.04.08
    [CPPG] 개인정보 보호의 이해  (0) 2025.04.07