강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

ssh 보안설정1
작성자 : 13 김영철
등록날짜 : 2009.01.29 16:31
2,654

SSH 기본보안설정 #1

 

레드햇 배포판을 기본설치하고 나면 의외로 취약점이 많다. 기본적으로 패키지가 구형이라면 패치하면되지만, 기본설정역시 중요하다. 그래서 이번엔 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 )원격지에서 스캐닝, 사전공격 등을 하면 기록이 된다. 무시하면 상관이 없지만.. 개인적인 생각으로 관리자라면 작은부분에서도 신경을 써야한다는거.. 해결책은 포트를 변경g해도 상당한 효과를 볼수있다 ^^

 

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 lampwzd

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

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

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

 

반대로

DenyGroups wheel
DenyUsers lampwzd

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

 

5. sshd 재시작

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

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

또는

#killall -HUP sshd

 

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

 

다음번에는 tcp_wraper, ucspi-tcp 를 통하여 tcp 프로토콜 제어에 대해서 올리도록하겠습니다.

출처 : Tong - ddakzzi님의 SERVER통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2895 ftp로 원격서버의 데이터 자동백업 13 김영철 01.29 2594
2894 계정 자동 세팅 13 김영철 01.29 2715
2893 응급복구 13 김영철 01.29 2572
2892 특정 계정에대해서 telnet 접속 X , ftp 접속 O 13 김영철 01.29 2818
2891 rootman의 서버 초기세팅시 초기 설정사항 퍼미션 및 소유권변경 정보 13 김영철 01.29 2397
2890 네임서버 설정 13 김영철 01.29 2462
2889 트래픽을 증가시키는 외부사이트의 이미지 퍼가기를 막기 위한 apache config 설정 13 김영철 01.29 2705
2888 리눅스 도메인 셋팅방법 13 김영철 01.29 2374
2887 리눅스 서브도메인 셋팅방법 13 김영철 01.29 2820
2886 아파치 - throttle 모듈 설치 13 김영철 01.29 2736
2885 APM - 단독서버 운영을 위한 셋팅 13 김영철 01.29 2945
2884 vi edit 사용 13 김영철 01.29 2819
2883 TOMCAT 13 김영철 01.29 2415
2882 vi 명령어 2 13 김영철 01.29 3237
2881 ncftp, ncftpget, ncftpput - 서브디렉토리 전송 13 김영철 01.29 3686
2880 ncftp, ncftpget, ncftpput - 서브디렉토리 전송 13 김영철 01.29 2588
2879 [서버운영] ncftp 100% 활용하기 13 김영철 01.29 2622
2878 rsync (remote sync daemon) UNIX 서버간 원격 복사 13 김영철 01.29 3106
2877 rsync 와 ssh 를 이용한 파일 전송 13 김영철 01.29 3436
2876 rsync윈도우에서 리눅스로 백업하기 13 김영철 01.29 3953
2875 RSYNC 사용하기 13 김영철 01.29 2450
2874 ssh 재시작(각종 변곃후) 13 김영철 01.29 2974
열람중 ssh 보안설정1 13 김영철 01.29 2655
2872 find 명령어 사용법 13 김영철 01.29 2496
2871 chgrp 명령어 사용법 13 김영철 01.29 4425
2870 killall 명령어 사용법 13 김영철 01.29 3479
2869 kill 명령어 사용법 13 김영철 01.29 2803
2868 ps 명령어 사용법 13 김영철 01.29 3780
2867 루트밑에 특정 확장자 파일을 특정디렉토리에 복사 13 김영철 01.29 2917
2866 쉘스크립트 암호화 13 김영철 01.29 2720
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취