You cannot see this page without javascript.

Linux Telnet, SSH 설치

Linux 조회 수 843 추천 수 0 2014.06.30 15:05:38

http://www.chiark.greenend.org.uk/



텔넷 클라이언트 설치

#yum install telnet

 

텔넷 서버 설치

#yum install telnet-server

 

텔넷 데몬 활성화

xinetd.d폴더에서 telnet 파일을 찾아서 disable에 yes를 no로 변경

 

#vi /etc/xinetd.d/telnet

 

[telnet 파일 내용]

 # default: on

# description: The telnet server serves telnet sessions; it uses

# unencrypted username/password pairs for authentication.

service telnet

{

flags = REUSE

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.telnetd

log_on_failure += USERID

disable = yes

 

 

xinetd 재시작

 

#service xinetd restart

 

텔넷 접속 해본다.

 

#telnet localhost

 

login :

Password :

 

 

 

1. 서버와 클라이언트 타입을 설치합니다.

# yum -y install openssh-server openssh-clients openssh-server-sysvinit

2. SSH 데몬을 시작프로그램으로 등록하고 실행합니다.

# chkconfig sshd on

# service sshd start 

3. 22번 포트를 개방해줍니다.

# netstat -tulpn | grep :22

 

4. 방화벽 세팅

 # vi /etc/sysconfig/iptables 
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT      // 추가해줍니다.
 # service iptables restart

 

5. OpenSSH 서버 환경설정 / 특별히 필요한 경우에만 설정하시면 됩니다.

 # vi /etc/ssh/sshd_config

   PermitRootLogin no       // root 계정으로 로그인 금지  

   AllowUsers tom jerry     // 톰과 제리만 접속시키고자 할 경우

    Port 1235                // 포트를 변경하여 사용 할 경우
# service sshd restart

Putty같은 터미널 접속 프로그램으로 본인의 아이피 또는 도메인으로 테스트를 해봅니다.

잘 된다면 이제 서버컴은 모니터를 떼어버리구 구석에 잘 모셔둡니다...ㅎ







OpenSSH 의 설치방법(소스설치)


openssh 설치를 위해서는 zlib 와 openssl를 설치 해야 한다.

 

① 최신 버전 다운로드
openssh -  
http://www.openssh.com
openssl –
http://www.openssl.org
zlib – http://zlib.net


② zlib 설치

sudo apt-get install libc6-dev

#tar xvfz zlib-xxxx.tar.gz
#cd zlib-xxxx
#./configure
#make
#make test
#make install


③ openssl 설치

 

(바)
#tar xvfz openssl-xxxx.tar.gz
#./config
#make
#make test
#make install



 ④ openssh 설치
(사)
#tar xvfz openssh-xxxx.tar.gz
#cd openssh-xxxx
#./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/ssl
#make
#make install
 [실행]
#/usr/local/openssh/sbin/sshd
#cp /usr/local/src/openssh-xxxx/contrib/sshd.pam.generic /etc/pam.d/sshd
[bin]디렉토리 복사
#cp -p /usr/local/openssh/bin/*  /usr/bin/
$ssh-keygen -d.
$HOME/.ssh
$ cat identity.pub >>authorized_keys
$ cat id_dsa.pub >>authorized_keys

 inetd 방식으로 데몬이 서비스 될 수 있도록 /etc/xinetd.d/ 디렉토리에 다음과 같은 파일을 작성한다.

 

(아)  
    # vi /etc/xinetd.d/ssh
  --------------------------------------------------------------------------
     service ssh
    {
       disable = no
       flags = REUSE
       socket_type = stream
       wait = no
       user = root
       server = /usr/sbin/sshd
       server_args = -i
       log_on_failure += USERID
    }

inetd 방식으로 앞으로 데몬이 실행될 수 있도록 xinetd를 실행시킴

 

(자)     
    #/etc/rc.d/init.d/xinetd restart


SSH2 의 설치방법(소스설치)

1 .  SSH2 설치 전에리눅스 배포판을 everithing으로 설치를 했다면 openSSH가 설치 되어 있어서 SSH2를 설치 하기 전에 먼저 rpm 파일로 설치된openSSH를 제거해 줘야 한다 ssh2설치시에 openSSH와 충돌이 일어 나지는 않는데 설치 후 사용할 때 충돌을 일으킬 수 있기 때문에 반드시 깔끔하게 제거해 줘야한다. 자신의 시스템에 openSSH가 설치 되어 있는지 확인하기위해서 아래처럼 해본다
(차) # rpm -qa|grep ssh (카) openssh-clients-3.6.1p2-34 (타) openssh-askpass-gnome-3.6.1p2-34 (파) openssh-3.6.1p2-34 (하) openssh-askpass-3.6.1p2-34 (거) openssh-server-3.6.1p2-34 (너)
(더) # rpm -e `rpm -qa|grep ssh`
위와 같은 방식으로 검색된 모든 패키지를 삭제한다. openssh 패키지를 삭제하면  /etc/ssh 디렉토리가 빈 디렉토리가 아니라서 제거할 수 없다는 에러가 나기 때문에 /etc/ssh를 "rm -rf" 명령으로 삭제를 해 줘야 한다.

2. ssh2 설치SSH2는 http://www.ssh.fi 에서 다운 받을 수 있다.
configure (러) # ./configure  --with-tcp-wrappers (머) # make (버) # make install (서)
SSH2가 설치 완료되면 /etc/ssh2, /usr/local/bin, /usr/local/sbin, /usr/local/man 디렉토리들에 SSH2관련 파일들이 생긴다. ssh2가 설치 됨과 동시에 ssh2의 명령어들이 포함되어 있는 /usr/local/bin과 /usr/local/sbin이 명령어 PATH에 자동추가 된다.

3. ssh2를 위한 xinetd 설정ssh2를 xinetd로 제어하고 inetd 모드로 작동시키기 위해서는 간단한 작업을 해줘야 된다./etc/xinetd.d 디렉토리에 ssh 라는 이름으로 아래와 같이 작성하자

.
위와 같이 작성하고 저정했다면 ssh2의 가동을 위해서 xinetd를 재 실행해야 된다.(어)
(저) # /etc/rc.d/init.d/xinetd   restart
그럼 ssh2 서버가 제대로 작동하는지 테스트 해 보기 위해서 다음과 같이 접속을 해 보자.(처)
(커) # ssh   -l   사용자명   localhost    
'-l' 사용자명으로 지정하지 않으면 현재 접속해 있는 사용자로 로그인 시도 한다. ssh2는 기본적으로 root 로 접속할 수있게끔 설정되어 있다.

 

SSH 클라이언트의 기본적인 사용 방법

openSSH 클라이언트는 ssh1,ssh2 프로토콜을 모두 지원하므로, 서버가 지원하는 ssh 프로토콜에 상관없이 접속할수 있다. 예를 들어, 접속할 ssh서버가 ostsc.homelinux.net 이고 계정명이 chaeya 라면 (터)
[rot@tsc13 ~] # ssh -l chaeya ostsc.homelinux.net

또는 (퍼)
[root@tsc13 ~] # ssh chaeya@ostsc.homelinux.net

이제 다음과 같은 메세지와 함께 접속이 진행될 것이다.
The authenticity of host 'ostsc.homelinux.net (210.183.235.13)' can't be established. RSA key fingerprint is 4b:9e:5a:fb:5a:5a:f4:2e:8c:70:69:d3:c8:65:6e:ff.Are you sure you want to continue connecting (yes/no)? yes

위 메세지는 ssh로 해당 서버에 처음 접속할때만 나오는 메세지이며, 접속할 서버의 호스트 키가 ~/.ssh/known_hosts (ssh2의 경우 known_hosts2) 파일에 저장된다. yes로 대답해주면, 다음과 같이 계정 암호를 물어오고, 이제 텔넷과 동일한 작업을 할수 있다. (허)
Warning: Permanently added 'ostsc.homelinux.net,210.183.235.13' (RSA) to the list of known hosts.chaeya@ostsc.homelinux.net's password:





#######################
2. 소스설치
#######################

참고: 기타 설치시 문제는 http://www.openssh.org/faq.html#3.2 참고할것.

1) 최근 파일 다운로드
#> wget http://openbsd.md5.com.ar/pub/OpenBSD/OpenSSH/portable/http://openbsd.md5.com.ar/pub/OpenBSD/OpenSSH/portable/openssh-4.0p1.tar.gz

2) 컴파일 및 설치
#> ./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-md5-passwords

#> make

#> make install

#> vi /etc/rc.d/rc.local
   # ------------ ssh-server Daemon  자동시작 -----------
   #  (ssh-Server 프로세스 중지방법:  killall sshd )
   /usr/local/ssh/sbin/sshd


###################################
3.  ssh-Server  설정파일  수정방법
###################################


1) ROOT로 ssh 접속 막는 방법
 #>vi /etc/ssh/sshd/sshd_config
    -> PermitRootLogin no
 #>/etc/init.d/sshd restart

2) 사용자의 상위디렉토리 이동 방지
  상위디렉토리관련은 현재 openssh에서는 없고, 패치형태로 존재하는데
  http://chrootssh.sourceforge.net/를 이용.

3) sshd 접속 유지
 #>vi /etc/ssh/sshd_config
   적당한 위치에 ClientAliveInterval   삽입

4). telnet xxxx 22 시 ssh버전 뜨는 것 방지
  ->  소스 설치시 컴파일전에 version.h 파일을 적당히 수정.

5). ssh 접속 포트 변경
 #>vi /etc/ssh/sshd/sshd_config
    Port 22 ---> Port 2222
 #>/etc/init.d/sshd restart

6). ssh로 다른곳 접속 가능하게 하기
   접속하려는 곳을 전에 접속할때 도메인네임으로 혹은 로컬 네트웍에서
   호스트네임으로 접속해서 생긴 현상으로 ssh의 설정파일에 동일한
   호스트의 정보가 겹쳐서 일어나는 현상이므로,  known_hosts안의
   내용을 삭제하고 다시 접속하면 됨.
 
7). ssh1이 동작하는지 ssh2가 동작는지 알수 있는 방법
  /etc/ssh/sshd_config파일에 Protocol 2 이면 ssh2 임.
  또는 telnet localhost 22 로 연결해보면 알수 있음.

8). 웹으로 ssh 사용 방법
 다운: http://javassh.org/ 에서 접속하여 다운로드
 데모: http://webssh.decf.berkeley.edu/
         http://hopper.mathcs.wilkes.edu/~mcsclub/ssh/
 다운: http://www.appgate.com/mindterm/
 컴파일: http://mindterm.appgate.com/pipermail/mindterm-users/2002q1/000489.html

9). root를 제외한 다른 사용자의 ssh접속을 막기
    - root에게 원격접속을 허용하지 않는 것은 보안의 제 1원칙
    - /etc/pam.d/sshd 이 파일을 수정
    #> vi /etc/pam.d/sshd
        #%PAM-1.0
        auth required /lib/security/pam_listfile.so item=user
        sense=allow file=/etc/sshusers onerr=succeed
    위의 내용을 맨 윗줄에 추가하신 후
    #> vi /etc/sshusers  (  접속을 허용할 계정을 한줄에 하나씩 기입)
        linuxer


10) iptables 를 이용한 방화벽 설정 방법

가. ssh의 취약점을 통한 root 권한 획득을 위해 불량접근 IP 잠금처리
#> iptables -A INPUT -s 204.60.81.110 -p tcp --dport 22 -j DROP

나. ssh의 취약점을 통한 외부로의 접근 봉쇄(로컬 --22-->외부)
#> vi /etc/rc.d/rc.local [Enter]
# ssh의 취약점을 통한 외부로의 접근 봉쇄(로컬 --22-->외부)
/sbin/iptables -A OUTPUT -s 210.118.118.118 -p tcp --dport 22 -j DROP
#>reboot

다. 설정 내역 열람
#>  iptables -l [Enter]

11) ssh에서 자기계정 내용외에는 볼수 없게 하는 방법 ( for 웹서버운영시)
#> cd /home [enter]
#> chmod 750 계정명 [enter]
#> chown 계정명.nobody 계정명 [enter]

12. ssh 접속 사용자별 제한 설정
#> vi /etc/ssh/sshd_config

가. AllowGroups
   :ssh 로그인을 해당 그룹으로 제한한다.
    각각의 그룹명은 공백으로 구분한다. 와일드 카드(* 와 ?)를 사용할수 있다.

나. AllowUsers
   :ssh 로그인을 해당 유저로 제한한다. 사용법은 AllowGroups과 같다.

다. DenyGroups
   :AllowGroups의 반대 역할을 한다. 지정된 그룹은 로그인이 거부된다.

라. DenyUsers
   :AllowUsers의 반대 역할을 한다. 지정된 사용자는 로그인이 거부된다.
    예) DenyUsers admin testman invain



#> /etc/init.d/sshd restart

엮인글 :
List of Articles
번호 제목 글쓴이 날짜sort 조회 수

XE Login