썸네일 2. 특정 포트 허용 하기 (1) - 특정 아이피, 포트 연결확인 리눅스 자체 방화벽에서 포트를 열고 닫는데 이때 다른 컴퓨터나 VM에서 접속하려고 하면 안되는 경우가 있다. 포트가 닫혀있는지 확인하는 법은 cmd에서는 ping이나 tcping을 사용하면 된다. 아래처럼 나오면 연결이 안된다는 뜻 아래처럼 나오면 연결이 잘 동작한다는 뜻이다. 하지만 특정 포트에 알아보고 싶으면 tcping을 쓰면 된다. 설치방법은 C:\Windows\System32 경로에 아래 파일을 복사하면된다. 그리고 cmd창에 tcping이라고 입력하면 쭈루룩 무언가가 뜨는데, 이러면 설치 성공이다. 5009포트에 대해서 tcping 테스트를 해보면 아래와 같이나온다. No response라고 뜨는데, 이는 5009 포트가 닫혀있다는 것을 의미한다. 5006 포트는 열려있기에 아래와 같이 정상적..
1. 리눅스에서 많이 쓰는 명령어 리눅스는 대표적으로 우분투, CentOS, KaliLinux 등이 있지만 Ubuntu 기준으로 기술한다. 1. 리눅스에서 실행되고 있는 프로세스 확인하기 ps 명령어를 사용한다. 옵션 설명 -e 모든 프로세스를 출력해 준다. -f 풀 포맷으로 보여준다. (UIP, PID) -l 긴 포맷으로 보여준다. -p 특정 PID의 프로세스를 보여준다. -u 특정 사용자의 프로세스를 보여준다. 여기서 PID는 프로세스를 구별하는 유일한 요소이며, UID는 프로그램을 실행한 사람의 정보를 나타내는 요소이다. 그리고 PPID는 프로세스를 만든 부모 프로세스의 PID를 나타내는 값이다. 옵션으로는 aux, -e 등 많지만 -ef나 -el을 grep과 함께 많이 사용한다. $ ps -el | grep "찾을 문자열" 예) ..
썸네일 5. nginx 설치 방법(Ubuntu 18.04) WEB이란 네트워크 체계 위에서 동작하는 통신 규약(HTTP) 중의 하나이다. 인터넷 안에서 돌아가는 시스템들을 나열해 보면 아래와 같다. 이름 프로토콜 포트 기능 WWW HTTP 80 웹서비스 WWW HTTPS 443 보안인증서 추가된 웹서비스 FTP FTP 21 파일 전송 서비스 DNS DNS 23 네임서비스 NEWS NNTP 119 인터넷 뉴스 서비스 nginx는 요즘 떠오르는 차세대 웹서버 소프트웨어이다. 적은 자원으로 더 많은 일을 할 수 가 있다. APCHE는 요청이 많을 경우 Process를 생성하여 처리하는 방식(preFork)이다. APACHE는 접속마다 프로세스 또는 Thread를 생성하는 구조이다. 동시 접속 요청이 10,000개라면 그 만큼 Thread 생성 비용이 들 것이고 대용량..
썸네일 3. nodejs 라이브러리 sequelize 설치 및 로직 시퀄라이즈는 ORM(Object-relational Mapping)으로 분류가 된다. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구이다. 1. express를 이용해서 새 프로젝트 생성 $ express sequlize_ex --view=pug 위에 나온대로 디렉토리를 바꿔준뒤 npm i를 해준다. $ cd sequelize_ex $ npm i 방금 만든 프로젝트에 sequelize와 mysql2 패키지를 설치한다. 그 후 sequelize 커맨드를 사용하기 위해 sequelize-cli를 전역 설치 $ npm i sequelize mysql2 $ npm i -g sequelize-cli $ sequelize init 그 뒤 파일들을 아래대로 세팅 models/index.js co..
2. nodejs 라이브러리 sequelize의 쿼리 명령문 1. Insert 문 SQL문법 INSERT INTO nodejs.users (name, age, married, comment) VALUES ('zero', 24, 0, '자기소개1'); sequelize 문법 const { User } = require('../models') User.create({ name: 'zero', age: 24, married: false, comment: '자기소개1', }); 이하 아래부터는 위는 SQL문 아래는 seq문법이다. - SELECT * FROM nodejs.users; - User.findALL({}); - SELECT * FROM nodejs.users LIMIT 1; - User.findOne({}); - SELECT name, married FROM ..
1. nodejs의 sequelize 라이브러리를 이용한 mysql연결 (1) - mysql 세팅 1. mysql installer를 이용하여 mysql connector 설치 이 때 아이디는 root이며 비밀번호는 우선 12351235로 설정 또한 workbench도 같이 설치 mysql installer download 링크 https://dev.mysql.com/downloads/file/?id=490394 MySQL :: Begin Your Download The world's most popular open source database dev.mysql.com 리눅스의 경우 아래를 따른다. $ sudo apt-get update $ sudo apt-get install -y mysql-server-5.7 $ mysql_secure_installation 2. db연결 및 테이블 생성 C:\P..
1 .이더리움 계열 RPC 프로토콜 [go ethereum, parity wallet] 이더리움 계열의 코인은 대표적으로 이더리움, 이더리움 클래식, 익스팬스 등이 있다. RPC연결을 하여 월렛을 컨트롤 하기 위해서는 코어에 접근해서 블록을 syncing 해줘야한다. 그런 것을 지원해주는 것은 대표적으로 Go-ethereum(geth)과 Parity이다. Geth Geth는 이더리움 재단(Ethereum Foundation)이 제공하는 공식 클라이언트 소프트웨어로써, Go언어로 개발되었다. Geth를 처음 시작하면 네트워크 내의 다른 이더리움 클라이언트(노드node라고도 불림)에 연결하는 작업을 먼저 시작하고 블록체인의 전체 사본을 내려받게 된다. Geth는 블록체인의 복사본을 최신 상태로 유지하기 위해 끊임없이 다른 노드와 통신한다. 또한 블록을 채굴하고, 블록체인에 트랜잭션을 추가하고 ..
썸네일 4. 정보보호 중급 과정 - 해킹 실습 1. SQL Injection 1) ID 입력란에 'or 1=1#', 비밀번호에 pwpwpw 나 아무것이나 치면 True가 뜨면서 admin으로 로그인이 성공함. 해결책) 유효성 검사를 통해 특수 문자, 기호를 아이디 란에 입력하지 못하게끔 해야함. 2. 웹사이트에 malware 업로드 1) 웹사이트에 php 명령문을 먹는 malware 파일을 게시판에 업로드 함. 2) 업로드가 성공하면 그 파일이 업로드 된 경로를 찾아 들어감 3) 그 뒤 주소창에서 ?cmd=cat/etc/passwd를 입력하면 malware php파일 안에서 명령문이 먹으면서 비밀번호들이 유출 됨. 해결책: 파일을 업로드 시 jpg라던지 pdf 라던지의 확장자명을 강제하며 파일 업로드 권한을 아무에게나 주지 않는다. 3. 피싱 1) ..
썸네일 3. 정보보호 중급 과정 - 네트워크 보안 상세 1. IDS/IPS - 침입탐지시스템(IDS, Intrusion Detection System)은 ID 절차를 자동화하기 위해 이벤트를 수집, 분석, 처리, 저장하기 위한 기능을 수행한다. • IDS는 다음과 같은 공통적인 기능들을 수행한다. - 식별된 이벤트와 관련한 정보를 기록한다. - 식별된 이벤트 중 중요도에 따라 관리자에게 공지한다. - 특정 기간, 조건을 기반으로한 보고서를 생성한다. - 침입방지시스템(IPS, Intrusion Prevention System)은 IDS의 기능과 더불어 식별된 이벤트를 처리 후 차단하는 기능을 수행한다. 2. Snort - 시그니처 기반 NIDS의 엔진으로 사용되는 대표적인 오픈소스이다. \ - IDS가 수행해야할 기능들에 대한 구성 요소를 포함한다. - 네트..
썸네일 2. 정보보호 중급 과정 - 보안 솔루션 소개 1. UTM(통합 위협 관리, Unified Threat Management) - Firewall, VPN, IPS, Anti-virus, Anti-DDoS, 웹필터링 등 다양한 보안기능을 단일 어플라이언스 형태로 통합하여 관리 복잡성을 최소화하고 복합적인 위협요소를 효율적으로 방어하기 위한 통합보안 솔루션 - 여러 기능을 수행함으로써 관리의 편의성과 관리비용의 절감을 가져오는 장점이 있는 반면 단일 전용 장비 대비 기능과 성능, 신뢰성에 대한 이슈가 요구 된다. - 단순히 비인가 IP 차단 뿐만 아니라 침입방지시스템(IPS) 기능까지 지원하고 해킹에 대한 탐지, 차단 역할도 수행하게 되며, 이외에도 애플리케이션 필터링, URL 필터링, 안티바이러스(네트워크) 등의 보안 기능을 탑재하고 있다. 솔루션 예..
썸네일 1. 정보보호 중급 과정 - 정보보호의 이해 1. 정보보호의 기본 3대 요소 (C, I, A) 기밀성(비밀성) - Confidentialty - 정보는 소유자의 인가에 의해서만 접근이 허용되어야 한다. - 인가되지 않은 정보의 공개는 금지되어야 한다. 무결성 - Integrity - 정보의 정확성, 완전성이 보장되어야 한다. - 비인가자에 의한 정보의 변경, 삭제, 생성 등이 발생하지 않아야 한다. 가용성 - Availability - 정당한 권한이 주어진 사용자에게 정보 서비스가 거부되어서는 안된다. - 데이터 백업, 중복성 유지 등을 통해 가용성을 확보한다. 2. 침해 발생 유형 침해 발생 시 대응 순서 탐지/Assessment -> 헌팅 -> 격리 -> 복구 * 위협 탐지: 어떤 위협을 탐지할 것인지 미리 정책 또는 알고리즘이 존재하는 상태에..
썸네일 [JAVA+Taglib+Oracle 게시판] 06. 수정, 삭제 구현 아까 작성하였던 contentView.jsp에서 수정하기와 삭제하기를 활성화해보겠다. 1. 뷰페이지 경로 설정 contentView.jsp를 수정해준다. 수정하기를 클릭하면 submit이 되고 삭제버튼을 누르면, /delete?bNO=1처럼 url이 변경된다. 이를 컨트롤러에서 조정해주면 된다. 또한 글번호는 input hidden으로 해줘서 submit이 되었을 때 글번호를 HttpServletRequest에 잘 저장되도록 한다. contentView.jsp 글내용 확인 번호 ${contentView.bNo} 조회수 ${contentView.bHit} 작성자 제목 내용 ${contentView.bContent} 목록보기 삭제 답변 2. 컨트롤러 설정 BController.java에 리퀘스트맵핑 modi..