'Administrator'에 해당되는 글 5건

  1. 2009.05.14 펌# rm -rf * 로 삭제된 데이터 복구하기.
  2. 2008.12.01 SSH 기본보안설정 2
  3. 2008.10.09 Suhosin Patch 0.9.6 설치!!

* phpschool tip&tech 비쥬펜 님의 글 [설치/설정] rm -rf * 잘못 쳤을 때 울지 않기! 을 좀 퍼서 정리햇습니다.

원글 ----- 주석 -----

[설치/설정] rm -rf * 잘못 쳤을 때 울지 않기!
( 저는.. rm -rf / [엔터] 누르는 실수를 하고 3일뒤에 퇴근한 경험도있습니다... )

얼마전에 저는 정말 절망 속에서 있었습니다.
지난 3개월간 작업한 모든 데이타를 rm -rf 로 날려버렸고.
백업도 2달 전에 해놓은거라. .;; 진짜 암담한 상황이었습니다.

몇몇 지인분들께 여쭤봐도 "포기해~ 그게 정신건강에 좋아" 라는 얘기만 들었습니다.
( 어떤말로도 위로될수없는 상황.. 당해봐야압니다.. 빗발치는 욕세례로.. 저는 여쭤볼 겨를도없엇습니다. )

그러다가 보게 된. http://kldp.org/node/103288

하던중 큰 시행착오는 없었고 저 문서대로만 하면되는데.
umount 하는데 ;; 문제가 많이 발생했습니다. 아래 차근 차근 설명을 쓰겠습니다.

제가 사용하는 centOS 에서만 그런지 모르겠지만.
옵션이 "-" 문자가 아니라 "--" 문자로 해야 작동을 했습니다.
--help 쳐보면 옵션 나오죠^^
저처럼 아무것도 모르는 초짜를 위해서 말씀드리자면.

저 링크에 있는 파일 받아서 설치하기 위해선
1-      ./configure (물론 압축풀린 곳에서)
2-      make
3-      make install

요렇고롬 해주면 됩니다.
패키지로도 되어있다고 하니깐. 우분투 패키지 관리자에서 잘 찾아보시길.

ext3grep 입니다.
설치후에 umount 해주니
device 가 아직 작동중이랍니다.

그래서 fuser -km /dev/sda6 (제 파티션 장치가 /dev/sda6입니다)
해서 연결된 장치를 지워주니 ssh 가 끊깁니다.;

원인인 즉슨, 제가 일반 유저로 로그인해서 su - 로
최고관리자 권한을 가져서 인데

이건
vi /etc/ssh/sshd_config
PermitRoot no <--- yes
/etc/init.d/sshd restart

요렇고롬 세팅 해주면 됩니다.

그런 문제없이 자연스레 umount 가 되시는 분은 그냥 넘어가십시요.

그다음 ext3grep –-dump-names --after=12146454 /dev/sda6
위의 숫자는 unixtime 입니다. php에서 mktime(시,분,초,월,일,연)
해주면 쉽게 구할 수 있죠.(다른 방법있다면 그걸 선택하세요)

여튼 전 history 명령으로 제가 rm -rf 를 친 그 시점에대해서 복구하려고 위의
세팅을 맞췄습니다.

저렇게 하면 sdb1.ext3grep.stage1 와 sdb1.ext3grep.stage2
파일 비스므레한 파일이 생깁니다. ( 시간이  꽤 걸렸습니다 저는. 한시간 반정도?)
앞에껀 inode 정보 뒤에껀 디렉토리 정보죠.
사람이 읽을 수 있는건 뒤에꺼고요. 필요한건 두파일 모두입니다.

건들진 마세요. 그냥 두시면됩니다.

그다음 --restore-all  옵션과 --after 옵션으로
위에서 가져온 정보에 대해서 복구를 합니다. 다시 재차 조회해 오진 않으므로
시간소요는 적습니다.

이렇게 해서 제가 실행한 위치에 /RESTORE~~~~~ 어쩌구 폴더가 생기면서

그곳에 제 파티션의 파일들이 복구가 되었습니다. ^^ 아 사랑스러워. ^^

그 다음 다시 이 디바이스를 해당 폴더에 mount 시켜주고 복구된 파일을 /RESTORE 에서
원래의 장소로 복사해주면 끝.

정말...ㅜ.ㅜ 눈물을 머금고 처음부터 재작업을 하려고 했는데

이런걸 알게되다니... 위의 글을 써주신 분께 다시한번 감사를.

설명이 좀 부족해서 말이 엉킬수도 있겠네요.

여튼. ^^ 도움이되셨으면 좋겠습니다.

----------------------- 위 글에 대한 대부분의 php dever 들의 반응 -----------------
사랑굳   09-05-12 10:36  
써먹을일 없길 바라면서... 스크랩.. 
 
공대여자   09-05-12 10:42  
써먹지 않기를 바라며... 
 
디스   09-05-12 10:49  
써먹을일 없길 바라면서... 스크랩.. (2) 
 
navyism   09-05-12 14:06  
그동안 흘렸던 눈물은 어떻게 안될까요;;;; 
 
알찬돌삐   09-05-12 14:48  
써먹지 않기를 바라면서 스크랩...... 
 
ERing™   09-05-12 22:29  
ㅡㅡ;;; 저도 써먹을 일이 없길 바라면서...;; 
 
삭방으로만렙달성   09-05-13 08:39  
써먹지 않기를 바라면서 스크랩......  
----------------------------------------------------------------------------------

나뿐이... 아니었구나...................

시간날때 꼭 검증해봐야지....;

Posted by eXtreme.RKing
,

SSH 기본보안설정 ( 네이버블로그 http://blog.naver.com/disablerain 에서 이사해옴 )

레드햇 배포판을 기본설치하고 나면 의외로 취약점이 많다. 기본적으로 패키지가 구형이라면 패치하면되지만, 기본설정역시 중요하다. 그래서 이번엔 OpenSSH 버젼의 취약점과 기본 보안설정에 대해서 쓰고자 한다. ps) 체리님 블로그에 댓글달로갓다가 팁하나보고 문득정리해야겠다는 생각에 추가함.

1. 패키지확인.

먼저 쉘에서 사용중인 openssh 패키지의 버젼을 확인한다.
-----------------------------------------------------
[root@www1 log]# rpm -qa | grep ssh
openssh-clients-3.9p1-8.RHEL4.4
openssh-server-3.9p1-8.RHEL4.4
openssh-3.9p1-8.RHEL4.4
[root@www1 log]#
-----------------------------------------------------

현재 나는 CentOS 4.1 을 쓰고 있는데, yum 을 통해서 항상 최신버젼을 유지하고있는터라
2005년 08월 12일자 해당버젼에 대해서 보안권고는 없었다.
ssh가 원격에서 접속이 가능하고 포트를 항상개방해놓아야 되기 때문에 버젼이 낮다면 업데이트먼저하기를 바란다.

단! openssh를 rpm 이나 기타 패키지 매니저를 통한 방법으로 업데이트 하지않을 경우는 필히 주의해서 해야한다; 초보때 IDC를 한번 더가야했던..


2. 원격에서 root 접속 설정.

root 라는 아이디자체가 워낙 코흘리게도 아는 아이디다 보니.. 사전공격에 가장 취약하다고 볼수있다. 또, openssh 1.x 버젼은 보안구멍이 많은 버젼으로 필히 패치하기 바란다. 그리고 root 의 비밀번호는 자주변경해줘야하고. root 비밀번호만큼은 나도 그때그때 암호표를 작성해서 접속할때마다 본다;

RPM 설치시 -
/etc/ssh/sshd_config -------------------------
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
-----------------------------------------------

#PermitRootLogin yes -> PermitRootLogin no

로 변경한다.

#LoginGraceTime 2m -> LoginGraceTime 60

로 변경 / 로그인을 하지못햇을 경우 60초 뒤에 서버와 연결을 끊음
#MaxAuthTries 6 -> MaxAuthTries 3

로 변경 / 인증실패시 암호를 묻는 재시도 횟수 설정


3. 원격 접속 포트 변경, 접속 프로토콜 설정.

서버를 운영하다 보면 /var/log/message 로그에서 다음과 같은 줄을 발견할수있을것이다.

/var/log/message ----------------------------------------------------------------------

Aug  7 13:05:13 cls sshd(pam_unix)[10288]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=61.x.x.x
Aug  7 13:05:14 cls sshd(pam_unix)[10290]: check pass; user unknown

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

ssh 기본포트( no. 22 )원격지에서 스캐닝, 사전공격 등을 하면 기록이 된다. 무시하면 상관이 없지만.. 개인적인 생각으로 관리자라면 작은부분에서도 신경을 써야한다는거.. 해결책은 포트를 변경해도 상당한 효과를 볼수있다 ^^

RPM 설치시 -

/etc/ssh/sshd_config -------------------------

#Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::

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

#Port 22 -> Port 2222
나는 2222번 포트로 운영을 한다. 임의의 포트로 지정을 해서 사전공격 및 스캐닝에 대해서 방지한다.

#Protocol 2,1 -> Protocol 2
ssh2 프로토콜로 요청하는 클라이언트만 받아드린다.

#ListenAddress 0.0.0.0

이 부분은 접속가능한 아이피를 설정하는 부분인데.. 기본설정은 모든곳에서 접속가능하도록 되어있다. 접속제한은 sshd 의 설정에서 하지 않고 tcpd 의 /etc/hosts.allow ; /etc/hosts.deny 를 사용하여 제어한다.

 

4. 특정그룹, 특정유저만 원격접속 제한
기본설정에는 포함되어있지 않으나 #man sshd_config 를 보면 AllowGroups, AllowUsers 라는 항목을 볼수있다.

원격에서 ssh 를 이용함에 있어서 접속이 가능한 유저, 그룹을 설정하는 내용이다.
설정하시기 전에 꼭 그룹과 유저를 확인하기 바랍니다.

/etc/ssh/sshd_config 의 적당한 부분에 아래 내용을 포함시킨다. -------------------------

AllowGroups wheel
AllowUsers disablerain

-------------------------------------------------------------------------------------
빨간색으로 된부분에 각자 관리자 아이디를 넣으면 됨.

본인의 경우는 관리자 아이디를 wheel 그룹으로 설정해 놓아서 AllowGroups 에 그룹 wheel 을 추가해놓았다.

반대로
DenyGroups wheel
DenyUsers disablerain

으로 지정해놓으면 해당 그룹, 유저가 접속이 거부된다.


5. sshd 재시작

RPM 설치시 --------

#/etc/rc.d/init.d/sshd restart

또는

#killall -HUP sshd


이상 sshd 의 설정에 대해서 간략하게만 설명했습니다. 부가옵션들이 너무많으니 man 페이지를 참고하셔서 설정하시기 바랍니다.

Posted by eXtreme.RKing
,
사용자 삽입 이미지

PHP 의 근본적인 보안문제를 해결하기위해 제작된 패치..
PHP Fest 2008 에서 소개받고 바로 설치 해봄 ㅋ

관련자료 : http://www.hardened-php.net/suhosin/
Posted by eXtreme.RKing
,