쿠...sal

[컴][유틸] 리눅스에서 괜찮은 File explorer

파일 익스플로러 / explorer / file explorer 토커 / total commander / totalcmd


linux 에서 괜찮은 file explorer 

  • PCManFM:
    apt-get install pcmanfm


References

  1. https://www.slant.co/topics/5148/~gui-linux-file-managers

[컴][해킹] 해킹 공부 자료



해킹 공부 자료


분류

  • Reversing
  • System
  • Network
  • Web
  • Forensics
  • CTF

System

Buffer Overflow

[컴] 코딩 관련 youtube

dev tube / devtube / dev youtube / coding youtube / 코딩 유투브 /


코딩 관련 youtube 를 모아놓은 사이트, 데브튜브


[컴][네트워크] DMZ

dmz / network 네트워크에서 DMZ

DMZ

간단히 이야기하면, 외부망과 내부망 사이에 만약 서버를 둔다고 하면, 이 서버가 DMZ 에 있다고 한다.


DMZ 조건


  • LAN과는 다른 subnet 에 있어야 한다.

DMZ 를 통해 얻을 수 있는 이익


  • 외부로 노출되는 부분을 최소화로 열고, 나머지들을 firewall 로 막을 수 있다.(DMZ --> LAN)
  • 공격자가 실질적은 공격을 위해 LAN의 정확한 주소를 얻는데에 대해 시간을 벌 수 있다.


DMZ 에 대한 설명





[컴][리눅스] 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

  1. How to Lock User Accounts After Failed Login Attempts
  2. Use Pam_Tally2 to Lock and Unlock SSH Failed Login Attempts
  3. Linux ETC - Login 실패시 계정 잠그기 및 PAM 설정



[컴][웹][자바][스프링] 간단한 hello world with spring 5

maven 으로 spring 5.0-mvc 의 helloworld 만들기

간단한 hello world with spring 5

  1. 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

  2. pom.xml 의 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 추가
  3. 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\\exafe-common-1.0.1.jar  -DgroupId=com.nh -DartifactId=nh-api -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 을 등록

.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 띄우기

  1. tomcat download : Apache Tomcat® - Apache Tomcat 9 Software Downloads
  2. 압축을 푼다.
  3. cmd 창을 열고,
  4. <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

  1. Create Spring Web MVC Project from Maven Archetype in Eclipse Neon - Pega Exchange

[컴][웹] open graph 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 하는 법을 제공한다.




References

  1. The Open Graph protocol
  2. https://stackoverflow.com/a/9858694
  3. Webmasters - Sharing, Facebook developers