일상의 정리

제로보드 보안 취약성 때문에 Eggdrop 이 설치 되었을 때

리눅스/해킹


10년 된 리눅스 서버가 해킹을 당해서 루트킷 설치까지 되어 버렸는 지라...

워낙 오래된 녀석이라...해결 방안이 막막해서

 

CentOS 5.2 로 다시 설치

 

운영하고 2주 정도 지나니 다시 해킹당해 버렸다는...

다행이 OS 자체의 보안까지 뚫린 건 아니어서...

 

증상은 /tmp 에 cmdtemp 파일이 만들어 지고 perl 스크립트가 계속 실행이 되는 증상

 

일단 제로보드 보안 취약성 패치를 찾아서 lib.php 를 비롯 취약성을 패치 하고

아래 명령으로 변경된 파일을 찾아 보았다.

 

find . -name "__zbSessionTMP" -prune -o -name "*.php" -exec egrep 'cmdtemp'  -l {} \;

 

찾아 보니 제로보드의 결함을 뚫고 view_list_main.php 라는 파일을 만들고

이 파일을 호출하면 이 파일이 /tmp/cmdtemp 를 만들어

perl 스크립트를 실행하는 구조로 되어 있었음..

 

일단 위 파일도 지우고 로그에서 위 파일을 호출하는 IP대역을 막아서 더 이상 접근 불가능하게 처리

IP를 찾아 보니 인도네시아 여서 아예 범위로 차단하기 위해서

/etc/sysconfig/iptables 파일에 아래 라인 차단

-A INPUT -p all -m iprange --src-range 114.58.0.0-114.58.255.255 -j DROP

 

이제 안심해도 되려는 지....

svn+ssh 암호 없이 사용하기

리눅스/설치

1. Cent OS 에 svn 설치하기

 

# yum install subversion

 

# mkdir /home/svn

 

2. 저장소 위치 설정

# groupadd svn

/etc/group 에 svn 그룹에 포함될 사용자(svn을 사용할 사용자)를 추가한다.

 

3. 저장소 추가

# cd /home/svn

# svnadmin create --fs-type fsfs sample

--> group 쓰기가 가능하도록 설정한다

# chgrp -R svn sample

# chmod -R g+w sample

 

ssh 로 사용할 경우에는 패스워드 파일 생성등 별도의 작업이 필요 없다.

 

4. TortoiseSVN 에서 암호 없이 접속하기

접속할 계정으로 터미널 접속

$ ssh-keygen -b 1024 -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_dsa.
Your public key has been saved in /home/admin/.ssh/id_dsa.pub.

$ cd .ssh

$ mv id_rsa.pub authorized_keys

$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 89:79:86:1b:cb:fc:a0:05:9c:65:88:b5:4c:1b:7f:c8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Last login: Sun Jan 11 00:43:26 2004 from 192.168.0.25

만약... 위의 방법으로 접속이 실패했다면...
sshd가 인증키로 인증을 허용하지 않기 때문이다.
이럴 경우.
sshd_config(보통은 /etc/ssh/sshd_config)에 다음 두줄이 포함되어 있는지 확인하자.

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

만약 개인키를 암호 없이 사용하는 것이 찝찝하다면 ssh-keygen 을 실행시 암호를 주면 된다.
 

Winscp 나 psftp 를 이용해서 위에서 만든 개인키 (id_rsa) 를 가져온다.


puttygen을 실행 후 메뉴 중의 Convesions - Import Key 로 가져온 개인키를 로드

다른 건 건드리지 말고 


Save private key 로 개인키를 적당한 이름의 xxx.ppk 파일로 저장한다.


-------------------------------------------------------

1. pagent.exe 를 사용하는 방법 
-------------------------------------------------------
저장 후 pageant.exe 를 실행하며 트레이 아이콘에 표시되는 데 Add Key 로

위에서 저장한 xxx.ppk 파일을 로드한다.

 

이 상태에서 SVN 명령을 수행할 경우 암호 없이 사용가능하다.
-------------------------------------------------------

-------------------------------------------------------
2. TortoisePlink 를 이용하는 방법
-------------------------------------------------------
TortoiseSVN을 설치한 후 

c:\Documents and Settings\username\Application Data\Subversion\config

파일을 오픈한 후

[tunnels]
항목에 다음과 같이 추가한다.
ssh2222 = C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe -P 2222 -i "d:/keys/mykey.ppk"

2222는 ssh 포트가 다를 경우 지정하는 것이고
-i 뒤에 키파일을 지정한다.

위와 같이 한 후 
svn+ssh2222://
처럼 포트를 바꾸고 패스워드를 묻지 않도록 사용할 수 있다.
---------------------------------------------------------