전체 글 277

SQL 기초 실습 :: 비밀번호 정책 점검

SQL 기초 실습 :: 비밀번호 정책 점검비밀번호 정책의 필요성계정 생성 시 아무 비밀번호나 허용하면 사용자가 약한 비밀번호를 사용함DB 레벨에서부터 비밀번호 복잡도를 강제하면, 애플리케이션이 따로 검증하지 않아도 최소한의 방어선이 생김플러그인 설치sudo mysqlINSTALL SONAME 'simple_password_check';설치 확인SHOW PLUGINS;SHOW VARIABLES LIKE 'simple_password_check%';결과로 아래 항목들이 값과 함께 출력simple_password_check_minimal_length: 최소 길이simple_password_check_letters_same_case: 대문자/소문자 각각 최소 개수simple_password_check_digit..

Docker 컨테이너 보안 :: 설치부터 Trivy 이미지 스캔과 권한 최소화까지

Docker 컨테이너 보안 :: 설치부터 Trivy 이미지 스캔과 권한 최소화까지Docker 설치 방법패키지 설치sudo apt updatesudo apt install ca-certificates curl gnupg -y >> ca-certificates, curl, gnupg 세 패키지 설치* ca-certificates: HTTPS 통신 시 인증서 검증에 필요* curl: URL로 파일 다운로드할 때 사용 (바로 다음 단계에서 Docker GPG 키 받을 때 씀)* gnupg: GPG 키 처리(암호화, 서명 검증)에 필요 — 앞서 –dearmor 명령어가 이 패키지의 gpg 도구를 씀-y: 설치 확인 프롬프트 자동 승인Docker의 공식 GPG 키 등록sudo install -m 0755 -d /e..

SQL 기초 실습 :: AES_ENCRYPT로 민감 데이터 암호화

SQL 기초 실습 :: AES_ENCRYPT로 민감 데이터 암호화컬럼 암호화의 필요성: 데이터 자체를 암호화된 형태로 저장하는 방법으로, 파일이 유출되더라도 암호화 키가 없는 이상 내용을 바로 알아볼 수 없음* AES_ENCRYPT / AES_DECRYPT: MariaDB/MySQL에 내장된 함수로, 대칭키 암호화(AES)를 SQL 안에서 바로 쓸 수 있게 해줌AES_ENCRYPT(원본값, 키)로 암호화해서 저장하고 조회할 때 AES_DECRYPT(암호화된값, 키)로 다시 원본 복원실습용 테이블 준비USE practice_db;CREATE TABLE employees_secure (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),department VARCHAR..

네트워크 기초 정리 :: FTP 익명 접속(Anonymous FTP) 위험성

네트워크 기초 정리 :: FTP 익명 접속(Anonymous FTP) 위험성익명 FTP란아이디/비밀번호 없이 anonymous라는 계정으로 누구나 접속할 수 있게 설정하는 기능파일을 공개적으로 배포할 목적으로 예전에 많이 쓰였지만, 잘못 설정하면 심각한 정보 유출 경로가 됨실습: 익명 접속 활성화하고 위험성 확인하기vsftpd 설정 파일 열기sudo vi /etc/vsftpd.confvsftpd 설정 파일 편집익명 접속 활성화anonymous_enable=YES익명 로그인을 허용하는 설정(위험한 설정이라는 걸 확인하기 위해 일부러 켬)서비스 재시작sudo systemctl restart vsftpd설정 적용익명으로 접속 시도ftp 서버IPName: anonymousPassword: (아무거나 또는 빈 값..

운영체제/Linux 2026.10.16

네트워크 기초 정리 :: DDos, QoS와 Rate Limiting

네트워크 기초 정리 :: DDos, QoS와 Rate Limiting DDoS(Distributed Denial of Service): 서비스 거부 공격의 일종으로 다수의 시스템에서 동시에 트래픽을 퍼부어서 서버나 네트워크가 정상 요청을 처리하지 못하게 마비시키는 공격DoS(단일 출발지)와 다르게 DDoS는 여러 대(보통 봇넷)에서 분산 공격하기 때문에 IP 하나 차단으로는 막기 어려움봇넷: 악성코드에 감염된 다수의 좀비 PC나 IoT 기기들을 공격자가 원격으로 조종하는 네트워크대표 공격 유형1. 볼륨 기반 공격: UDP Flood, ICMP Flood(Ping Flood)로 대역폭 자체를 포화시킴2. 프로토콜 공격: SYN Flood로 TCP 연결 처리 자원을 소진3. 애플리케이션 계층 공격: HTTP..

보안 2026.10.14

WAS 정리 :: Tomcat 배포와 nginx 리버스 프록시 연결

WAS 정리 :: Tomcat 배포와 nginx 리버스 프록시 연결Tomcat 자바 애플리케이션 배포와 nginx 리버스 프록시 연결* Tomcat: 자바(Java) 애플리케이션을 실행하는 WAS(Web Application Server)으로, nginx나 Apache와 달리 정적 파일 서비스보다는 자바 서블릿·JSP 실행이 목적이라 역할이 다름* 리버스 프록시: 리버스 프록시(Reverse Proxy)는, 클라이언트의 요청을 대신 받아서 뒤에 있는 실제 서버로 전달해주고, 그 응답을 다시 클라이언트에게 돌려주는 중계 역할을 하는 서버Tomcat 설치sudo apt install tomcat10 -y서비스 상태 확인sudo systemctl status tomcat10기본 접속 확인curl http://..

Web Server 2026.10.14

제목 : 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