이번에는 ssh애기를 해보려 합니다
학과 서버를 centos로 마이그레이션 하면서 vsftpd로 ftp 그리고 ssh와 80을 열어놨습니다
사이트 와 서버 구성중에는 80포트만 열어놓고 테스트 페이지만 띄워 놓았다가
구축 및 구성이 완료후 ssh 를 열었는데 2-3일이 지나고 매일 4시에 로그를 분석해서
리포트를 해주는 logwatch 가 보내온 메일을 보고 깜짝 놀랄수 밖에 없었습니다
ftp는 물론이고 ssh로 Bruth force공격(무작위 사전 아이디 대입공격)을 시도한
흔적을 보았습나다 ip대는 대부분이 외국이었고 새벽시간때 엄청나게 많은
시도를 보았습니다 root는 물론 ssh 및 ftp접속이 않되도록 해놨지만
생각지도 못한 oracle 계정이나 몇개의 계정에도 대입을 한걸보고 뜨끔하드라구요
있을만한 아이디로 엄청나게 시도가 있었습니다 서버 오픈 초기라
대응되는 아이디가 거의 없었지만(있어도 패스워드를 맞추려면 시간이더 걸림)
무신경하게 보았던 logwatch 가 보내준 리포트를 찬찬히 살펴보니 그날만이
아닌 그전날도 그전날도 계속 공격의 흔적이 있어서 부랴부랴
저만의 보안 룰 레벨(?)을 올려보기로 했습니다
denyhosts 외 ssh 관련 옵션에 대해서 말씀드리겠습니다
일단 /etc/ssh/sshd_config 을 열어서 몇가지를 살펴보죠
#Protocol 2,1
=> Protocol 2
ssh 1 과 2 중 2.0만 사용하겠다는 것입니다 이것이 좋죠
#LoginGraceTime 2m
=>LoginGraceTime 60
해석을 해보면 "로그인은혜시간" 정도가 되겠는되요
주석을 풀고 60을 써주면 60초 만 허용을 해주겠다라는데...암튼 짧은 시간일수록
좋다는것만이 머리속에 남네요;;;
#PermitRootLogin yes
=>PermitRootLogin no
root 계정의 접속을 허용치 않겠다 라는 것입니다 yes는 접속허용한다는것임으로
no 로 해주세요
주석에는 없지만 쓸수있는 옵션으로
AllowGroups
AllowUsers
DenyGoups
DenyUsers
가 있습니다 저같은경우 유저들을 특정 그룹하나로 묶고
예를들어 AAA 라면
AllowGroups AAA
이런식과
DenyGroups root
으로 구성해놔서 AAA그룹으로 생성해논 일반계정만 접속이 가능
하고 그외 시스템 계정 및 DB유저계정으로는 접속하지못하였고
더욱불안해 위에서 root 로그인 거부로 처리해놨지만서도
DenyGroups 에 root 그룹 도 넣어버린 무식한짓을 해놨드랬죠..
말은 길지만 하고자 하는건 루트로그인 거부와
AllowGroups를 이용하여 실제사용하는 유저들만 접속가능케 한다는거
이었습니다 ;;;
이제 denyhosts 를 설치해보죠 centos 기준으로 RPM설치로
말씀드리겠습니다
# yum list | grpe denyhosts
로 설치 될수 있는지 보고 없다고 한다면 rpmforge 레파지터리(저장소;;)
를 추가 합니다 rpmforge에 유용한 rpm이 많으니 낭중에라도 유용할것입니다
i386은 http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
x86_64은 http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm를 다운받아 설치 합니다 그후
# yum --enablerepo=rpmforge install denyhosts
하면 설치 됩니다
rpmforge가 등록되어있다면 바로 yum으로 퉁쳐서 설치 하시면 되구요
설치후 /usr/share/doc/denyhosts-버전/ 으로 이동후
cp daemon-control-dist daemon-control
(위의 오타수정 2010년 4월 4일)
l
cp denyhosts.cfg-dist denyhosts.cfg
로 복사 작업 2개 해주시고요 (인터넷보고 따라한건데 왜한건지..)
chmod 700 daemon-control 로 권한 변경 해주시고요
이제 본격적인 설정을 파일을 열어보죠
# vi /etc/denyhosts/denyhosts.cfg
SECURE_LOG = /var/log/secure
fedora와 centos ,rhel 은 보안관련 로그는 secure에 저장되니
다른 맞게 되어있는지 확인
그밑에 주석되어있는부분보면 BSD, mandrake등에 맞는 설정이있지만
주석되어있다는거 눈여겨만 보고 내려가면
HOSTS_DENY = /etc/hosts.deny
라고 기본이 되어있는데 이렇게 되어있다면 공격이 감지되면
바로 hosts.deny 에 기록되며
/etc/hosts.block 이런식으로 기록해주고
/etc/hosts.deny 파일에 ALL: /etc/hosts.block
기술해주면 denyhosts가 적용시킨 아이피들을 따로 관리가능합니다
만 전귀찮아서 그냥 hosts.deny 사용 했습니다
PURGE_DENY =
위의 주석에 보면 예문이 많이 나오는데 대충보면
deny된 아이피들을 다시 놓아줄 기간을 설정하라는
것인것(?) 같은데 저는 괘씸해서 reset시키지 않으려
시스템없앨때까지 ip를 가지고 있겠다라는 심정으로 공백으로
나뒀습니다 (사실어케해야할지모르는것도..)
BLOCK_SERVICE =
ssh를 할지 vsftpd를 할지를 결정하는것인데요
전 ALL 로 햇습니다
DENY_THRESHOLD_INVALID =
몇번 로그인실패시 차단시킬 한계점을 정하라는건데요
전 3으로 했습니다
This value applies to invalid user login attempts
라고 위에 써있네요 해석하면
"이 값은 유효하지 않은 사용자가 로그인 시도에 적용"
라고 써있고 밑에는 non-existent user accounts라고 되어있는데요
등록되지않은 유효하지 않은 아이디로 로그인 시도시 몇번까지
봐줄거냐 정도로 되겟죠 그걸 전 3 로 해준거구요
DENY_THRESHOLD_VALID =
이건 user accounts that exist in /etc/passwd 라고 써잇는데여
존재 하는 유저로 로그인 시도시 실패는 몇번까지 허용할거냐
라고 물어보는 옵션이겟죠 이것은 저같은경우 5 로 해주었습니다
DENY_THRESHOLD_ROOT =
root유저 의 접속 실패 한계횟수를 물어보는것이겟죠
전 2로 해줬는데요 1 이나 0으로 할가 생각중입니다 고민중이죠..
ADMIN_EMAIL =
불법 침입 시도를 감지하여 deny시켰을시 받을 메일을 적으라는데요
root@localhost 라고 해주면 root가 받을수있습니다
물론 sendmail 로 동작해야 겠죠
참고로 메일온건 mail 이라고 치면 볼수있고
다른 유저에서 su 로 루트로그인한상태라면
centos ,fedora계열에서는 mail -u root 하면 볼수있고 su - 로 루트로그인이면
그냥 mail 하면 볼수 있습니다
DAEMON_LOG =
denyhosts 의 로그를 기록할 위치및 파일명을 기술해면 됩니다
나머지 옵션들도 많이있는데 구글해석이 참 아리송해
기본값으로 나둬놓고 사용하고있습니다 몇분마다 로그를 수집하는지를
설정하는부분이 있는듯한데 확실치 않아
저같은경우 crontab 에 5분마다 denyhosts 를 재시작해주고 있습니다
*/05 * * * *
영어능력이 되 원활히 해석되 옵션해석이 가능하다면 추가적으로 설정해주시면
되겠습니다 (저도좀 알려주세요 admin@commit.co.kr)
저장하고 나와서리 service denyhosts restart 나 start로
데몬시작 해주면 언뜻 어느곳에서 대충본기억으론 10분마다
로그를 수집한다고 들었는데 암튼 낭중에 보면
알아서 hosts.deny 등에 차곡차곡 거부ip를 등록해놓고 있을것입니다
ssh를 열어놓고 있으면 무자비한 대입공격이 들어오는데
최소한으로 공격을 막을수있을듯 합니다
가장좋은건 불필요한 계정(test계정)등은 생성치않고
1회성(설치에 필요한 유저 ex)oracle유저)등은
작업완료후 passwd -l 로 계정을 잠궈놓고
비밀번호는 최대한 길게 설정하고
logwatch 등을 이용하여 일주일에 1-2번이라도 로그를 잘살펴보시고
iptables 나 hosts등에 등록 및 관리가 가장좋을듯 합니다
이상 허접한 denyhosts와 ssh에 대한 애기를 마치겠습니다
잘못된 내용이나 추가적인 옵션에 대해서 아시는분은
피드백좀 꼭좀 부탁드립니다(email : admin@commit.co.kr)
페도라 한국 사용자 모임 태랑의 포스팅글입니다
파이어폭스에 최적화 되어있습니다
파이어폭스에 최적화 되어있습니다
이 포스트가 유용하셨다면 구독하세요
'Linux' 카테고리의 다른 글
| 페도라 한국 사용자 커뮤니티가 개설되었네요 (0) | 2009/11/13 |
|---|---|
| 윈도우 APP 대응 리눅스에서 사용가능한 APP (0) | 2009/10/10 |
| Bruth force 공격으로 부터 denyhosts이용하여 SSH 보호 (0) | 2009/10/07 |
| 서자룡선배님의 실무관리자를 위한 Centos (0) | 2009/10/07 |
| 유저별 단독톰켓(tomcat) 구성(다중 톰켓) (0) | 2009/09/29 |
| 리눅스 보험 드셨습니까? 레드햇 서브스크립션 광고 (1) | 2009/09/28 |










댓글을 달아 주세요