kh교육

(20250709011)사용자 관리&STP, VLAN

boangod 2025. 7. 9. 17:59

보안에서 기초

 

임의적 접근제어, 강제적 접근제어

 

임의적 접근제어 : 파일에 대해서 다른 주체에게 액세스 할 수 있는지 주체의 마음대로 설정할 수 있는 것을 의미
강제적 접근제어: 보안등급(규정)을 만들어서 다른 주체의 액세스를 막음

대부분의 보안은 임의적 접근제어를 사용한다

보안 등급.
기밀성 보안등급 : 자신보다 높은 등급의 데이터를 못 읽음
무결성 보안등급 : 자신보다 낮은 등급의 데이터를 못 읽음

 

그룹이 있는 이유?
- 권한을 관리하기 위해서. 그룹이 있는 것과 없는 것은 보안 자체가 다르기 때문.

 

root관리자가 하면 안 되는 일

- 보안상 프로그램 설치하면 안 됨

- 소프트웨어 이전과 관련된 작업을 하면 안 됨

 

 

사용자(주체) 등록 정보

 

/etc/passwd

계정:암호:UID:GID:주석:홈디렉터리:쉘

 

- 사용자의 기본 등록 정보가 저장되어 있다
- 사용자 패스워드의 경우 shadow password를 사용하여 확인할 수 있다.
- useradd 명령을 이용하여 사용자 계정을 등록한다.
- 사용자의 직접수정이 가능하다. (환경설정 파일이 텍스트 파일로 되어 있기 때문에 추천하지는 안 함)

 

사용자 패스워드, 암호정책 정보

 

/etc/shadow

계정 : 암호 : 최종변경일(1970/01/01 이후) : 암호최소사용일: 암호최대유효기간 :암호 만료까지 경고기간 : 암호 만료 뒤 계정 폐쇄까지 기간 : 계정이 만료일 : 예비

 

- pwconv(pwunconv) 명령을 이용 활성화(비활성화)

- change명령을 이용 내용 수정

 

그룹의 등록 정보

 

/etc/group

그룹명:암호:GID:소속 계정

ㄴ 계정은 여러 그룹에 속하고 기본 소속 그룹은 /etc/passwd 파일에 등록된다.

 

 

그룹 관리

 

groupadd(그룹 생성)

사용자를 등록하기 전에 반드시 사용자가 속할 그룹이 먼저 만들어져 있어야 한다.

ㄴ 무조건!!! 반드시!! 하지 않으면 사용자 관리가 많이 힘들어진다.

 

# groupadd [-g [그룹번호]] [그룹명]

 

-g : 생성 그룹의 GID 번호를 지정한다.

    - 할당하지 않으면 1000 이상 중복되지 않은 값으로 GID가 자동으로 할당된다.

    - GID번호는 식별자일 뿐 값 자체에는 의미가 없다.

-r : 1000번 이하의 GID 번호를 자동으로 할당한다.

    - 1000번 이하의 GID는 시스템이 daemon이나 관리 목적으로 사용함으로 가능한 사용하지 않는 것이 좋다.

-o : 중복된 GID 번호 할당이 가능하다.

    - GID 가 같고 이름이 다른 그룹을 생성할 수 있다.

    - 이름이 같고 GID가 다른 그룹은 생성할 수 없다.

 

groupdel(그룹 제거)

그룹 삭제, 그룹삭제는 반드시 그룹명을 이용한다.

 

# groupdel [그룹명]

 

 

사용자 관리

 

useradd (adduser)

계정 생성

 

# useradd [옵션] [사용자명]

 

옵션

-u : uid지정

-g : gid나 그룹명지정(기본그룹 한 개만 지정함) (default : 계정명)

-d : 홈디렉터리 지정 (default : /home/[계정명])

(일부 배포본의 minimal 설치에서-m옵션이 필요한 경우가 있음-홈디렉터리가 자동으로 만들어지지 않을 때 사용)

-G : 보조 그룹 지정

-D : 기본 설정 확인 및 변경

-s : 쉘 지정

(로그인이 필요 없는 관리용 계정은 /sbin/nologin으로 설정)

(보안이 중요한 애들은 이런 식으로 만들어줌)

-리눅스는 계정을 만들고 나서, 비밀번호를 설정해 줄 수 있다.

 

 

userdel(계정 삭제)

 

# userdel  -r  [사용자명]

 

-r : 계정에 귀속된 홈디렉터리와 mailbox 등을 모두 삭제한다. (반드시 사용해주어야 함, 사용 안 하면 나중에 지우기 귀찮아집니다.)

 

 

<특별한 사용자 생성 옵션>

 

-M : 메일 전용 계정 생성

(홈디렉터리가 생성되지 않는다)

(실체가 없다.)

-r : 999번 이하의 UID 자동 할당

(서비스를 위한 더미 계정으로 보통 실 사용자가 없다)

(Shell은 /sbin/nologin으로 지정한다)

(홈디렉터리가 생성되지 않는다)

 

 

passwd(사용자의 암호 변경)

 

# passwd  [사용자계정]

 

옵션

- d : 패스워드를 없앤다.

- l : 패스워드 관련 접근을 차단한다.

(/etc/shadow 파일의 패스워드 항목에!! 를 추가함)

(인증서 사용에는 영향이 없음)

 

사용자 계정을 만들어서 옆자리 서버에 접속. 그러기 위해서 그룹을 만들고 사용자 계정을 만들고 접속해 보기.

[root@Linux156 ~]# groupadd -g 2000 ast
....
ast:x:2000:
[root@Linux156 home]# useradd -g 2000 ast20
[root@Linux156 home]# passwd ast20
ast20 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@Linux156 home]# ssh ast20@192.168.10.196
ast20@192.168.10.196's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Wed Jul  9 12:26:44 2025 from 192.168.10.156
[ast20@BridgeLinux196 ~]$
[ast20@BridgeLinux196 ~]$
[ast20@BridgeLinux196 ~]$
[ast20@BridgeLinux196 ~]$ exit
logout
Connection to 192.168.10.196 closed.
[root@Linux156 ~]# ls -al
합계 52
dr-xr-x---. 16 root root 4096  7월  9 12:22 .
dr-xr-xr-x. 17 root root  224  7월  8 10:41 ..
-rw-------.  1 root root  310  7월  8 12:07 .ICEauthority
-rw-------.  1 root root  214  7월  9 12:15 .bash_history
-rw-r--r--.  1 root root   18  3월 15  2021 .bash_logout
-rw-r--r--.  1 root root  176  3월 15  2021 .bash_profile
-rw-r--r--.  1 root root  176  3월 15  2021 .bashrc
drwx------.  8 root root 4096  7월  8 12:07 .cache
drwx------. 10 root root  171  7월  8 12:07 .config
-rw-r--r--.  1 root root  100  3월 15  2021 .cshrc
drwx------.  3 root root   25  7월  8 11:00 .dbus
-rw-------.  1 root root   16  7월  8 12:07 .esd_auth
drwx------.  3 root root   19  7월  8 12:07 .local
drwxr-----.  3 root root   19  7월  8 12:07 .pki
drwx------.  2 root root   25  7월  9 12:22 .ssh          <-- 여기 들어가기
-rw-r--r--.  1 root root  129  3월 15  2021 .tcshrc
-rw-------.  1 root root 1518  7월  8 10:50 anaconda-ks.cfg
-rw-r--r--.  1 root root  540  7월  8 12:24 b.txt
-rw-r--r--.  1 root root 1887  7월  8 11:00 initial-setup-ks.cfg
drwxr-xr-x.  2 root root    6  7월  8 12:07 공개
drwxr-xr-x.  2 root root    6  7월  8 12:07 다운로드
drwxr-xr-x.  2 root root    6  7월  8 12:07 문서
drwxr-xr-x.  2 root root    6  7월  8 12:07 바탕화면
drwxr-xr-x.  2 root root    6  7월  8 12:07 비디오
drwxr-xr-x.  2 root root    6  7월  8 12:07 사진
drwxr-xr-x.  2 root root    6  7월  8 12:07 서식
drwxr-xr-x.  2 root root    6  7월  8 12:07 음악
[root@Linux156 .ssh]# cat known_hosts
192.168.10.196 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHZ/WFu1N72hj/5Wj2spEmiQp2towoTm+ROUgilB4nnh5rZxL2iAKleemiOgaQaF7eLbzIlOmKad44TtdTkzkEA=

 

 

이렇게 그룹을 만들고 사용자를 그룹 안에 만들고, ssh로 그 사람 접속을 하고 나면. ssh 폴더가 생성됩니다. 

known_hosts가 있는데 cat명령어로 확인해 보면 그쪽 서버에서 보낸 공개키가 나와있습니다.

 


 

STP - looping을 제어하는 프로토콜

looping : 프레임이 네트워크에서 없어지않고 계속 도는(순환) 현상

자동화된 기능입니다, 다중 경로를 하나의 경로로 자동 구성하고 네트워크 상황에 따라 동적으로 경로를 수정합니다.

 

라인을 죽일 땐 포트를 죽여버립니다.

 

BID - 스위치를 식별하는 정보 

 

총 8바이트(64비트)로 구성되어 있습니다.

- Bridge Priority(2byte) + Mac Address(6byte)

- Bridge Priority default : 32768 (0~65535)

- 필요하면 수정이 가능합니다

- 4096의 배수로 설정이 가능합니다

- 작을수록 우선순위가 높습니다.

 

BPDU(Bridge Protocol Data Unit)

- 각 스위치가 부팅 후 2초마다 BID 등의 정보를 교환합니다.

- 스위치의 상태정보를 넘겨받습니다.

 

Path cost

- 데이터의 전송비용입니다.

1000 Mbps를 링크 대역폭으로 나눈 값 : IEEE 802.1D

    - Fast ethernet(100M bps) : 1000/100=10

    - Giga ethernet : 1000/1000=1

- 빠를수록 적은 값(cost)을 가집니다.

- 다양한 대역폭으로 인해 복잡한 값의 path cost가 계산됨으로 이를 단순화했습니다.

스위치는 코스트를 더해서 계산합니다, 다른 애들은 그냥 거쳐서 가는 경로 중에 가장 안 좋은 것을 코스트라고 합니다.

 

대역폭(bps) 10M 16M 45M 100M 155M 622M 1G 10G
Cost 100 62 39 19 14 6 4 2

 

• A-B : 19

• A-C : 100

• C-D : 4

• A-D : 104

• B-C : 119

• B-D : 123

 

 

STP 구현방법

 

1. 처음으로 non root bridge에서 root bridge를 선정(bid값이 가장 낮은 것이 root bridge가 됩니다.)

 

2. 루트 포트 선정(넌 루트 브릿지에서만 선정한다. 루트포트로 가는 가장 빠른 포트가 루트 포트)

     Non root switch에서 root switch까지 가장 빠른 경로에 연결된 port를 찾습니다.

        경로의 cost가 동일한 경우 BID가 낮은 switch를 통과하는 경로의 port가 root port가 됩니다.

 

3. 데지그네이트 포트를 결정(세그먼트에서 루트스위치로 가는 가장 빠른 포트선정)

 

4. 루트포트도 아니고 데지그네이트 포트도 아닌 포트를 막으면(block) 활성화됩니다.

 

 


Vlan

VLAN(Virtual LAN)은 스위치내부를 여러 개의 독립 스위치 장비처럼 분할해 주거나 이웃 스 위치와 통합하는 기능을 제공합니다.

각각의 VLAN 은 마치 단독의 별도 장치처럼 패킷을 송수신하고, 각 스위치의 포트별로 설정하며 기본값은 모든 포트가 VLAN 1에 속해 있습니다.

서로 다른 네트워크를 쓰려고 vlan으로 나눕니다.

 

VLAN 관련 명령

  • show vlan                                                   : VLAN 확인
  • show interface status                                  : 각 인터페이스의 상태 확인
  • vlan database                                             : VLAN 생성
    -vlan ## name [vnan name]                        - VLAN 모드에서 작업
    -vlan ##                                                       : VLAN 생성
    - name [vnan name]                                    - VLAN 인터페이스에서 작업
  • switchport access vlan ##                           : 인터페이스를 VLAN에 할당
  • switchport mode [access | trunk | dynamic ]
                                                                        : 인터페이스의 mode 정의
                                                                        : dynamic [auto | desirable]

 

Switch(config)# vlan 2 ← 지정한 VLAN이 없으면 생성한다.

 

 

여러 스위치에서 VLAN 간통신

 

패킷트레이서로 만든 것.

이걸 가지고 실습할 것입니다.