Cisco IOS에서 SSH 구성하는 방법
이전 강의에서는 Cisco IOS 장비에 원격 접속하기 위해 Telnet을 사용하는 방법을 설명했습니다. Telnet의 문제는 모든 데이터가 평문으로 전송된다는 점이며, 이러한 이유로 사용해서는 안 됩니다.
SSH(Secure Shell) 는 인증과 암호화를 포함하는 안전한 원격 접속 방법입니다. 이를 위해 RSA 공개키/개인키 쌍을 사용합니다.
SSH에는 버전 1과 버전 2 두 가지가 있으며, 버전 2가 더 안전하고 일반적으로 사용됩니다.
마지막으로, SSH를 구성하려면 암호화 기능을 지원하는 IOS 이미지가 필요합니다. 그렇지 않으면 SSH를 구성할 수 없습니다.
1. 구성
SSH를 시연하기 위해 다음 토폴로지를 사용합니다.
R1에서 SSH를 구성하여 다른 모든 장치에서 접속할 수 있도록 합니다. R2는 SSH 클라이언트로 사용됩니다.
1.1. SSH 서버
RSA 키 쌍의 이름은 라우터의 호스트네임과 도메인 네임으로 구성됩니다. 호스트네임을 설정합시다.
Router(config)# hostname R1그리고 도메인 네임도 설정합니다.
R1(config)# ip domain-name NETWORKLESSONS.LOCAL이제 RSA 키 쌍을 생성할 수 있습니다.
R1(config)# crypto key generate rsa
The name for the keys will be: R1.NETWORKLESSONS.LOCAL
Choose the size of the key modulus in the range of 360 to 4096 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [512]: 2048
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 3 seconds)crypto key generate rsa 명령어를 사용할 때, 키 크기에 사용할 비트 수를 묻습니다. 얼마나 선택해야 할까요?
이를 위해서는 Cisco의 차세대 암호화(next generation encryption) 문서를 확인하는 것이 좋습니다. 현재 시점에서 2048비트 키 크기는 적절합니다. 1024비트 이하의 키 크기는 피해야 합니다. 키 크기가 클수록 계산 시간이 더 오래 걸립니다.
키 쌍이 생성되면 다음 메시지가 나타납니다.
R1#
%SSH-5-ENABLED: SSH 1.99 has been enabled위에서 보듯이 SSH 버전 1이 기본 버전입니다. 버전 2로 전환합시다.
R1(config)# ip ssh version 2SSH가 활성화되었지만 VTY 라인도 구성해야 합니다.
R1(config)# line vty 0 4
R1(config-line)# transport input ssh
R1(config-line)# login local
이렇게 하면 SSH만 사용하도록 보장하고(Telnet이나 다른 프로토콜이 아닌), 사용자 이름은 로컬 데이터베이스에서 확인하도록 설정됩니다. 사용자를 생성합시다.
R1(config)# username admin password my_password이제 모든 준비가 완료되었습니다. SSH로 R1에 연결할 수 있어야 합니다.
1.2. SSH 클라이언트
가장 일반적인 SSH 클라이언트는 아마도 PuTTY일 것입니다. SSH 프로토콜을 선택하고, IP 주소를 입력하고, 기본 포트 22를 그대로 두기만 하면 됩니다.
PuTTY 콘솔에서 다음과 같이 표시됩니다.
login as: admin
Using keyboard-interactive authentication.
Password:
R1>다른 Cisco IOS 장비를 SSH 클라이언트로 사용할 수도 있습니다. 방법은 다음과 같습니다.
R2# ssh ?
-c Select encryption algorithm
-l Log in using this user name
-m Select HMAC algorithm
-o Specify options
-p Connect to this port
-v Specify SSH Protocol Version
-vrf Specify vrf name
WORD IP address or hostname of a remote system옵션이 꽤 많지만, 최소한 사용자 이름과 IP 주소는 지정해야 합니다.
R2# ssh -l admin 192.168.12.1
Password:
R1>이제 SSH로 R1에 연결되었습니다.
구성
직접 살펴보고 싶으신가요? 각 장치의 최종 구성은 다음과 같습니다.
R1
hostname R1
!
ip domain name NETWORKLESSONS.LOCAL
ip cef
!
username admin password 0 my_password
!
interface GigabitEthernet0/1
ip address 192.168.12.1 255.255.255.0
!
ip ssh version 2
!
line vty 0 4
login local
transport input ssh
!
endR2
hostname R2
!
ip cef
!
interface GigabitEthernet0/1
ip address 192.168.12.2 255.255.255.0
!
end2. 결론
이제 Cisco IOS 라우터 또는 스위치에서 SSH 서버를 구성하는 방법과 SSH 클라이언트를 사용하는 방법을 배웠습니다.
- SSH는 Telnet과 달리 라우터나 스위치에 대한 안전한 원격 접속 방법입니다.
- SSH는 RSA 공개/개인 키 쌍을 필요로 합니다.
- SSH 버전 2는 버전 1보다 더 안전합니다.
- 암호화 기능을 지원하는 IOS 이미지가 있는지 확인하세요. 그렇지 않으면 SSH를 사용할 수 없습니다.
3. 추가 참고: 대역 외 관리(Out-of-Band Management)
위 예제는 VTY 라인에 transport input ssh를 적용해 모든 인터페이스에서 SSH 연결을 받습니다. 대역 외 관리처럼 관리 인터페이스만 SSH를 허용하고 싶다면 control-plane host 기능으로 인터페이스 바인딩이 가능합니다.
R1(config)# ip http secure-server
R1(config)# control-plane host
R1(config-cp-host)# management-interface FastEthernet0/0 allow ssh이 방식은 지정한 인터페이스로 들어오는 SSH만 허용하므로, 데이터 플레인 인터페이스를 통한 관리 접근을 원천 차단할 수 있습니다. 단 일반적인 대역 내(In-band) 관리 환경에는 VTY + transport input ssh + access-class 조합이 더 보편적입니다.
출처: networklessons.com - SSH Configuration on Cisco IOS
태그: SSH, Telnet