본문 바로가기
정보보안

정보보안4 8차시

by IT매니절 2024. 7. 29.

nmcli device 명령어로 device 상태 조회

ens224를 nmtui로 추가함

다시 nmcli 해보면 연결됨으로 변경됨

 

[root@localhost ~]# ssh admin@10.10.12.252
Unable to negotiate with 10.10.12.252 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
[root@localhost ~]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1k  FIPS 25 Mar 2021

 

취약한 레거시 알고리즘(sha1)만 지원하는 호스트와 연결이 거부됨.

연결할 호스트의 버전을 최신으로 업데이트 하거나 추가작업 필요

 

 

디피헬만
A = g의 a제곱 mod p
B = g의 b제곱 mod p

B의 a제곱 mod P = A의 b제곱 mod p 동일



취약한 버전과 ssh 키 교환 하는법

1) ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 admin@주소

+ ssh 상세정보는 localhost -v, -vv, -vvv, -vvvv 상세정보 확인 가능

2) vi $HOME/.ssh/config 파일에 키 교환 방법 저장

( 내용 : Host 접속할호스트주소
        KexAlgorithms +diffie-hellman-group1-sha1 )

 

# tree .ssh
.ssh
├── config
└── known_hosts

.ssh 폴더에 키 저장됨.

 

 

MRTG 트래픽 모니터링 네트워크 트래픽을 모니터링하고 시각화하는 오픈 소스 소프트웨어 도구
SNMP를 사용하여 네트워크 장비에서 트래픽 데이터 수집
그래프로 변환하여 웹 인터페이스를 통해 표현
트래픽 모니터링, 데이터 시각화, 멀티 플랫폼 지원, 간편한 설정, 확장성 등.

 

SNMP
네트워크 장비를 모니터링하고 관리하기 위한 표준 프로토콜
관리자가 네트워크 성능을 모니터링하고 장비의 문제를 진단하며 성능을 최적화할 수 있도록 함
관리시스템NMS와 네트워크 장비 간의 통신을 위해 사용함
UDP 161포트 : SNMP 에이전트
UDP 162포트 : 트랩 포트(NMS로 메시지 보낼때 사용)

 

구성요소
- SNMP 관리자 : 수집된 데이터를 분석하여 네트워크 모니터링
- SNMP 에이전트 : 장비에 설치된 소프트웨어. 상태와 데이터를 수집해 관리자로 전송
- 관리 정보 베이스 MIB : 장비에서 관리되는 객체들의 데이터베이스. OID로 식별되고 다양한 매개변수와 상태를 나타낸다

동작방식
- GET 요청 : 관리자가 에이전트에게 특정 OID 값 요청
- SET 요청 : 관리자가 에이전트에게 특정 OID 값 설정 요청
- GETNEXT 요청 : 관리자가 에이전트에게 특정 OID 이후의 값 요청 (NIB 트리 탐색)
TRAP : 에이전트가 관리자에게 특정이벤트 또는 상태변경 알림

 

버전별차이
v1

- 보안기능 거의 없음, 커뮤니티 스트링 사용하여 인증
v2p- 파티 기반 보안 모델. 복잡하고 구현이 어려움v2u- 사용자 기반 보안 모델 사용. v3 모델의 전신이 됨.
v2c
- v1 개선 버전, 커뮤니티 스트링 사용하여 인증. 커뮤니티 기반 보안 모델. 단순하고 구현이 쉬움.
v3
- 보안 기능 강화
- 사용자 기반 보안 모델USM 도입 (메시지 인증, 데이터 암호화, 접근제어)
- username/password 제공

 

실습환경셋팅

APM 설치
dnf -y install mariadb mariadb-server php-{cli,fpm,zip,gd,mbstring,curl,xml,pear,bcmath,json,pdo} httpd php php-mysqlnd git

웹서버 설정파일 수정
sed -i '43s/<FilesMatch \\.(php|phar)$>/<FilesMatch \\.(php|html|phar)$>/' /etc/httpd/conf.d/php.conf
sed -i '902s/;date.timezone =/date.timezone = Asia\/Seoul/' /etc/php.ini
sed -i '197s/short_open_tag = Off/short_open_tag = On/' /etc/php.ini
sed -i '388isecurity.limit_extensions = .php .html' /etc/php-fpm.d/www.conf

웹서버 스타트
systemctl enable --now php-fpm
systemctl enable --now httpd

DB 설정
sed -i '21icollation-server=utf8_general_ci'  /etc/my.cnf.d/mariadb-server.cnf
sed -i '22icharacter-set-server=utf8'  /etc/my.cnf.d/mariadb-server.cnf
sed -i '23iskip-character-set-client-handshake'  /etc/my.cnf.d/mariadb-server.cnf
sed -i '24ibind-address=127.0.0.1'  /etc/my.cnf.d/mariadb-server.cnf

DB 스타트, 패스워드 재설정
systemctl enable --now mariadb
mysqladmin -p password '111111'

[엔터]

cat << EOF > ~/.my.cnf
[client]
# host = localhost
# user = root
password = 111111
EOF

 

mrtg 설치

dnf -y install net-snmp net-snmp-utils mrtg

 

vi /etc/snmp/snmpd.conf

 

com2sec notConfigUser  default       public
=> com2sec 명령은 보안 이름을 정의함. 주석처리한다.

com2sec local     localhost       COMMUNITY
com2sec mynetwork NETWORK/24      COMMUNITY
=> COMMUNITY를 public로 변경하여 주석해제. NETWORK/24를 알맞게 수정

com2sec <sec.name> <source> <community>
이런 형식인데 sec.name은 보안이름, source는 요청출처(ip 주소나 범위 등)
community는 커뮤니티 스트링을 의미.
연습용이므로 public

 

group <group.name> <sec.model> <sec.name>

group MyRWGroup  any        local
group MyROGroup  any        mynetwork

any => v2c로 수정

 

group.name은 보안 그룹 이름
sec.model은 보안 모델
sec.name은 보안 이름
즉 v2c 보안모델로 지정해준것

view all    included  .1                               80
80번 라인 주석해제. all이라는 뷰를 정의한다. MIB 트리의 루트(.1)를 포함하며 80은 특정 서브트리의 깊이를 나타냄

view <view.name> <incl/excl> <subtree> [<mask>]
view.name은 뷰의 이름
incl/excl은 포함, 또는 제외를 지정
subtree는 MIB 트리의 서브트리 지정
mask는 선택사항인데 서브트리의 특정 부분을 지정할 수 있는 마스크.

 

any => v2c

0 => exact 로 변경

 

access MyROGroup "" v2c noauth exact all none none
=> MyROGroup그룹에 대해 v2c 보안모델과 noauth 보안수준 사용. all 뷰에 대해 읽기 권한이 있으나 쓰기, 알림 권한은 없음

 

access <group.name> <context> <sec.model> <sec.level> <prefix> <read> <write> <notif>
context : 컨텍스트 이름 지정
prefix : MIB 트리의 프리픽스 지정
read : 읽기권한 있는 뷰의 이름 지정
write : 쓰기권한 있는 뷰의 이름 지정
notif : 트랩알림 권한 있는 뷰의 이름 지정

 

저장후 시작

 

# systemctl enable --now snmpd
# systemctl status snmpd
# systemctl stop firewalld


# netstat -nltpu | grep snmpd

tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN      28465/snmpd
udp        0      0 0.0.0.0:161             0.0.0.0:*                           28465/snmpd

 

# snmpwalk -v2c -c public localhost system

로컬호스트로 시스템 가동

 

snmpwalk -v2c -c public localhost system 옵션
=> v2c 버전, 커뮤니티 스트링 public, localhost 사용

snmpwalk -v2c -c public localhost
=> MIB 트리의 루트에서 시작하여 모든 OID 탐색. 시스템 전체 상태를 확인할때, 어떤 정보가 에이전트에 의해 제공되는지 확인할때.

snmpwalk -v2c -c public localhost system
=> MIB 트리의 system 부분만 탐색. 기본적인 상태와 정보를 빠르게 확인할때

 

system MIB 그룹 : 시스템의 기본 정보를 포함한다
- sysDescr : 시스템 설명
- sysObjectID : 시스템 객체 ID
- sysUpTime : 업타임 
- sysContact : 연락처
- sysName : 이름
- sysLocation : 위치
- sysServices : 서비스

 

cfgmaker를 사용하여 MRTG의 설정파일을 생성 : /etc/mrtg/mrtg.cfg

cfgmaker
- 자동화된 설정 파일 생성
- 네트워크 장비의 snmp 정보를 기반으로 mrtg 설정 파일을 자동 생성
- SNMP 프로토콜을 사용해 서버, 네트워크 장비 인터페이스 정보 수집
- 다양한 옵션을 제공하여 사용자 지정 가능

 

# cfgmaker \
--global 'Options[_]: bits,growright' \
--snmp-options=:::::2 \
--ifref=descr \
--ifdesc=descr \
public@대상 IP 주소  > /etc/mrtg/mrtg.cfg

 

생성된 파일을 수정

vi /etc/mrtg/mrtg.cfg

WorkDir 수정

mkdir /var/www/html/mrtg

 

폴더만들고

 

for i in 1 2 3; do env LANG=C mrtg /etc/mrtg/mrtg.cfg; done

for문 실행. 처음 실행시 에러나지만 두번째 실행시에는 안남.

 

vi /etc/cron.d/mrtg

*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

 

주기적으로 실행하기위해 cron 폴더에 등록함.

 

cd /etc/httpd/conf.d/
rm -f mrtg.conf
systemctl restart httpd.service
ls /var/www/html/mrtg/

dnf -y install mc

dnf로 mc를 설치하고

http://192.168.100.10/mrtg/192.168.100.10_ens160.html

나의 ip 주소에 들어가서 확인해본다

5분단위여서 조금 더 기다리니 녹색표시가 생겼다

 

# LANG=C dnf grouplist
Last metadata expiration check: 1:35:57 ago on Sun Jul 28 15:51:35 2024.
Available Environment Groups:
   Server with GUI
   Minimal Install
   Workstation
   Virtualization Host
   Custom Operating System
Installed Environment Groups:
   Server
Installed Groups:
   Headless Management
Available Groups:
   Container Management
   .NET Core Development
   RPM Development Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Network Servers
   Scientific Support
   Security Tools
   Smart Card Support
   System Tools

 

트래픽 발생시키기

dnf -y groupinstall "Server with GUI"

dnf로 큰 용량을 설치해본다

 

Max 43.2 Mb 로 변동되었다.

 

라우터에 SNMP 설정

conf t
 snmp-server community public RO
 snmp-server location "Server Room"
 snmp-server contact 이메일주소
end

 

snmpwalk -v2c -c public 10.10.12.252 | head
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, 3700 Software (C3745-ADVENTERPRISEK9_IVS-M), Version 12.4(15)T14, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Tue 17-Aug-10 12:55 by prod_rel_tea
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.110
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (820451) 2:16:44.51
SNMPv2-MIB::sysContact.0 = STRING: admin@linuxmaster.net
SNMPv2-MIB::sysName.0 = STRING: R1.linuxmaster.net
SNMPv2-MIB::sysLocation.0 = STRING: "Server Room"
SNMPv2-MIB::sysServices.0 = INTEGER: 78

=> 설정해준 3700번대 라우터가 확인됨

 

# snmpwalk -v2c -c public 10.10.12.252 system

# cfgmaker \
--global 'Options[_]: bits,growright' \
--snmp-options=:::::2 \
--ifref=descr \
--ifdesc=descr \
public@10.10.12.252  > /etc/mrtg/mrtg-router1.cfg

# vi /etc/mrtg/mrtg-router1.cfg

# for i in 1 2 3; do env LANG=C mrtg /etc/mrtg/mrtg-router1.cfg; done

 

# vi /etc/cron.d/mrtg

*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg-router1.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

내용추가

라우터인 fastethernet 관련 항목이 추가되어있다

 

ping 10.10.12.252

ping으로 실행해놓고

 

http://192.168.100.10/mrtg/10.10.12.252_fastethernet0_1.html

접속해본다

 

 

스스로 실습 : 스위치를 mrtg로 모니터링

스위치 : 10.10.12.251

 

 

'정보보안' 카테고리의 다른 글

정보보안5 3차시  (0) 2024.08.10
정보보안5 2차시  (0) 2024.08.04
정보보안4 7차시  (0) 2024.07.27
정보보안4 6차시  (0) 2024.07.21
정보보안4 5차시  (0) 2024.07.20