[1교시]
/ CentOS에서 ifconfig에서 inet이 000.000.000.000형태로 안보일때
- 네트워크를 재시작
- 서버 재시작
- 우측 상단의 컴퓨터모양의 아이콘밑에 점점점으로 되어있을것이다.
/ 리눅스의 구조
- 커널(Kernel) : 중간에 인터렉션 하는 기능, 상호작용
- 쉘(Shell) : 사용자의 명령어를 받아서 결과를 출력
- 응용 프로그램
/ 지금 로그인한 사람의 이름
# id
- uid : 유저아이디
- gid : 그룹아이디
- groups : 그룹의 모임
/ 내가 누구게
# who am i
/ 지금 서버에 접속해 있는게 누구야
# who
# who are you
/ ls
- 디렉토리 안의 파일 및 폴더목록을 보여준다.
- ls 특정디렉토리위치 : 특정 디렉토리 위치내의 파일 및 디렉토리 목록을 보여준다.
- -l 옵션 : 리스트 형식으로 표시한다.
- -a 옵션 : 숨김파일까지 모두 표시한다.
- -al : 옵션들은 붙여서 쓸 수 있다.
/ alias
- 단축어를 알 수 있는 명령어
/ 파일을 만들기
# touch testfile : 임의의 testfile을 만든다.
- 터치로 만드는것은 더미파일을 만드는 것이다. 용량이 0
- 같은 명령어를 한번더 날렸을때 파일이 없으면 만들고, 있으면 mac time만 변경된다.
>mac 타임을 바꿀 수 있는 기능을 가지고 있다.)
/ 디렉토리 만들기
# mkdir testdir : testdir폴더를 만든다.
- 파일을 만들때의 권한과 디렉토리를 만들때의 권한이 조금 다르다.
> 디렉토리 : d rwx r-x r-x : 755 권한
> 파일 : - rw- r-- r-- : 644 권한
/ 디렉토리 삭제하기
# rmdir testdir : testdir폴더를 삭제한다.
/ 권한
- rwx rwx rwx : 소유자 소유그룹 기타사용자
- rwx : 읽기(4) 쓰기(2) 실행(1)
- 디렉토리는 맨 앞에 d가 붙는다. -> drwxrwxrwx
- 권한에 대한 숫자를 더해서 소유자 권한에 표시한다.
> rwx : 7 / r-w : 5 / r-- : 4
/ 질문
- 디렉토리 권한이 r--로만 되어있으면 : 폴더내부로 들어갈 수 없다.
x는 디렉토리에 접근할 수 있는 권한이다.
[2교시]
/ 권한 변경
# chmod 755 testfile : testfile의 권한을 rwxr-wr-w(755)권한으로 변경한다.
- + : 특정 권한을 추가한다.
> u+x : 소유자에 실행권한을 추가한다.
> u-x : 소유자에 실행권한을 뺀다.
> g+w : 그룹권한에 읽기 권한을 추가한다.
> a+x : 모두에게(소유자, 그룹, 이외) 실행권한을 추가한다.
- = : 특정 권한을 지정한다.
> o=wx : 아더유저에게 wx권한을 부여한다.
> u=rwx : 소유자에게 rwx권한을 부여한다.
- ex) chmod u+x, o=wx testfile : testfile의 권한을 사용자에게는 읽기권한을 추가하고, 아더는 권한을 읽기/실행 권한으로 지정한다.
/ 권한 명령어
- chmod : 권한을 변경한다.
- chown : 파일 소유자를 변경한다.
- chgrp : 소유그룹을 변경한다.
- chattr : 속성(attribute)을 변경한다. (읽기전용으로 만든다던지, 삭제가 안된다던지, 지울때 내용이 저장되게 한다던지)
> 변경한 속성을 확인할 때 # lsattr 파일이름
> 넣을때는 +속성, 뺄때는 -속성
> a 속성 : 추가만
> i 속성 : 파일 수정 x
/ 특수권한
- rws r-x r-x file : SUID SetUID 4755 (setuid가 설정되어 있으면 4000으로 시작되고)
- rwS r-x r-x file :
- rwx r-s r-x file : SGID SetGID 2755 (setgid가 설정되어 있으면 2000으로 시작되고)
- rwx r-S r-x file :
- rwx r-x r-t file : Sticky bit 1755 (스티키 비트가 설정되어 있으면 1000으로 시작된다.)
- rwx r-x r-T file :
- ex ) rws r-s r-t : 7755
- 권한은 사실 앞에 0755처럼 0이 붙는다.
- chmod로 수정한다.
- 소문자로 들어가 있으면 성공, 대문자로 들어가있으면 권한이 제대로 적용이 안된경우
- SetUID, SetGID는 해당 권한으로 파일을 실행한다.
- 스티키 비트를 지정하면 소유자가 아니더라도 내부에다가 파일을 만들거나 변경할 수 있다. (rwx권한)
- 스티키 비트가 적용되어도 삭제는 되지 않는다.
- 스티키가 적용된 대표적인 디렉토리 : /tmp.
[3교시]
/ umask 설명
- 디렉토리
0777 rwx rwx rwx // 여기서
0022 --- -w- -w- // 이걸 빼면
0755 rwx r-w r-w // 이것이 된다.
- 파일
0666 rw- rw- rw- //여기서
0022 --- -w- -w- // 이걸 빼면
0644 rw- r-- r-- // 이것이 된다.
/ netstat
- 윈도우 서버 netstat -anp tcp | findstr 22
> a옵션 : 다 찾아줘
> n옵션 : 목록으로 표현해줘
> p옵션 : 프로토콜. ex) tcp 프로토콜을 찾아줘
> findstr : ex) 22번을 찾아줘
- 리눅스 서버 netstat -ant | grep 22
> t 옵션 : 프로토콜을 찾아줘
> p 옵션 : 프로세스 이름을 알려줘
> grep : 검색 명령어
- 결과
> LISTEN : 서비스를 기다리고 있다.
> :22 : sshd 포트
/ netstat 2
# netstat -antp | grep 22
/ 방화벽 종류
- Selinux : 잘 안씀
- TCP Wrappers : 거의 은퇴함. 잘 안씀
- Firewalld : 그래픽 지원이 된다. Centos 7에서는 잘 쓴다. 초급 사용자들이 많이 쓴다.
- iptables : 시험에 잘 나온다. 디테일하게 방화벽을 설정하고 싶을 경우 많이 쓴다. 고수들이 많이 쓴다.
/ ps -ef | grep sshd
- 프로세스를 찾는다.
- e 옵션 : 모든 정보를 다 보여줘
- f 옵션 : full 포멧으로 보여줘
- | grep 문자열 : 문자열이 들어가는 프로세스를 검색해줘
- 이걸 하면 결과가 2개 나오는데 grep --color=auto sshd는 내가 검색해서 그 프로세스가 나온것이다.
- 내가 검색하고 있는 프로세스를 안보이게 하려면
ps -ef | grep sshd | grep -v grep로 하면 된다.
> -v 옵션 : 제외하고 보여줘
/ lsof
# lsof -i tcp:22
- 열려있는 파일들의 목록을 보여줘
- i 옵션 : 인터페이스
- p 옵션 : 프로세스로 검색
# lsof -p 프로세스번호 : 프로세스가 돌아가는 모든 것들이 나옴
# ls -l /proc/프로세스번호/exe : 해당 연결되는 프로세스를 찾을 수 있다.
- /proc 디렉토리 : 프로세스 임시값들이 임시저장되어서 위치하는 디렉토리. 파란색 하나하나가 다 pid이다.
- /proc/meminfo :
/ 포트
- 잘 알려진 포트 : 1~1023
> 80, 21, 22, 23, 53
- 등록된 포트 : 1024~49151
> MsSQL 1433, Oracle 1521, MySQL 3306
- 동적 포트 : 49152~65535
> 임의로 할당, 사용할 수 있다. 클라이언트가 서버로 갈때 갈고가는 포트다.
- 포트 규칙을 정해주는 곳이 있다 : IANA
[4교시]
/ man 명령어
- 명령어에 대한 메뉴얼을 볼 수 있다.
/ 서버에 어떤 사용자가 있는지 확인
- 홈디렉토리를 확인해본다.
- 루트 사용자는 /root에 가지고 있어서 home에 나오지 않는다.
/ 계정목록
# cat /etc/passwd
> 프로세스를 실행하기 위한 계정(?)도 나온다.
/ 사용자 만들기
# useradd tuser
- cat /etc/passwd 명령어를 쳤을때 맨 밑에도 표시된다.
- 이때 규칙이 있다.
> 7개의 항목을 :으로 나누어 표시한다.
> 처음 만드는 사용자는 1000으로 시작하고 그 다음부터는 1001, 1002식으로 1씩 커진다.
> root는 유저/그룹 아이디가 0이라 0으로 표시된다.
> 실제로 로그인을 하는 정보들만 7번째에 /bin/bash에 데이터가 표시된다.
> 시스템을 건드리는 애들은 유저아이디는 0이 아니더라도 그룹아이디는 0이다.
> 로그인 안 하는데 7번째 배시쉘이 /bin/bash이다? 그럼 비정상임
> bin의 유저/그룹이 0:0이다? 그럼 비정상임.
1:2:3:4:5:6:7
root:x:0:0:root:/root:/bin/bash
centos:x:1000:1000:centos:/home/centos:/bin/bash
tuser:x:1001:1001::/home/tuser:/bin/bash
사용자::유저아이디:그룹아이디:코멘트:홈디렉토리:배시쉘
/ 사용자를 추가할때 관련있는 파일/디렉토리
- /etc/login.defs : 여기서 참조해서 사용자를 만들게 된다.
> PASS_MAX_DAYS :
> PASS_MIN_DAYS :
> PASS_MIN_LEN :
> PASS_WARN_AGE :
> UID_MIN :
> UID_MAX :
> ENCRYPT_METHOD : 패스워드 암호화 알고리즘을 무엇으로 하는 지
- /etc/default/useradd
> GROUP :
> HOME : 홈디렉토리는 여기 밑에다가 만들어 주세요.
> INACTIVE :
> EXPIRE :
> SHELL : 쉘을 무엇을 쓸것인지
> SKEL :
> CREATE_MAIL_SPOOL :
- /etc/skel 디렉토리
>
/ 사용자 지우기
- userdel 사용자이름 : 만 하면 홈디렉토리는 안지워진다.
- userdel -r 사용자이름 : 사용자 홈 디렉토리까지 지운다.
[5교시]
/ shadow파일
# cat /etc/shadow ( | grep 사용자 )
- 패스워드가 들어있는 파일(패스워드는 /etc/login.defs파일의 ENCRYPT_METHOD항목에 의해 암호화 되어 있다.)
- passwd파일에서는 6번째가 홈디렉토리이고 shadow파일에서는 6번째가 warn age를 표시한다.
- !! or * -> 패스워드가 아직 설정되어 있지 않아서 pw를 사용한 로그인이 잠겨있을때 표시된다.
- 패스워드 부분에 !!도 없으면(지워버리면) 패스워드가 없는것이다. 그냥 로그인이 막 된다.
- 비밀번호 부분이 $숫자$블라블라$블라블라2 형식인데,
> 무차별(무작위) 대입공격(Brute force Attack 사전공격), 무지개 공격을 대비하여
> $암호화알고리즘$난수값(솔팅)$비밀번호 형식으로 되어있다.
root:$6$8F6OgN4qus2kRCNW$T78yqffVv/b6Qgs7BlZxz5CiyfV2BWn1O9mIm/wu1Pe17IfXkQmM6QXBg1sG/kopfyE7xojbu7NnuQ5fETn9O0:19101:0:99999:7:::
centos:$6$wo4kNDaa0OlmxQVY$0FT3EnlB4QNWoxWu9lbWtAo3I5l.XynTooH3QiJUSXnT.iyCFYp.p8i/PMhDEEZfdg5vGm
VRU28/rUOPqD.eO.:19101:0:99999:7:::
tuser:!!:19103:0:99999:7:::
계정 : 암호화된 패스워드 : 1970년1월1일을기준으로패스워드가 변경된 일수: :패스워드 최대 사용일자 : 패스워드가 변경되기 전에 워닝을 보여주는 일수 : 비활성날짜(pw가 만료되고, 계정이 잠기기전까지의 기간) : 패스워드가 만료되는 날짜 :
/ 사용자 패스워드 설정하기
# passwd 사용자
- /etc/passwd에서 /etc/shadow로 비밀번호 파일이 옮겨졌다. (보안상의 이유로)
- 구버전에서 pwconv 명령어를 쓰면 /etc/shadow로 옮겨졌었다.
- shadow에서 passwd로 옮기려면 pwunconv 명령어를 쓰면된다.
/ 삭제
# rm -rf
- r 옵션 : 디렉토리, 안에 파일이 있어도 다 지워라
- f 옵션 : 물어보지 말고 걍 지워라
'정보보안학원 > 과정평가형 일지' 카테고리의 다른 글
8일차 - 네트워크 (0) | 2022.04.25 |
---|---|
7일차 - 네트워크 (0) | 2022.04.22 |
5일차 (0) | 2022.04.21 |
4일차 (0) | 2022.04.19 |
3일차 (0) | 2022.04.18 |