Linux 16

다원·2023년 1월 27일
0
post-custom-banner

관리자적 명령어

root passwd

시스템을 키면서 i, e옵션을 사용하여 CLI로 접속
부팅에서 필요한 내용

swap 옆에 init /bin/bash를 넣고 reboot

bash에서 패스워드를 변경을 한 뒤 사용할 수 있음

Grub file

부팅 시 사용되는 Grubfile을 잠궈둘 수 있음
암호화 하고자 하는 파일을 실행해야 hash가 생성되기 때문에 백그라운드로 실행
암호를 설정하고 grub password의 hash값을 볼 수 있음

/etc/grub.d의 템플릿 섹션을 기반으로 설정파일 생성

해시 적용되어 grub 파일로 접속 시 username과 hash 값을 확인 하려고함

chroot

관리자는 서버시스템에 FTP나 NFS 등의 서버 서비스를 설정해두고
클라이언트는 FTP 서버에 연결해서 파일을 받는데 외부로 공유시킨 FTP 서버의 오픈 디렉터리에 접속하여 디렉터리 이동 또는 살펴보는 행위 등을 함
chroot 사용하면 어느 디렉터리의 가상 최상위 디렉터리 / 를 만들어서 더 이상의 상위 디렉터리로 이동하지 못하게 하는 것

ssh.sshd_config 파일 편집:
132번째 줄: Subsystem sftp 주석처리
133줄에 추가: Subsystem sftpp internal-sftp
Match Group sftp-group
ChrootDirectory /secure/%u
ForceCommand internal-sftp

ssh프로토콜 사용하여 원격으로 접속 할 경우 /ftp 상위 디렉터리로 이동할 수 있음
ls 할 경우 실제 root 사용의 하위디렉터리가 확인되지 않음
: 해당 상위 디렉터리는 가상의 최상위 디렉터리 임을 확인 할 수 있음

ftp에서 디렉터리를 새로 생성할 경우 원격지에서는 /root/ftp에 있는 것처럼 확인 할 수 있음

실제 서버에서는 terter이라는 사용자의 /ftp에 디렉터리가 생성되어있음

chcon & restorecon

신규 파일의 보안 설정을 기존 파일의 보안 설정을 복사하거나 참조하게 해서 파일 생성 시 보안 속성 설정이 기존 파일들과 동일하게 설정되게 해주는 기법
보안 속성 설정 확인 ls -lZ|dZ 파일/디렉터리_명
SELinux를 enforcing으로 해두어도 외부에서 접속됨
restorecon은 이름대로 변경된 보안 context 속성을 원래대로 복구해줌

chcon

SELinux 보안 설정 시 사용

  • 서비스의 Secrity 설정 확인
    getsebool: security(SELinux) 불 대수(on/off) 로 확인 (불대수: 0or1)

    on일 경우 SELinux 설정이 서로 일치해야만 실행, 강력한 보안이 된 상태에서 서비스 실행되는 것
    off일 경우 SELinux 설정을 무시하고 유연하게 서비스가 실행되는 것

SELinux 사용

  • 메일 설정 파일 .conf 파일
    httpd_config 파일에서 InculdeOptional 설정이 되어있는데 이는 ~.conf 파일을 만들어 두면 메인 실행 설정 파일이 httpd_config 파일에서 이 파일을 모두 불러 올려서 실행시킴
    설정 파일이 무겁지 않고, 다양한 설정을 각 모듈별(conf.d/~conf) 로 파일로 설정해둘 수 있다는 장점을 가지고 있음

    Server name의 주석 제거 후 도메인 주소 or ip주소와 포트 번호

    web.conf 모듈 생성

    /web 파일 및에 .html 생성

    /web 디렉터리가 Centos에서 SELinux랑 일치하지 않을 경우 사용할 수 없음
    외부 접속도 불가

    => /var/www/html/index.html context속성과 /web/index.html의 context속성이 다르기 때문
    : SELinux =permissive or /web/index.html 보안 속성을 /var/www/html/index.html 속성으로 만들어서 사용하면 됨

보안 속성 확인 및 속성 맞춤

  • 속성 확인

    system_u: 사용자에 대한 권한
    object_r: 객체에 대한 역할 (roll)
    httpd_sys_content_t: 보안 타입
    s0: Security level (s0=DAC, s1=MAC)
  • 속성 변경
  • 속성 변경 후 httpd를 재 시작 후 외부에서 연결하면 /web 파일로 접속이 가능
  • chcon의 reference 적용

    보안 설정이 변경된 A파일을 같은 디렉터리 내에서 복사나 이동하면 변경된 보안설정을 유지
    다른 디렉터리로 복사하면 변경된 보안 설정이 유지
    다른 디렉터리로 이동하면 변경 전 원래 보안설정으로 되돌아감

restorecon

자동으로 파일을 모니터링해서 context가 변경된 것이 있으면 SELinux 설정에 맞춰

charrt lsattr

chattr : 속성 변경
lasttr : 속성 확인

특수 권한

setUID setGID Sticky Bit
root 소유의 파일/디렉터리에 Sticky Bit(1000)가 붙으면 Other에게도 권한이 있게 되므로 주의
실행권한이 있을 때만 적용되기 때문에 속성이 중요
파일/디렉터리의 사용자와 그룹은 setUID(4000)/setGID(2000) 해주면 일반사용자도 root 사용자의 파일/디렉터리를 사용할 수 있음
설정 파일, 개발 파일, 명령어 등과 같은 파일/디렉터리가 있을 때 파일/디렉터리에 대한 권한을 다 없애고 특정 사용자만 이용하게 하거나
특정 사용자가 만든 파일/디렉터리를 다른 사용자들도 들어와서 작업하게 하거나
특정 명령어 사용 제한 등에서 활용 할 수 있음
passwd 파일을 보면 사용자 권한을 확인하면 s(setUID)가 들어있는 것을 확인 할 수 있음

setGID 설정, 그룹자리에 권한이 변경되어있음을 확인 할 수 있음

Sticky Bit, 외부 사용자가 사용할 수 있음

파일 교체 기법

#include <stdio.h>
main (int argc, char *argv[]) {

char exec[100];
setuid(0);
setgid(0);
sprintf(exec, agrv[1]);
system(exec);
}

C언어문 작성하고 컴파일하여 실행파일 저장 및 setuid 권한 할당

생성된 실행 파일을 대신할 실행 파일을 찾기

mv 명령어를 이용하여 c언어로 생성된 파일을 대신할 실행파일 명으로 변경하면
/usr/bin/gs 파일도 setuid설정됨

외부 사용자로부터 /etc/shadow 파일로 접속할 수 있음

** /usr/bin/gs 파일의 소유자가 root 사용자이고, setuid가 설정되어있음
그래서 setuid 권한으로 일반사용자가 shadow 파일에 접속할 수 있는 것

profile
공부일지,
post-custom-banner

0개의 댓글