ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [산대특] iptables, 백업 및 파일 관리, bacula, rpm
    [산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux 2024. 9. 9. 20:07

    0909

     

      IPTABLES

    서버 접근을 막는 첫번째 도구 = 방화벽(Firewall)

    하드웨어 기반 방화벽, 소프트웨어 기반 방화벽 등 여러 타입의 방화벽이 있다

    여기서는 Netfilter라는 Linux 소프트웨어 방화벽을 살펴보자.

     

     이 소프트웨어는 커널 내부에서 작동하지만 사용자가 iptables로 구성할 수 있다.

    Netfilter 대신 iptables라고 많이 부름

     

     iptables에서 사용되는 용어

    policy 패킷에게 적용되는 룰 정책이다.
    tables filter(걸러줌), nat(주소전환), mangle(섞임), raw(순수형태)가 있는데 iptables에서는 주로 filter를 사용하고 
    INPUT(들어옴), OUTPUT(나감), FORWARD(전달) 체인을 가진다. 

    iptables -t filter --list 해서 확인할 수 있다.
    chain 일단의 룰을 말하는데 하나의 체인에 여러 룰이 한 줄에 하나 씩 들어있다. 
    각각을 줄을 엔트리(entry)로 부른다.
    match 룰에서의 각 조건을 말하는데 
    --source(-s 출발지), --destination(-d 목적지), 
    --protocol(-p 프로토콜), --in-interface(-i 입력_인터페이스), 
    --out-interface(-o 출력_인터페이스), --state(상태), --jump(-j 점프), --match(-m 매치), --syn(-y 동기화), --frag(-f 단편화), --dport(목적지_포트), 
    --sport(출발지_포트), --mode(-m 모드) 등
    stateful 적용할 서비스에 대한 상태로서 
    NEW(새로 연결), ESTABLISHED(기존 연결), 
    RELATED(관련된 연결), 그리고 INVALID(무효 연결) 등이 있다. 
    이들을 여럿 써 줄 때 , 뒤에 빈칸 없이 이어서 써준다.
    target 룰과 일치할 때의 행동으로 ACCEPT(받아줌), DROP(로그파일 없이 버림), REJECT(로그파일 남기고 버림), LOG(로그로 기록함), 
    RETURN(송신자에게 되돌려 보냄), QUEUE(대기열에 저장함) 등이 있다.
    기타 PREROUTING(먼저 룰을 적용 한 뒤 실행함), 
    POSTROUTING(먼저 실행한 뒤 룰을 적용함), 
    규칙(룰)에 따른 행동으로 ACCEPT, DROP, REJECT 이외에
    NAT에서 사용하는 MASQUERADE(나가는 패킷의 출발지 주소와 포트변환), SNAT(나가는 패킷의 출발지 주소변환), DNAT(들어오는 패킷의 목적지 주소변환), 그리고 LOG(로그 기록) 옵션이 있다. 

     

    firewall-config에서의 설정과 iptables에서의 설정이 상호 호환되지 못하는 경우가 많아,

    firewall-config 설정이 더 확실하다. 

     

      IPTABLES 의 룰은 위부터 아래로 차례로 적용 

    1) 먼저 허가 룰을 지정하고 나중에 거부 룰을 지정 

    2) 디폴트 기본 룰을 버리고, 사용자_정의 룰을 별도로 생성해서 사용

    3) 하나의 호스트에서 지정한 룰을 다른 호스트에 복사해서 적용도 가능 

     

      체인정책 

      iptables 정책(policy) - 내장 체인, 사용자정의 체인

    내장 체인 - INPUT, FORWARD, OUTPUT 체인(chain)처럼 내장됨.

    사용자정의 체인 = iptables에 -N 옵션을 주고 새로 생성함.

     

    도착되는 모든 패킷은 INPUT 체인으로 들어오고,

    생성된 모든 패킷은 OUTPUT 체인을 통해서 나가며,

    거쳐서 특정 목적지로 가는 패킷은 FORWARD 체인으로 나가도록 설정

     

      체인의 종류

    A(ppend) 추가로써 해당 체인의 룰에서 맨 끝에 자리한다.
    I(nsert) 끼워 넣기로써 체인의 시작이나 어느 포인트에도 자리할 수 있는데 
    '-I 체인 룰_번호'식으로 지정해서 어느 곳이라도 위치시킬 수 있다. 
    대부분 체인의 시작에 룰을 둘 때 사용된다. 
    룰 1뒤에 -I INPUT 2 ~ 식으로 넣으면 
    이후의 룰은 번호가 하나씩 밀리게 된다.
    R(eplace) 대체로써 '-R 체인 룰_번호'식으로 사용하면, 해당 룰이 새롭게 대체된다. 
    D(elete) 삭제인데, 그냥 -D를 사용하면 매치되는 첫 번째 룰을 삭제하고, 
    '-D 체인 룰_번호'식으로 해주면 해당 룰만 삭제한다. 
    옵션 -C
    -L
    -F
    -N
    -X
    -P
    --line-numbers
    체인 규칙확인
    체인 규칙보기
    지정한 체인내의 모든 규칙제거
    사용자_정의 체인생성
    사용자_정의 체인삭제
    지정한 체인정책 변경
    체인 룰에 줄번호 매기기

    =>LOG를 기록하게 한다면 

    iptables -I INPUT 2 -p tcp -s 192.168.100.101 -dport 22 -j LOG

     

     

      백업(Backup) 및 복구(Restore)

      시스템 관리자의 매우 중요한 업무

    [시스템엔지니어에게 가장 중요한 조직의 IT 관리는 ‘데이터 관리’]

     

    1차로 모든 데이터를 다 백업해두는 Full backup(전체/완전백업)을 수행 한 뒤, 

    2차로 데이터 증가분만 백업하는 Incremental backup(증가분백업)을 수행하고, 

    필요하면 3차로 백업에서 놓친 부분(archive bit가 1)을 백업해두는 Differential backup(차등백업)을 수행한다. 

     

    매일 실시하는 child(daily) 백업

    주말에 실시하는 parent(weekly) 백업

    월말에 수행하는 grand-parent(monthly) 백업

     

     

    백업 도구 - cpio

    cpio -ov > ABC /home/centos/bak1.lst 백업

    cpio -iv < /home/centos/bak1.lst 복원

     

      scp와 같이 쓰이는 rsync 명령어를 사용한 백업/복원

    원격지에 중요한 파일 등을 rsync로 복사해둘 수 있다.

     

     

      Bacula(Bacula management server)

      Bacula는 상용 프로그램과 비교해도 손색없이 백업과 복원을 수행해주는 매우 강력하고 풍부한 기능을 가지고 있는 도구

     

    서버-클라이언트 개념으로 작동

    Bacula 서버는 모든 백업/복원 관련 지시를 해주는 Director(dir)

    백업 데이터를 저장하는 Storage(sd),

    콘솔에서 명령어를 수행하게 해주는 Console

    백업할 데이터를 발생시키는 리얼 서버들인 Agent(fd)

     

    bat(Bacula Admin Tool)은 그래픽 도구이다. 

    데이터를 저장하는 MySQL을 사용한다.

     

      EXTundelete 도구는 삭제된 데이터를 복원할 수 있다.

      extundelete /dev/sdb1 --restore-all 후 복원에서 y를 입력하면 파일과 디렉터리가 모두 복원된다. 

    --restore-file 하고 하나의 파일 지정,

    --restore -files 하고 여러 파일 지정,

    --restore-directory 하고 디렉터리를 지정

    지정 복원도 가능.

     

     

      TestDisk와 Photorec (파티션과 그래픽 데이터 복구)

      TestDisk는 파티션 복원 프로그램인데 이 모듈을 설치하면 사진, 그림 등 그래픽 데이터를

    전문적으로 복구해주는 Photorec도 함께 설치된다. 

    Photorec로 일반 파일이나 디렉터리도 복원할 수 있다. 

     

     

      블록장치를 백업/복원 - dump 와 restore

      외부 장치, 특히 테이프 드라이브(/dev/st0로 보임)를 사용해

    백업/복원하려면 UNIX 시스템에서 전통 격인 dump와 restore 명령어를 사용. 

    테이프 드라이브 대신 별도의 하드디스크를 추가해서 할 수도 있다.

     

     

      CentOS에 내장된 도구로 시스템 감시하는 것 - RPM

      RPM 데이터베이스와 AIDE 도구를 사용해서 파일시스템 변경을 모니터링할 수 있다. 

     

      RPM으로 파일시스템 모니터링하기 

      CentOS에 최초 설치된 프로그램을 RPM 데이터베이스로 가지고 있다가,

    추가되거나 변경된 것이 있으면 이 데이터베이스의 내용과 비교해서 변경을 알린다   

     

    rpm -Va 태그 

    c d g l
    구성파일 문서파일 빈 유령파일 라이센스 파일
    r missing S 5
    README 파일   파일사이즈 변경 MD5 체크섬 변경
    T U G M
    시간 변경 사용자 소유권 변경 그룹 소유권 변경 파일모드/권한 변경
    D L . ?
    장치 변경 심볼릭 링크 변경 변경 없음 속성 확인X / 무관

     

연의 취업 도전기.