보안(8) ≡ 시스템 보안(Linux 기본 개념과 FTZ)

Acrylic·2024년 6월 13일

FTZ

여기서 시스템 보안을 배울 수 있다고 한다.
기본 세팅부터 먼저 하고 시스템 보안에 대한 개념에 대해 알아보자.

FTZ 비밀번호 모음

trainer1: trainer1
trainer2: linuxer
trainer3: computer
trainer4: mungguta
trainer5: goodluck
trainer6: coffee
trainer7: to the top
trainer8: player
trainer9: programming
trainer10: best!

level1: level1
level2: hacker or cracker
level3: can you fly?
level4: suck my brain
level5: what is your name?

다운로드

https://url.kr/ad3ji7

VMWare 설치

https://zrr.kr/6pnD

  1. VMWare에서 Red hat ~~. vmx 파일을 실행시키면 된다.

  2. 들어가면 아이디는 root, 비밀번호는 hackerschool을 통해 접속할 수 있다.
    ifconfig를 통해 inet 주소를 알아낸 다음 복사한다.

  3. mobaXterm이나 putty 설치 후 아이피를 입력 후 접속한다.

작성자는 putty밖에 안 쓰기 때문에 putty만 설정 방법을 소개한다.

Putty 세팅

Session에서 이곳에 복사한 아이피 주소를 붙여 넣는다.

Window의 Translation에서 Remote character set을 Use font encoding으로 설정한다(한글 미출력 해결).

Window의 Appearance에서 Font settings에 폰트를 변경해 준다.

Session에서 Load, save or delete ~에 Saved Sessions의 이름을 정한 다음 Save를 누른다.

작성자는 FTZ로 했다(제발 다시 불러올 때 Save 누르지 않았으면 하는 마음이다. 눌렀다가 세팅 다시 했다).

Open 누르면 된다.

시스템 보안

시스템 보안은 말 그대로 시스템에 관한 보안을 일컫는다.
리눅스나 윈도즈 같은 운영체제가 생각난다면 그게 맞다.

관리자

Windows의 경우 administrator가 관리자다.
Linux의 경우 root가 관리자다.

사용자 및 그룹 관리

Windows의 경우 net user / net localgroup 같은 걸로 관리한다.
Linux의 경우 /etc/passwd를 통해 관리한다.

배울 건 Linux니까 Linux에 대해 심층 탐구해 보자.

trainer 1 ~ 10

혹시 직접 공부해 보고 싶은 사람들은 Putty에서 아이디 trainer1 / 비밀번호 trainer1을 입력해 보자.

프롬프트

리눅스에서

이런 걸 프롬프트라고 한다. 어떤 명령을 내리기를 기다리기만 하는 친구이니 가만히 있는다고 짜잔 내가 너에게 신기한 걸 보여 줄게 이런 짓 하지 않는다.

프롬프트는 이런 친구다.

ls

ls는 현재 디렉터리에 파일이 뭐가 있는지 알려주는 친구다. 대소문자 구분 엄격하니 소문자로 쓰도록 하자.
(디렉터리가 규범 표기니 태클 걸지 않도록 한다)

근데 이것만으론 파일인지 폴더인지 개인지 뭔지 모르기 때문에 ls -l 이렇게 해서 구분해서 띄워 줄 수 있다.

ddhtml, ddhtml.c 요런 거 위에 자기 정보가 나온다.

ls -l 정보 읽기

-rw-rw---- 같은 건 권한이다.

처음에 - 표시가 있으면 파일, d가 있으면 디렉터리다.

trainer1 두 개는 각각 아이디와 비밀번호 되시겠다.
trainer1 옆에 있는 숫자는 용량이다.
그 옆에 있는 건 생성 날짜다.

이 다음에 퀴즈가 나오는데 잘 풀어 보자. 마지막에 갑자기 파일 용량을 물어보니 조심하자.

ls -a

ls -a는 숨겨진 파일들을 짜잔 하고 공개한다.

기존에 안 보였던 리눅스 설정 파일 같은 게 공개됐다. 숨겨진 파일은 처음에 .으로 시작한다.

ls -al

물론 -a-l 둘이 합쳐진 거니까 어떻게 나올지 대충 예상이 되겠다.

(비밀번호는 이 블로그 위에 다 나와 있으니까 위를 보면 된다)

pwd

pwd는 그냥 내가 어떤 디렉터리에 있는지 보는 거다.

cd 명령어

cd ..

하위 디렉터리로 이동한다.

pwd를 치면 /home으로 들어온 것을 볼 수 있다.

cd (폴더 이름)

(폴더 이름)으로 들어간다.

cd /

최상위 폴더로 내려간다.

cd /(경로)

절대 기준인 /를 기준으로 경로를 입력한다.

파일 수정

참고로 폴더도 파일이다.

mkdir (폴더 이름)

폴더를 만들 때 사용한다.

rmdir (폴더 이름)

당연히 폴더를 삭제할 때 사용한다.

cp (복사 대상 이름) (복사 사본 이름)

CoPy를 줄여 cp로 쓰며 복사할 때 쓴다.

rm (파일 이름)

당연히 폴더가 아닌 파일을 삭제할 때 사용한다.

mv (원경로) (변경 대상 경로)

파일을 옮길 때 쓴다.

사용자 정보 확인

w

어떤 사람들이 접속해 있는지를 알려주는 명령어다.

① 어떤 아이디로 로그인했는지 공개
② 콘솔로 접속했는지 터미널로 접속했는지 공개

  • tty: 콘솔 접속
    • 뒤 숫자: 몇 번째 콘솔로 접속했는지 공개
  • pts: 터미널 접속
    • 뒤 숫자: 몇 번째 터미널로 접속했는지 공개

③ 접속자의 ip(콘솔은 나타나지 않는다)

  • 불법 접속하면 역해킹이 가능하다.

④ 어느 시간에 로그인했는지 공개한다.
⑤ 사용자가 얼마나 오랫동안 아무것도 입력하지 않았는지 공개한다.
⑥ CPU가 사용한 지연 시간을 보여 준다.
⑦ WHAT 필드에 있는 명령의 지연 시간을 보여 준다.
⑧ 현재 어떤 명령을 사용하고 있는지 보여 준다.

finger -l

사용자들의 더 많은 정보를 볼 수 있다.

tty

내 터미널을 확인할 수 있다.

ifconfig

보통 현재 접속한 서버의 ip를 볼 때 쓴다.

쪽지 보내기

write (ID) (/dev/pts/pts번호)

쪽지 보낼 때 쓴다. w를 통해서 pts를 확인하면 쪽지를 보낼 수 있다.

예를 들어, write guest /dev/pts/3을 입력하면 로그인돼 있으면 해당 유저에게 메시지를 보낼 수 있고 안 돼 있으면 못 보낸다. 대화를 중지할 때는 ctrl + d를 누른다.

실험은 PuTTY를 하나 더 켜서 guest / guest를 입력하면 할 수 있다.

wall test

현재 접속한 모든 사용자들에게 쪽지를 보낼 때 쓴다.

리눅스 디렉터리

  1. bin

    • 리눅스 실행 파일이 있다.
  2. boot

    • 부팅 관련 파일과 커널이 있다.
  3. dev

    • 하드웨어에 관한 정보들이 파일 형태로 저장돼 있는 곳이다.
  4. etc(★)

    • 중요한 파일(비밀번호, 섀도, 리눅스 설정 파일 등)들이 들어 있다.
      • etc/passwd: 사용자 정보
      • etc/shadow: 사용자 비밀번호(아무나 못 본다)
      • etc/services: 서버의 서비스
      • etc/issue.net: 접속 화면
      • etc/motd: 로그인 후 출력되는 메시지
      • ~/public_html: 각 사용자들의 홈페이지 파일(해킹 성공 시 hacked by xxx라는 문구를 남긴다고 한다)
  5. home

    • 일반 사용자들의 디렉터리가 있다(여긴 guest, trainer1~10, level1~10이 있다).
  6. lib

    • 라이브러리 파일들이 들어가 있다.
  7. mnt

    • mount 명령을 이용해 마운트시킨 CD-ROM이나 Floppy Diskette 등이 들어가는 곳이다.
  8. proc

    • 프로세스들이 파일 형태로 저장되는 곳이다.
  9. root

    • 루트의 홈 디렉터리는 이곳이다.
  10. sbin

  • 시스템 관리용 실행 파일들이 들어 있는 곳이다.
  1. tmp
  • 임시 파일을 저장하는 곳이다. 권한 상관없다.
  1. usr
  • 다양한 응용 프로그램들이 설치돼 있는 곳이다.

정보 수집

자신의 정보 수집

whoami를 입력한다.

자세하게는 id를 입력한다.

모든 정보 수집

cat /etc/passwd를 입력한다.

뭔가 긴 게 쭉 나열되는데 가장 왼쪽이 사용자들 아이디다.

리눅스 정보 수집

uname -a를 입력한다.

서버 정보 수집

cat /etc/*release를 입력한다.

CPU 정보는 cat /proc/cpuinfo를 입력한다.

이런 게 뜬다.

패키지 정보 수집

rpm -qa를 입력한다.

설치한 패키지가 쭉쭉 뜬다.

profile
프런트엔드 개발자 지망생

0개의 댓글