ABOUT ME

개발자를 꿈꾸는 대학생의 이야기, 일상

Today
Yesterday
Total
  • 리눅스 보안 일반
    리눅스 2022. 6. 3. 14:04

    보안 일반

    1. 사용하지 않는 서비스 중지

    2. 퍼미션 및 파일 및 파일 시스템 속성 변경

    3. 커널 파라미터 조정으로 시스템 최적화 방안

    4. John the ripper를 활용한 암호 관리 방안

    5. 포트의 개념과 포트 스캔

     

    파일의 사용 권한

    - /tmp (1777) sticky

       => 누구나 읽기/쓰기가 가능하나 다른 유저가 생성한 파일 삭제 불가능

       => rwxrwxrwroot root tmp/

     

    - SetUid(4511) = 4(4+1)11

      -> -r-s--x--x root root /usr/bin/passwd(4511)

      -> -r-x--x--x root root /usr/bin/passwd(0511)

     

    파일 권한 점검

    - suid/sgid 파일 점검

      ==> 보안상 취약, 점검 후 삭제 및 권한 변경

     

    - sticky 권한

      => 주로 디렉토리에 적용, 파일 삭제에 제한

     

    파일 속성 변경(chattr)

    lsattr 디렉토리/파일명을 입력하면 걸려 있는 속성을 알 수 있음.

     

    파일 속성 변경(/etc/fstab)

    -> 리눅스의 보안을 강화하기 위해 아래와 같은 옵션을 추가할 수 있음. 

        관리자 권한으로 수정해야 하기 때문에 오타나 실수가 없이 커맨드를 입력해야 함.

    fstab은 저장 매체와 밀접한 연관이 있음.

     

    ex) ~] sudo vi /etc/fstab  을 입력해서 vi 편집기 이동

    ==> 테스트를 위해 밑에서 3번째 줄에 defaults 옆에 ,nousid 추가

     

    확인을 위해

    grep boot /proc/mounts으로 확인을 해보면 기본 세팅이지만

     

    grep mount -oremount /boot 로 재조정을 해주고 조회를 해보면 수정이 된 것을 확인할 수 있다.

     

     

    커널 파라미터 조정

    - /proc 파일 시스템 - OS 와 대화 창구

    - /proc/sys/ - 커널 파라미터 관련 파일

    - 현재 값 확인 => cat /proc/sys/디렉토리/파일

    - 값 변경 => echo "값" > /proc/sys/디렉토리/파일

    * Soft level 커널 튜닝의 경우 부팅 후에는 초기화 되므로 주의!!

     

    커널 파라미터 조정 도구

    - sysctl => -a : 모든 매개변수를 display

    - 설정변경 방법

    커널 파라미터 보안 설정

    설정 들어가는 경로

    /usr/share/doc/kernel-doc-3.10.0/Documentation]

    /usr/share/doc/kernel-doc-3.10.0/Documentation] sudo sysctl -a | grep ipv4 tcp => 설정 확인하기

    /usr/share/doc/kernel-doc-3.10.0/Documentation] sudo yum install -y kernel-doc ==> 패키지 설치

     

     

    sudo vi /etc/sysctl.conf 파일에서 수정하고  빠져나와서 sudo sysctl -p 명령으로 적용한다.

     

     

    암호 관리

    john the ripper : 암호 해독 프로그램

     

    mailer 스크립트의 활용

    => 암호가 취약한 사용자에게 주기적인 메일 발송

          쉘 프로그램 cron 등록

     

    쉘 로깅 관리

     

     

    시스템 보안 기본

    포트의 개념

    -> 물리적인 전송 선은 하나이지만 그것을 여러 개의 응용 프로그램들이 서로 나누어 사용하기 위해서 도출된 개념.

    예약 포트 번호

    - well known port : 0 ~ 1023

    - Registered port : 1024 ~ 49151

    - Dynamic, Private Port : 49152 ~ 65535

    또는

    - Privileged/Well known port : 1 - 1023

    - Unprivileged, ephemeral Port : 1024 - 65535

     

    일반적인 포트 작동 예외

    - bind 4.x : client 가 udp port 53 이용

    - syslog : client 가 udp 514 이용

    - netbios : 구 windows에서 client 가 port 139 이용

     

    리눅스에서 설정 가능한 포트 설정 예.

    - sysctl -w net.ipv4.ip_local_port_range="2000 4000"

      포트를 모두 사용시 error msg: cannot assign requested address Resource temporary Unavailable

     

    포트 점검 도구

    - nmap, lsof(list open file), nessus(취약점 분석도구)

     

    nessus의 특징

    2002년 Tenable에서 인수 후 성능 개선, GUI 환경으로 이용가능

    nmap 옵션

    Network Mapper#. 네트워크 스캐닝 툴의 일종으로 쉽고 유연하며 좋은 쪽으로도 나쁜 쪽으로도 강력한 기능들이 미리 스크립팅 되어있다.
    네트워크상의 호스트를 찾아내거나, 호스트의 정보(가령 운영체제는 무엇이고 어떤 포트를 어떤 프로그램이 사용하고 있는지, 버전은 어떤지 등) 스캔, 스텔스 스캔, 방화벽 사용 감지, 보안 취약점 검사 등등을 할 수 있다.

     

     

    SYN flooding 공격의 원리 / 대책

     

    -> 백로그 큐 사이즈를 늘리는 것은 위에서 알아본 커널 파라미터 보안 설정에서 

         net.ipv4.tcp_max_syn_backlog=1024 로 한것을 의미한다. 원래는 128이기때문에 작은 사이즈를 늘려주는 것.

     

     

    '리눅스' 카테고리의 다른 글

    리눅스 파일 시스템과 디스크 관리  (0) 2022.06.08
    리눅스 SELinux  (0) 2022.06.03
    리눅스 셸 함수  (0) 2022.06.02
    리눅스 변수  (0) 2022.05.31
    리눅스 sed, awk, 쉘 스크립트  (0) 2022.05.30
Designed by Tistory.