[컴] 코딩 관련 youtube
dev tube / devtube / dev youtube / coding youtube / 코딩 유투브 / dev 동영상 / 영상 / 개발 영상 / dev 영상
Tags:
computer
[컴][네트워크] DMZ
dmz / network 네트워크에서 DMZ
DMZ
간단히 이야기하면, 외부망과 내부망 사이에 만약 서버를 둔다고 하면, 이 서버가 DMZ 에 있다고 한다.
- DMZ 는 외부망에 service 를 제공하는 host 들을 한곳에 몰아넣고, 이들은 외부망에 대해서 자신들이 서비스하는 port 만 열도록 하는 것이다. 이렇게 하므로써 다른 port 로 인해 발생할 수 있는 공격 당할 확률을 감소시킬 수 있다.
- DMZ 안에 들어가는 server 들의 예
- Web server
- Mail server
- FTP server
- VoIP server
- 내부망(internal network) 보다 secure 하지 않고, 외부망(public internet) 보다 insecure 하지 않다.
- 내부망에서도 특정 host 에서만 제한된 접근이 가능하도록 한다.
- DMZ를 이용해도 packet analyzer 를 이용한 sniffing, e-mail spoofing 같은 내부 공격(internal attacks) 은 막을 수 없다.
DMZ 조건
- LAN과는 다른 subnet 에 있어야 한다.
DMZ 를 통해 얻을 수 있는 이익
- 외부로 노출되는 부분을 최소화로 열고, 나머지들을 firewall 로 막을 수 있다.(DMZ --> LAN)
- 공격자가 실질적은 공격을 위해 LAN의 정확한 주소를 얻는데에 대해 시간을 벌 수 있다.
DMZ 에 대한 설명
DMZ 구성, 두개의 firewall 이용
- 이 방법이 가장 안전하다. 2개의 device 를 뚫어야 하기 때문이다.(compromised)
- 1번째 방화벽은 `외부망-->DMZ` 를 위해 구성하고, 2번째 방화벽은 `내부망-->DMZ` 에 대해 구성한다.
- 그리고 이 2개의 방화벽을 각기 다른 vendor 의 제품을 이용한다. 그러면 하나의 제품에서 security hole 이 발견되도, 다른 하나에서 안전할 수 있다.
- 단점: 관리가 어렵고, 비용이 크다.
Tags:
computer
[컴][리눅스] Linux에서 Login 실패 시 로그인 제한하기
일정 횟수 이상 실패시 제한 / 계정 잠그기
Linux에서 Login 실패 시 로그인 제한하기
리눅스에서 계정에 관한 대부분의 설정은 /etc/login.defs에서 가능pam_tally2 로 로그인 실패시 계정 제한
PAM (Pluggable Authentication Modules)# vi /etc/pam.d/password-auth
아래 파일을 보면 대충 어떻게 설정하는지 알 수 있다. 3번 로그인 실패하면 20분(1200초)동안 잠그게 된다.
#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_tally2.so file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 ... account required pam_unix.so account required pam_tally2.so ~ ~ ~ ~
pam_tally2
user id 의 failure count 를 확인할 수 있다.# pam_tally2 --user=my_user_id
잠겨버린 계정을 해제
# pam_tally2 --user=my_user_id --reset
pam_faillock 을 사용해서 계정 잠그기
pam_fillock 은 pam_tolly2 의 login 실패기능에 대한 기능향상 버전이다. (참고) 그래서 이녀석을 쓰면 훨씬 다양한 정보를 얻을 수 있다.설정
아래 내용을 2개의 파일 모두에 넣으면 된다. 순서가 중요하다.# vi /etc/pam.d/password-auth
# vi /etc/pam.d/system-auth
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600 ... account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so account required pam_faillock.so
root 계정도 잠그기
만약 root 도 일정 실패 이후에 잠그고 싶다면 even_deny_root 를 추가하면 된다.pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=600
sshd restart
그리고 sshd 를 restart 해줘야 한다.systemctl restart sshd
실패한 로그인 시도 확인
faillock --user my_user_id
'faillock' 를 치면, 실패한 로그인 전체 목록을 볼 수 있다.
실패로그 삭제
user 의 인증실패로그(authentication failure log)를 삭제하려면 아래처럼 하면 된다.faillock --user aaronkilik --reset
References
- How to Lock User Accounts After Failed Login Attempts
- Use Pam_Tally2 to Lock and Unlock SSH Failed Login Attempts
- Linux ETC - Login 실패시 계정 잠그기 및 PAM 설정
Tags:
computer
[컴][웹][자바][스프링] 간단한 hello world with spring 5
maven 으로 spring 5.0-mvc 의 helloworld 만들기
간단한 hello world with spring 5
-
mvn archetype:generate -DarchetypeGroupId=fr.uha.ensisa.ff -DarchetypeArtifactId=spring-mvc-archetype -DarchetypeVersion=1.0.3 -DgroupId=com.mysimple -DartifactId=my-simple-spring -Dversion=0.8 -DarchetypeRepository=http://kolorobot.github.io/spring-mvc-quickstart-archetype
-
pom.xml 의
<properties>
에<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
추가
-
plugin versrion 추가
<build> ... <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> ... </plugin> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.0</version> ... </plugin> </plugins> </build>
maven 에서 local jar import 하기
<repository> <id>in-project</id> <name>In Project Repo</name> <url>file://${project.basedir}/libs</url> </repository> <dependency> <groupId>dropbox</groupId> <artifactId>dropbox-sdk</artifactId> <version>1.3.1</version> </dependency>libs 안의 구조는 아래처럼 만든다.
/groupId/artifactId/version/artifactId-verion.jar
원하는 곳에 local repository 를 만들어서 사용하는 법
개인적으로 이방법이 가장 나은듯 하다.- Randomized Sort: Configuring Maven to Use a Local Library Folder
mvn install:install-file -Dfile=c:\\a\\programming\\java\\simple-spring\\my-simple-spring\\lib\\ex-common-1.0.1.jar -DgroupId=com.nh -DartifactId=ex-common -Dversion=1.0.1 -Dpackaging=jar -DlocalRepositoryPath=c:\\a\\programming\\java\\simple-spring\\my-simple-spring\\lib
- 이런식으로 등록하고, pom.xml 에 <dependency> 를 추가하면 된다.
maven-war-plugin 사용시
참고로 'maven-war-plugin' 을 사용하게 되면, <distributionManagement> 에 repository 를 추가해줘야 한다.
<repositories> ... <repository> <!-- DO NOT set id to "local" because it is reserved by Maven --> <id>lib</id> <url>file://${project.basedir}/lib</url> </repository> </repositories> <distributionManagement> <repository> <!-- DO NOT set id to "local" because it is reserved by Maven --> <id>lib</id> <url>file://${project.basedir}/lib</url> </repository> </distributionManagement>
local repository 에 jar 을 등록
- Maven – FAQ, I have a jar that I want to put into my local repository. How can I copy it in? : local repository 에 jar 을 등록한다.
.so 등 다른 type 의 library 를 이용할 때
특정 file 을 war 에 포함하기
.dll 같은 특정파일을 target/WEB-INF/lib 에 넣고 싶었다. 이 .dll 을 lib/*.jar 에 의해 쓰이는 파일이다. 그래서 찾은 방법은 그냥 copy 해 넣는 방법이 가장 나았다. 아래를 참고하자.
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <executions> <execution> <id>copy-libs</id> <phase>prepare-package</phase> <goals> <goal>exec</goal> </goals> </execution> </executions> <configuration> <workingDirectory>${project.basedir}</workingDirectory> <executable>cp_sodll.bat</executable> <!-- <executable>bash</executable> <commandlineArgs>handleResultJars.sh</commandlineArgs> --> </configuration> </plugin>
tomcat 띄우기
- tomcat download : Apache Tomcat® - Apache Tomcat 9 Software Downloads
- 압축을 푼다.
- cmd 창을 열고,
- <tomcat_root>\bin\catalina.bat 실행
tomcat의 debug port 열기
JPDA_ADDRESS port 로 attach를 하면 된다.set JPDA_ADDRESS=8000 set JPDA_TRANSPORT=dt_socket bin/catalina.bat jpda start
References
Tags:
computer
[컴][웹] open graph meta tag
태그 / 메타태그 / 페북 메타태그 / 카카오톡 메타 태그 / 텔레그램 메타태그
meta property 중 open graph 관련 meta 를 수정할일이 생겼다. 몇가지 알게된 사실이 있어서 적어놓는다. 아래는 필자가 사용한 meta tag 이다.
open graph meta tag
meta property 중 open graph 관련 meta 를 수정할일이 생겼다. 몇가지 알게된 사실이 있어서 적어놓는다. 아래는 필자가 사용한 meta tag 이다.
<meta property="og:title" content="사이트 제목"> <meta property="og:type" content="website"> <meta property="og:description" content="이 사이트는 개인 사이트 입니다."> <meta property="og:url" content="https://www.mysite.com:443"> <meta property="og:image" content="http://www.mysite.com/apple-touch-icon.png"> <meta property="og:image:secure_url" content="https://www.mysite.com/apple-touch-icon.png"> <meta property="og:image:width" content="180" /> <meta property="og:image:height" content="180" />
og:image 의 content 는 path 가 아니라 url 이다.[ref. 2]
처음에는 그저 path 를 적으면 되는지 알았다. 하지만 그러면 메신저등에서 제대로 동작하지 않는다.https 를 사용할 때는 og:image:secure_url 을 사용하자.
이것은 확실치 않지만, ref. 1의 글에서도 https 는 secure_url 을 사용하라고 하기도 하고, 실제로 og:image 에 https url 을 넣고 텔레그램(telegram) 에서 테스트를 해봤는데 잘 동작하지 않았다.og:image 의 url 을 변경하지 않으면 다시 updaet 하지 않는 경우도 있다.
이것은 적어도 facebook 에서는 맞는 이야기 같다. ref. 3 을 참고하자.메신저의 cache 된 image 를 purge 하는 법
각 메신저마다 refresh 하는 법을 제공한다.- 카카오톡:
- 텔레그램
- webpagebot(https://telegram.me/webpagebot) 으로 가서,
- /updateview 를 치면, link 를 넣으라고 한다. 그럼 link 를 넣으면 해당 link 가 update 된다.
- Did you know you can update the link preview on Telegram? | Telegram Geeks
References
- The Open Graph protocol
- https://stackoverflow.com/a/9858694
- Webmasters - Sharing, Facebook developers
Tags:
computer
[컴][유틸] VSCode 에서 간단한 Maven project 사용하기
vscode java /
vscode 에서 Maven for Java 를 사용 해 보자.
VSCode 에서 간단한 Maven project 사용하기
vscode 에서 Maven for Java 를 사용 해 보자.
java 관련 extension들
아래 3개의 extension 을 설치하자.
- Language Support for Java(TM) by Red Hat - Visual Studio Marketplace
- Debugger for Java - Visual Studio Marketplace
- Maven for Java - Visual Studio Marketplace
maven install
- 여기서는 Windows 를 이용한다.
- 여기 서 download 를 하자.(apache-maven-3.5.4-bin.zip) 을 다운로드 하면 된다.
- 그리고 원하는 경로에 압축을 풀자. 여기서는 아래 경로에 풀었다.
- c:\a\apps\maven\apache-maven-3.5.4
- Maven – Installing Apache Maven 에서 얘기하는 것처럼 Windows 에는 2가지를 해줘야 한다.
- %JAVA_HOME%변수 설정(시스템 > 고급 시스템 설정 > 환경변수 )
- %PATH%에 maven\bin 의 경로를 추가
- cmd 를 열어서 mvn -v 를 해서 동작하면 설정이 잘 된 것이다.
maven 으로 project 만들기
아래처럼 해주면 간단한 project 를 하나 생성할 수 있다.
mvn archetype:generate -DgroupId=com.mynamh.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
참고: maven 의 Archetype : maven 의 Archetype은 maven template 을 자동으로 생성해주는 tool 같은 것이다. 자신만의 archetype 을 생성할 수도 있고, 기존에 만들어진 archetype 을 사용할 수도 있다.
Vs Code 에서 mvn path 설정하기
vscode 를 열자. 그리고 Open User Setting 을 하자. 그리고 아래 처럼 mvn 실행파일의 경로를 set 해주자. 아래는 Red Hat's Java Language Support extension을 설치한 상황에서 configuration 이다. (java.home){... "maven.executable.path": "c:\\a\\apps\\maven\\apache-maven-3.5.4\\bin\\mvn.cmd", "java.home": "c:\\Program Files\\Java\\jdk1.8.0_121", // Red Hat's Java Language Support extension "maven.terminal.useJavaHome": true, }
Vs Code 에서 project 불러오기
- File > Open Folder > <project folder>선택
compile 하기
이제 command pallet (ctrl+shift+p) 에서 아래처럼 maven compile 을 하자.- Maven: Execute commands > my-app 선택 > compile
실행하기
compile 이 다 되면 F5를 눌러서 debugger 로 run 을 하면 된다.
Spring Web app (Spring Boot)
- Build Java Web Apps with VS Code
- git clone https://github.com/spring-guides/gs-spring-boot.git
- vscode 에서 연다.
- complete/src/main/java/hello/Application.java 를 open
- F5(debugger run) 를 누르면, launch.json 이 생성된다.
- 다시 F5 를 누르면 실행된다.
- 브라우저를 열고 localhost:8080 으로 접속해 보면 화면이 보인다.
attach debugger
- 간단한 hello world with spring 5 > tomcat의 debug port 열기 를 참고하자.
- Tomcat for Java - Visual Studio Marketplace : (2019-10-01) 기준
이것을 사용하려면 , tomcat 을 chocolety 의 기본설정으로 설치하면 안된다.(그냥 다운로드 받아서 설치하자.) tomcat directory 내에 모든 관련 파일들이 있어야 tomcat directory 로 인식하기 때문이다.
여튼, 이 것을 이용해야, webapp 이 초기에 initializing 하는 부분에 대한 debugging 이 가능하다.
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ ... { "type": "java", "name": "Attach", "request": "attach", "hostName": "localhost", "port": 8000 } ] }
See also
Tags:
computer
[컴][웹] Scaling
스케일링 / 확장 / 웹 확장 / 서버 확장 / 서버 증설 / 디비 증설 / 디비 스케일링
Scaling
Database Scaling
https://youtu.be/dkhOZOmV7FoApp Server Scaling
https://youtu.be/xUumgxZ04SM
Tags:
computer
피드 구독하기:
글 (Atom)