전체 글 271

제목 : Flask + MySQL 연동 실습 :: 마당서점 도서목록/상세 페이지 구현

실습 목표 Flask 웹서버와 MySQL(MariaDB) 연동 pymysql로 DB 조회 후 Jinja2 템플릿에 결과 전달 도서 목록 페이지, 도서 상세 페이지 2개 라우트 구현 사용 기술 Python 3, Flask pymysql Jinja2 템플릿 엔진 MySQL(madangdb), Book 테이블 폴더 구조 madangweb/ index.py templates/ booklist.html bookview.htmlFlask는 render_template() 호출 시 실행 파일(index.py) 기준으로 같은 위치의 templates 폴더 안에서 html을 찾음 index.py와 templates 폴더가 같은 위치에 있어야 정상 동작 index.py 코드>> Book 테이블에 저장된 도서를 읽어와 웹 ..

카테고리 없음 2026.10.13

네트워크 기초 정리 :: DHCP (동적 호스트 설정 프로토콜)

네트워크 기초 정리 :: DHCP (동적 호스트 설정 프로토콜)DHCP(Dynamic Host Configuration Protocol)란기기가 네트워크에 연결될 때 IP 주소를 자동으로 할당해주는 프로토콜DHCP가 없으면 관리자가 모든 기기에 IP를 일일이 수동으로 설정해야 함집에서 와이파이에 연결하면 별다른 설정 없이 자동으로 인터넷이 되는 것도 이 DHCP 덕분왜 필요한가네트워크에 연결되는 기기는 계속 늘어나고 줄어듦(노트북을 껐다 켜고, 손님이 와이파이에 접속했다 나가고)매번 사람이 IP를 배정하면 관리가 불가능할 정도로 번거로움DHCP 서버(보통 공유기)가 사용 가능한 IP 목록을 갖고 있다가, 필요할 때마다 자동으로 하나씩 빌려줌동작 과정 — DORA기기가 네트워크에 처음 연결됐을 때 IP를 ..

Network 2026.10.12

로그 분석 실습 :: auth.log부터 상관 분석

로그 분석 실습 :: auth.log부터 상관 분석1. auth.log로 로그인 시도 분석auth.log: 리눅스 시스템에서 로그인, sudo 사용, SSH 접속 시도 같은 인증 관련 이벤트가 전부 기록되는 로그 파일로 공격자가 시스템에 침투를 시도할 때 가장 먼저 흔적이 남는 곳 중 하나로그인 실패 기록 확인sudo cat /var/log/auth.log | grep “Failed password”결과: 실패한 로그인 시도가 있으면 시간, 사용자명, 시도한 IP가 한 줄씩 출력(정상적인 상황이면 결과가 아예 없거나 몇 건 안 됨)IP별 실패 횟수 집계sudo grep “Failed password” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | s..

카테고리 없음 2026.10.09

SQL 기초 실습 :: SQL 감사 로그(Audit Log) 설정

SQL 기초 실습 :: SQL 감사 로그(Audit Log) 설정감사 로그 필요 이유: 실제로 누가 언제 무엇을 했는가”를 전부 기록으로 남길 수 있음권한 설정이 아무리 잘 되어 있어도, 허용된 범위 안에서 이상한 행동(대량 조회, 의심스러운 시간대 접근 등)을 하는 걸 잡아내려면 기록이 있어야 함MariaDB Audit Plugin: 누가(어느 계정, 어느 IP에서), 언제, 어떤 쿼리를 실행했는지 전부 로그 파일에 기록해주는 플러그인플러그인 활성화sudo mysqlINSTALL PLUGIN server_audit SONAME ‘server_audit.so’;>> MariaDB에 server_audit이라는 플러그인을 등록해서 켜는 SQL문으로, MariaDB가 그 .so 파일을 메모리에 로드해서 감사..

네트워크 기초 정리 :: ARP 심화와 ARP 스푸핑

네트워크 기초 정리 :: ARP 심화와 ARP 스푸핑ARP(Address Resolution Protocol)IP 주소를 MAC 주소로 변환해주는 프로토콜같은 네트워크 안에서 통신하려면 결국 MAC 주소가 필요한데, ARP가 “이 IP를 가진 기기의 MAC 주소가 뭐야?“를 물어보고 답을 받아오는 역할ARP 캐시란한 번 물어본 IP-MAC 매핑을 매번 다시 묻지 않도록 임시로 저장해두는 테이블arp -a>> 현재 알고 있는 IP와 그에 대응하는 MAC 주소 목록이 출력됨ARP의 근본적인 약점ARP는 원래 응답이 진짜인지 검증하는 기능이 없이 설계됨누군가 “나는 192.168.0.1이야”라고 가짜 ARP 응답을 보내면, 상대방은 별다른 의심 없이 그걸 캐시에 저장해버림ARP 스푸핑: 공격자가 가짜 ARP ..

Network 2026.10.06

클라우드 보안 기초 :: IAM과 보안그룹

클라우드 보안 기초 :: IAM과 보안그룹IAM(Identity and Access Management): 클라우드 환경에서 “누가 무엇에 접근할 수 있고, 어떤 작업을 할 수 있는지”를 관리하는 인증·인가 체계전통적인 온프레미스 서버의 계정/권한 관리(계정과 권한 관리 노트에서 다룬 GRANT/REVOKE 개념)를 클라우드 규모에 맞게 확장한 것왜 클라우드에서 특히 중요한가온프레미스 서버는 물리적으로 접근이 제한되지만, 클라우드는 인터넷 어디서든 콘솔이나 API로 접근 가능계정 하나만 뚫려도 서버, 스토리지, 네트워크, DB를 포함한 인프라 전체가 위험해질 수 있음그래서 “이 계정이 정확히 무엇까지 할 수 있는지”를 세밀하게 통제하는 게 클라우드 보안의 출발점기본 구성 요소1. 사용자(User): 실..

보안 2026.10.04

네트워크 기초 정리 :: SNMP와 기본 커뮤니티 스트링의 위험

네트워크 기초 정리 :: SNMP와 기본 커뮤니티 스트링의 위험SNMP(Simple Network Management Protocol)란스위치, 라우터, 프린터 같은 네트워크 장비를 원격에서 모니터링하고 관리하기 위한 프로토콜장비의 상태(트래픽량, CPU 사용률, 온도 등)를 조회하거나, 일부 설정을 원격으로 변경할 수 있게 해줌왜 필요한가네트워크 장비가 수십, 수백 대가 되면 하나하나 콘솔에 접속해서 상태를 확인하는 게 비현실적SNMP를 쓰면 중앙 관리 시스템에서 모든 장비의 상태를 한 번에 조회하고 모니터링 가능기본 구성 요소관리 시스템(NMS, Network Management System): 장비들의 상태를 수집하고 보여주는 중앙 서버에이전트(Agent): 각 네트워크 장비에서 실행되며, 관리 시..

운영체제/Linux 2026.09.22

네트워크 기초 정리 :: VLAN과 네트워크 분리

네트워크 기초 정리 :: VLAN과 네트워크 분리VLAN(Virtual LAN, 가상 랜)이란물리적으로는 하나로 연결된 네트워크를, 논리적으로 여러 개의 독립된 네트워크로 쪼개는 기술같은 스위치, 같은 케이블을 쓰지만 논리적으로는 완전히 다른 네트워크처럼 취급됨왜 필요한가물리적으로 스위치나 케이블을 부서마다, 서버마다 따로 깔면 비용도 많이 들고 관리도 복잡함VLAN을 쓰면 장비 하나로 여러 네트워크를 논리적으로 운영할 수 있음보안 관점에서 중요한 이유같은 네트워크(같은 브로드캐스트 도메인)에 있으면, 그 안의 장비들은 기본적으로 서로 통신 가능하고 트래픽도 어느 정도 보임웹서버가 공격당해서 뚫렸을 때, DB서버가 같은 네트워크에 있으면 공격자가 바로 DB서버로 이동(내부 이동)할 수 있음VLAN으로 웹..

Network 2026.09.20