vim upgrade or 업그레이드 내역 확인 하기!

Vim과 Neovim 편집기에서 OS 명령어 실행 취약점 발견 2019.06.13

  • 보안 연구원 Armin Razmjou는 최근 리눅스에서 가장 인기 있는 커맨드라인 텍스트 편집 유틸리티인 Vim과 Neovim에서 심각도 높은 임의 OS 명령 실행 취약점(CVE-2019-12735)을 발견
    • Vim 편집기 : 사용자들이 리눅스에서 텍스트, 스크립트, 문서를 포함한 파일을 생성하고, 열람하거나 수정할 수 있는 프로그램
      • Neovim 편집기 : 플러그인, GUI 등이 개선된 Vim 확장 버전 프로그램
  • 이 취약점은 “modlines”를 처리하는 과정에서 발견됨
    + modelines : 문서의 시작과 마지막 라인 근처에 파일의 제작자가 언급한 커스텀 설정 세트를 자동으로 찾아 적용하는 기능으로 기본으로
                          활성화되어 있음
  • 비록 보안상의 이유로 modelines의 서브셋만을 허용하고 샌드박스 보호를 사용할지라도 “:source!” 명령어를 사용하면 샌드박스를
    우회할 수 있음

  • 따라서, Vim이나 Neovim을 사용해 특별히 제작된 파일을 열람하는 것만으로도 공격자가 피해자의 리눅스 시스템에서 명령을 실행하고
    제어권을 탈취할 수 있음

  • Vim(8.1.1365)과 Neovim(v0.3.6)은 해당 취약점 문제 해결을 위해 최근 업데이트를 발표

  • 해결 방안

    • modelines 기능 비활성화
    • modelines의 수식을 비활성화 하기 위한 “modelineexpr” 비활성화
    • Vim modelines의 대한인 “securemodelines plugin” 사용

시사점

  • 리눅스 및 Vim과 Neovim 에디터를 최신 버전으로 업데이트하고, 주기적인 권한 탈취 여부 확인

vim 확인 하기

vim upgrade 하기

sudo apt-get upgrade vim 명령어를 이용해서 업그레이드를 할 수 있다.

만약 업그레이드를 할 내용이 없으면 다음과 같은 결과가 확이 된다.

$> sudo apt-get upgrade vim
Reading package lists... Done
Building dependency tree
Reading state information... Done
vim is already the newest version (2:8.0.1453-1ubuntu1.1).
Calculating upgrade... Done
The following package was automatically installed and is no longer required:
  linux-aws-headers-4.15.0-1035
Use 'sudo apt autoremove' to remove it.
The following packages have been kept back:
  linux-aws linux-headers-aws linux-image-aws
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

vim 최신 버젼으로 강제 업데이트 하기

PPA를 이용해서 최신 버젼으로 업데이트를 한다.

$> sudo add-apt-repository ppa:jonathonf/vim
$> sudo apt update
$> sudo apt install vim

vim upgrade 내역 확인 하기

changelog를 확인하면 업데이트 기록이 확인 된다. 다음과 같인 로그가 있다면, CVE-2019-12735.patch에 대한 패치가 되어 있는 것이다.

$> apt changelog vim
vim (2:8.0.1453-1ubuntu1.1) bionic-security; urgency=medium

  * SECURITY UPDATE: Arbitrary code execution
    - debian/patches/CVE-2019-12735.patch: disallow
      sourcing a file in the sandbox in src/getchar.c
    - CVE-2019-12735

 -- Leonidas S. Barbosa <leo.barbosa@canonical.com>  Thu, 06 Jun 2019 14:31:41 -0300

대부분 서비스를 확인하니 이미 패치가 되어 있었다.

참고자료

Posted by lahuman

서버 시작시 서비스 시작 하기

사용하는 웹 서비스를 서버가 재시작 되었을때, 자동으로 시작하고 싶을때 사용하는 방법이다.

간단하가 스크립트를 /etc/rc.d/rc.local에 등록하면 서버가 재기동 되었을때, 해당 스크립트가 1회 동작을 한다.

# 최초 한번은 rc.local에 실행권한을 줘야 한다.
$> chmod +x /etc/rc.d/rc.local

# 이후 rc.local 파일의 하단에 원하는 스크립트를 삽입 한다.
$> vi /etc/rc.d/rc.local
... rc.local 파일
# 스크립트 추가
nohup java -jar /home/lahuman/hello.jar & > /dev/null
... 종료

# 재기동 후 테스트
$> reboot now
... 재기동 후

# 서비스 확인
$> ps -ef | grep hello

추가로 실행이 root 계정으로 실행이 된다.

만약 다른 계정으로 실행을 하고 싶으면/rc.local에 스크립트를 su 계정 -c ‘명령어’ 로 추가 한다.

$> vi /etc/rc.d/rc.local
... rc.local 파일
# 스크립트 추가
su lahuman -c 'nohup java -jar /home/lahuman/hello.jar & > /dev/null'
... 종료

참고 자료


Posted by lahuman

특정 디렉토리에서 구조를 출력 하는 방법

디렉토리의 구조를 출력 하는 방법은 2가지가 있다.

  1. Tree 모듈을 설치 한다.

tree 명령어는 많은 옵션을 제공하고 널리 사용되는 모듈이다.

다만 쉬운 설치를 위해서 인터넷이 되어야 한다.

  1. Command 를 이용한 출력
find . -type d | sed -e "s/[^-][^\/]*\//  |/g" -e "s/|\([^ ]\)/|-\1/"

설치가 필요 없고 단순하게 철력이 가능하다. 다만, 옵션이 없기 때문에 COMMAND를 조합 해야 한다. 예를 들어 abc 디렉토리를 제외 하고 싶다면 다음과 같은 명령어를 실행 해야 한다.

find . -type d | grep -v abc | sed -e "s/[^-][^\/]*\//  |/g" -e "s/|\([^ ]\)/|-\1/"

일회성으로 쓰기 좋다!

참고 자료


Posted by lahuman

Tor Proxy 포트 9050을 원격에서 접속 하는 방법

netstat 로 특정 포트를 확인 하면 2개의 IP:PORT가 표출 되는데, 첫번째 IP가 127.0.0.1 일 경우, 오직 로컬(localhost-loopback interface)에서만 접근 이 가능하다.

$ sudo netstat -ntlup | grep 9050
tcp        0      0 127.0.0.1:9050          0.0.0.0:*               LISTEN      683/tor

Tor에서 제공되는 Proxy 9050 port는 socks5 protocol로 로컬에서만 서비스 된다. 

DeleGate 설정

일본에서 제작된 것으로 보이며, 2014년 10월에 9.9.13으로 마지막 UPDATE 된 프로그램이다. 

기초 사용법은 Delegate 사이트에 잘 나와있다. 

설치는 BINARY 형식을 다운받아 압축을 풀면 추가 설치할 필요는 없다. 

# download 9.9.13
$ wget ftp://delegate.hpcc.jp/pub/DeleGate/bin/linux/latest/linux2.6-dg9_9_13.tar.gz
# 압축 해제
$ tar xvzf linux2.6-dg9_9_13.tar.gz

실행은 설치된 디렉터리의 bin/dg9_9_13 을 실행 하면된다.

# 설치된 디렉터리로 이동
$ cd DGROOT/bin/
# 메일 정보를 작성하지 않을 경우 다음의 오류 발생
# ERROR! ADMIN="your_mail_address" must be specified.
$ vim dg9_9_13.conf
# ADMIN 찾아 주석 제거후, 메일 주소 작성
ADMIN=Email.address
# 저장 후 종료
# 실행 -P제공PORT SERVER=서버타입(HTTP,FTP,SSH ETC..) SOCKS=포워딩대상정보
./dg9_9_13 -P8890 SERVER=socks5 SOCKS=localhost:9050

처리된 결과를 확인하면 다음과 같다.

tcp        0      0 0.0.0.0:8890            0.0.0.0:*               LISTEN      6069/./dg9_9_13

외부에서 8890 포트로 Proxy요청을 보내면 tor proxy를 사용 할 수 있다.

참고 자료


Posted by lahuman

1. LOG 삭제 


옵션 설명 : 검색된 파일을 삭제 하라

find 명령어를 이용하여  .log 로 시작하고 14일(2주) 넘은 파일 찾기를 실행 하고  결과를 삭제 처리


$ find /was/apache-tomcat-8.0.33/logs   -mtime  +14   -name " *.log"  -exec rm {} \;




2. 웹 서비스 상태 확인 (wasStatus.sh)


옵션 설명 : WEBPING 의 값이 200일때 까지 반복하라

curl 명령을 이용하여 http://localhost:8080/login 페이지에서 response_code 가 200(성공) 이 표출 될때 까지 10초에 한번식 반복 한다.


#!/bin/bash


WEBPING=0

until [ $WEBPING == "200" ];

do

  echo $WEBPING 

  WEBPING=$( curl -sL -w "%{http_code}\\n" "http://localhost:8080/login" -o /dev/null)

  echo --- sleeping for 10 seconds

  sleep 10

done

echo $WEBPING

echo Was is running!



출처 :

1. http://unix.stackexchange.com/questions/13605/how-to-find-files-in-subdirs-and-sort-them-by-filename-in-a-single-command

2. http://stackoverflow.com/questions/12747929/linux-script-with-curl-to-check-webservice-is-up


Posted by lahuman

참고 주소 :

https://github.com/lahuman/docker-pure-ftpd
https://github.com/stilliard/docker-pure-ftpd/issues/5

FTP 서버 구축

  • 우선 해당 git에서 파일을 가지고 옵니다.

    git clone https://github.com/lahuman/docker-pure-ftpd.git
    
  • docker를 이용한 빌드를 진행합니다.

    docker build -rm -t pure-ftpd .
    
    • Dockerfile에서 Passvie Mode에 대한 설정되지 않으면, 추후 서버에서 수정을 하여도 재대로 반영이 되지 않습니다. 이것 때문에 하루 종일 삽질하였습니다.
  • FTP 서버를 실행 합니다.

    docker run -d -it -p 30000-30009:30000-30009 -p 21:21 -p 20:20 -v /n001/ftp_data:/home --name ftpd_server pure-ftpd
    
    • Dockerfile에서 30000 ~ 30009 포트를 passvie 모드로 열어 두었기 때문에 해당 포트를 추가로 오픈 하는 것이고, 20번 포트는 active모드일 경우 데이터를 주고 받을 때 사용 하기 때문에 함께 열어 줍니다.
    • -v 로는 파일 업로드할 위치를 잡아 주면 됩니다. 예제에서는 /n001/ftp_data 로 연결 하였습니다.
  • 사용자 추가

    • 우선 /bin/bash모드로 docker에 접속을 하여 사용자를 추가 합니다.
      docker exec -it ftpd_server /bin/bash
      
    • 사용자 추가는 pure-pw를 이용하여 진행합니다.
      pure-pw useradd useId -u ftpuser -d /home/ftpusers/usePath
      #패스워드를 2회 입력하도록 유도 합니다.
      pure-pw mkdb
      
    • 사용자 변경시 서버에 재기동이 필요 없습니다. 자세한 내용은 여기를 참조 하셔요.
  • 테스트

    • 다른 PC 에서 다음과 같이 진행 합니다.
      ftp SERVER_IP
      

추가 : Active Mode 와 Passive Mode

참고 : https://documentation.cpanel.net/display/CKB/How+to+Enable+FTP+Passive+Mode

  • Active Mode
    • 명령어와 데이터 전송을 특정 포트를 이용하셔 전송 됩니다.
      • 명령어 21
      • 데이터 20
  • Passvie Mode
    • 데이터 전송을 다른 포트를 이용하셔 전송 됩니다.
      • 명령어 21
      • 데이터 1501 ~ 2345 또는 사용자 지정 범위

NAT(방화벽) 설정시 Active모드는 데이터 전송이 막힐수 있으나, Passive 모드는 가능할 수 있습니다.


MD FILE : 

FTP_SERVER.md



Posted by lahuman

1. Korean(Hangul) setting

  - 한글 설정  : 기본 Korean 키보드에서는 한글을 사용할 수 없다.

    다음과 같은 명령어를 이용하여 설치 필요

sudo apt-get install ibus-hangul

* 설치 이후 꼭 재기동 필요

참고 URL : http://askubuntu.com/questions/409528/how-do-i-install-the-korean-hangul-keyboard-on-ubuntu-13-10


2. Vmware Player Install

  - 우선 다음 URL에서 다운로드를 진행 한다.

    다운로드 URL : https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0


  - 다운로드 이후, 설치는 다음의 명령어로 진행 한다.

cd ~/Downloads
chmod +x VMWare*.bundle
sudo ./VMWare*.bundle

* 설치시 약 1~2 시간 이상이 걸립니다. 

  또한 설치 진행중에 PC가 멈춘는 현상이 발생 합니다. 

  그냥 기다리시면 설치 완료 됩니다.(이걸 몰라서 계속 강제 재기동 했었습니다...)

참고 URL : https://xpressubuntu.wordpress.com/2014/09/24/how-to-install-vmware-player-in-ubuntu-14-04/


* VirtualBox는 쉽게 설치는 되지만 커널 관련 crash가 있다는 이야기가 있고, 실제로 Ubuntu가 비정상상태가 되는 현상이 있었습니다.

  설치 전에 해당 내역에 대해 검색 하시고 확인후 진행 하셔요.

* VirtualBox 5.0에서 개선 되었다고 했으나, 제가 설치한(2015.09.30 기준)  Ubuntu 14.04.3 LTS 버젼에서는 5.0에서 오류가 발생했습니다.


실제 Ubuntu 설치는 30분 정도가 걸렸으나, 상위 설정을 찾는데 오랜 시간이 걸렸습니다.

(검색하면 금방나오는 거긴 한데... 잘 몰라서 그러네요..)


3. JDK 설치하기

다음의 명령어를 이용할 경우 해당 패키지를 찾을 수 없다는 메시지를 보게 된다.

sudo apt-get install openjdk-8-jdk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package openjdk-8-jdk

다른 방법으로 직접 Oracle사이트에서 jdk-[version]-linux-x64.tar.gz 파일을 받아서 압출을 풀고, /usr/local/java 밑으로 이동 후 해당 위치를 JAVA_PATH로 추가 하여 처리 

#after download
tar -xvf /path/to/file.tar.gz

#after uncompress
vi ~/.bashrc

#Move last line Add this
JAVA_HOME=/path/to/unpacked/archive
export PATH=$PATH:$JAVA_HOME/bin

참고 URL : http://askubuntu.com/questions/673633/installing-java-on-ubuntu


4. Ubuntu를 사용해본 첫 느낌은.. 

일단 무겁다 입니다. 생각보다 무겁습니다. 많이....


기본 GUI 인 Ubuntu Desktop가 무거운건지, 많이 버벅입니다. 

GUI는 변경이 가능하다고 하니, 가벼운게 무엇인지 검색을 해봐야겠네요.

참고 URL : http://www.htpcbeginner.com/lightweight-desktop-environment-for-ubuntu-server/

Posted by lahuman

Centos 또는 fadora 등에서 NGINX를 yum으로 설치할 경우 버젼은 1.6.3 입니다.(2015년 7월 6일 기준)

최신 1.9.2 버젼에서 몇가지 오류(1.9.1 버젼의) 수정과 stream moudle 의 성능관련 많은 변화가 있어, 설치를 해보았습니다.

(현재 안정화된 버젼은 1.8.0 입니다. 혹시 서비스를 하실 분은 안정화 버젼 사용을 추천 드립니다.)


다음 내역은 여기 에서 해당 파일을 다운 받을 수 있습니다.


우선 nginx.org 사이트에서 최신 버젼을 다운 받습니다.


TIP : 만약 Docker를 이용하지 않으실 분은 다운로드 이후, run.sh만 따라서 진행하시면 설치가 가능합니다.


Dockerfile을 생성합니다.

# lahuman@daum.net 

FROM centos:centos7
MAINTAINER The CentOS Project 

RUN yum -y update; yum clean all
RUN yum -y install epel-release tar ; yum clean all
#RUN yum -y install gcc-c++ zip unzip wget openssl pcre-dev pcre-devel zlib-devel make ; yum clean all
RUN yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel

# 다운 로드 진행 혹시 동작 하지 않을 경우, 수동으로 처리 하셔요.
RUN  wget http://nginx.org/download/nginx-1.9.2.tar.gz
RUN tar -xvzf nginx-1.9.2.tar.gz


# Dokcerfile에서 설정을 진행 하였을 경우 오류 발생 하여 멈추는 현상 있습니다. Shell 파일로 처리 하셔요.
ADD run.sh /run.sh
RUN /run.sh

EXPOSE 80

CMD [ "/usr/sbin/nginx" ]


run.sh 파일을 생성합니다.

#!/bin/sh

cd /nginx-1.9.2
./configure \
--user=nobody                          \
--group=nobody                         \
--prefix=/etc/nginx                   \
--sbin-path=/usr/sbin/nginx           \
--conf-path=/etc/nginx/nginx.conf     \
--pid-path=/var/run/nginx.pid         \
--lock-path=/var/run/nginx.lock       \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module        \
--with-http_stub_status_module        \
--with-http_ssl_module                \
--with-pcre                           \
--with-file-aio                       \
--with-http_realip_module             \
--without-http_scgi_module            \
--without-http_uwsgi_module           \
--without-http_fastcgi_module

make

make install

/usr/sbin/nginx



우선 Docker 에서 이미지를 생성 합니다. 이미지 생성 명령은 다음과 같습니다.

docker build --rm -t lahuman/nginx1.9.2 .


이후, Container를 생성 및 기동 합니다.

(/bin/bash로 실행 후, 다시 nginx를 기동 해야 합니다. 아마, nginx만 실행후 바로 컨테이너가 종료 되는 듯 하네요.)

docker run --name=nginx -d -it -p 8800:80 lahuman/nginx1.9.2 /bin/bash


마지막으로 해당 컨테이너에 접근 후 nginx를 기동 합니다.

docker exec -it nginx /bin/bash
/usr/sbin/nginx


이렇게 설치를 하고 화면을 확인 하면, 다음과 같습니다.





추가 nginx기초 명령어 (참고)

#기본 시작 명령어
/usr/sbin/nbinx

#중지 명령어
/usr/sbin/nginx -s stop



추가적으로 SSL 설치 관련 내용 참고 : 

https://haandol.wordpress.com/2014/03/12/nginx-ssl-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0startssl-com%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC/



설치 참고 :

https://www.digitalocean.com/community/tutorials/how-to-compile-nginx-from-source-on-a-centos-6-4-x64-vps

Posted by lahuman

Docker를 이용하여 MAIRADB BINARY 설치 가이드 문서


시작전 확인 사항

  - OS : CentOS 7 64BIT 

  - SOFTWARE : docker

  - MariadDB 설치 위치 : /usr/local/mysql


Binary 설치 파일이란?

RPM이나 YUM 등을 이용하지 않고 이미 tar 형태의 binary 파일을 압축을 풀어서 사용하는 방식이다.



1. MARIADB BINARY DOWNLOAD

- MariaDB Binary 파일을 준비 한다.


[그림 1]


    + [그림 1]에서 처럼 자신의 OS에 알맞은 바이너리 파일을 다운 받는다.

    + 다운 받은 파일을 Dockerfile과 같은 위치에 압축을 풀어 둔다.

    * docker 에서는 tar.gz 을 upload 할 경우 압축이 풀린 디렉토리로 표출되는 버그가 있다.



2. 설치 준비 

  - Dockerfile 

    + 우선 MariaDB에서 필요한 내용을 update 한다. 

     필요한 파일을 컨테이너로 업로드 하고, mysql 사용자를 추가하고 MariaDB 에서 제공되는 스크립트를 실행한다. (실행시 위치에 대한 설정을 한다.)

     마지막으로 업로드한 run.sh 파일을 실행한다.

#mariadb binary install

FROM centos:centos7
MAINTAINER mariadb by lahuman 

RUN yum -y update; yum clean all
RUN yum -y install epel-release tar ; yum clean all
RUN yum -y install libaio hostname ; yum clean all

RUN groupadd mysql
RUN useradd -g mysql mysql
ADD mariadb-10.0.17-linux-x86_64 /usr/local/mariadb-10.0.17-linux-x86_64
RUN ln -s /usr/local/mariadb-10.0.17-linux-x86_64 /usr/local/mysql
ADD my.cnf /usr/local/mysql/my.cnf
ADD run.sh /usr/local/mysql/run.sh
ADD init.sql /usr/local/mysql/init.sql
RUN chown -R mysql /usr/local/mysql
RUN chgrp -R mysql /usr/local/mysql

RUN /usr/local/mysql/scripts/mysql_install_db  --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

RUN chown -R root /usr/local/mysql
RUN chown -R mysql /usr/local/mysql/data

EXPOSE 3306

CMD ["/bin/bash", "/usr/local/mysql/run.sh"]


  - my.cnf

    + my.cnf 파일은 서버의 크기에 따라 알맞은 파일을 이용하면 된다.

      파일 위치는 압축을 푼 위치 에서 /mariadb-10.0.17-linux-x86_64/support-files 아래 보면 다음과 같이 확인이 가능하다


[그림 2]

      - my-huge.cnf : 아주 큰 DB

      - my-innodb-heavy-4G.cnf : 4G 이상의 DB

      - my-innodb-large.cnf : 큰 DB

      - my-medium.cnf : 보통의 DB

      - my-small.cnf : 작은 DB

    + 진행하려는 타입의 파일을 다음 명령어를 이용하여 Dockerfile 과 같은 위치로 이동을 한다.

cp my-medium.cnf ../../my.cnf

   + 이후 케릭터셋 설정과 테이블명에 대한 대소문자 구분 안하도록 하는 설정을 추가 하였다(옵션)

[mysqld]
#추가 내용
# 테이블 대소문자 구분 안함
lower_case_table_names=1
# 케릭터셋을 utf8로 변경
character-set-server=utf8
collation-server=utf8_general_ci


  - run.sh

   + Dockerfile에서 mariadb를 기동 할 경우 이상하게 에러가 나면서 종료되어 꼼수(?)로 run.sh 파일을 만들고 그 파일에서 기동을 하도록 수정 하였다.

#!/bin/bash

/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf --user=mysql


  - init.sql

    + 컨테이너를 기동하고 초기 DB에 대한 설정을 진행

     다음 SQL 내역은 ROOT 에 대한 HOST 권한을 추가 하는 것과 test 테이블에 대한 삭제를 진행하는 명령어 이다.

GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
DROP DATABASE IF EXISTS test ;

FLUSH PRIVILEGES ;


3. Docker 

  - 이미지 생성

    +  Dockerfile 이 있는 곳에서 다음 이미지 생성 명령어를 실행 한다.

docker build --rm -t lahuman/mariadb .

  - 컨테이너 생성 & 실행

    + 이미지가 생성 완료 되었다면, 컨테이너를 생성 & 실행 한다. MariadDB의 /data 위치를 volume으로 사용 가능하도록 설정하고, 컨테이너를 추가 한다. volume를 사용할 경우 컨테이너에 대한 설정 변경시 설정된 DB 정보를 재활용 할 수 있다.

# /usr/local/mysql/data 디렉토리를 volume으로 할 수 있도록 설정
docker run --name=mariadb-data -v /usr/local/mysql/data lahuman/mariadb true

    + 만들어진 volume을 가지고 컨테이너 생성

docker run --name=mariadb -d -it -p 3306:3306 --volumes-from=mariadb-data1 lahuman/mariadb


  - MariaDB 설정 

# 생성된 컨테이너로 접근
 docker exec -it lahuman/mariadb /bin/bash

# root password 설정
/usr/local/mysql/bin/mysqladmin -u root password 'password'

# 초기 sql 실행
/usr/local/mysql/bin/mysql -u root -ppassword < /usr/local/mysql/init.sql

# DB 컨테이너 나오기
exit


  - 다른 컨테이너와 연동

    + 컨테이너 생성시 MariaDB 컨테이너와 연동을 하려면 컨테이너 생성시 다음과 같이 --link를 설정하여야 한다.

docker run --name lahuman --link mariadb:mariadb -d -p 80:80 lahuman/home:centos7

    + host 컨테이너에서 연결시 다음과 같이 --link로 명명된 이름을 사용한다.

db.jdbcUrl=jdbc:mariadb://mariadb:3306/doc4sm?useUnicode=true&characterEncoding=utf8&autoReconnect=true


이상으로 Docker를 이용한 MariaDB BINARY 설치 글을 마친다.

Docker를 제외하면 MariaDB BINARY 설치 방법과 같다

개인적으로 BINARY 설치 방법을 선호 하는데 이유는 특정 폴더에 내가 원하는 설정을 다 몰아 넣어서 이다.



참고 URL:

http://sarc.io/index.php/mariadb/298-mariadb-build-troubleshooting-2

https://mariadb.com/kb/en/mariadb/mysql_install_db/

https://mariadb.com/kb/en/mariadb/installing-system-tables-mysql_install_db/


https://mariadb.com/kb/en/mariadb/binary-packages/

https://mariadb.com/kb/en/mariadb/installing-mariadb-binary-tarballs/

Posted by lahuman

DenyHosts 란?

  • DenyHosts는 서버에 대한 접속 로그를 확인하여 서버에 대한 공격인가를 확인하는 Python으로 만들어진 보안 툴입니다.
  • 동작 방법은, 지정한 숫자 이상의 로그인 실패가 발생시 해당 IP를 블락 하는 방식입니다.


설치 방법(CentOS 기준)

  1. yum을 이용한 간단한 설치 
    yum install denyhosts
    

  2. rpm 파일을 Download 이후 설치(다운로드 위치)

  3. rpm -Uvh DenyHosts-2.6-python2.5.rpm
    


실행 중지방법

#시작
service denyhosts start
#중지
service denyhosts stop


간단한 설정 관련 내역

denyhosts가 기동 되면 login이 시도된 로그를 확인하여 /etc/hosts.deny 파일에 자동으로 등록 하게 된다.

다음은 파일 내용 예시 이다.

# DenyHosts: Tue May 19 15:25:13 2015 | sshd: 218.208.55.55
sshd: 218.208.55.55

/etc/denyhosts.conf 에서 설정에 대한 수정을 진행 할수 있다.

설정을 변경할 경우 denyhosts 서비스를 재시작 해야 한다.


부팅시 자동으로 서비스 시작 등록

chkconfig denyhosts on




필수 설치 사항

 1. Python V2.3 이상

 2. tpc_wrappers - 보통은 기본으로 설치 되어 있음

  설치 확인 명령어 : # rpm -qa | grep wrappers



홈페이지 : http://denyhosts.sourceforge.net/


참고 URL : http://a2b.so/c_tip/2621

http://idchowto.com/?p=9151

https://kldp.org/node/113350




중국발 해킹이 많이 시도 되었었네 ㄷㄷㄷ

Posted by lahuman