Cisco 장치에서 활성화 비밀을 설정해야합니까?


16

Cisco 2901 라우터를 설정하고 있습니다. 콘솔 라인에 로그인 비밀번호가 있고 vty 라인은 공개 키 인증을 사용하는 ssh 연결 만 허용하도록 구성되어 있습니다. 보조 회선이 종료되었습니다. 라우터에 액세스 할 관리자는 두 명 뿐이며 라우터에서 모든 구성을 수행 할 권한이 있습니다.

Cisco 장비 전문가는 아니지만 라우터 구성에 대한 액세스를 보호하기에 적합하다고 생각합니다. 그러나 내가 읽은 모든 단일 가이드는 다른 사용자 또는 라인 암호에 관계없이 활성화 비밀을 설정해야한다고 말합니다.

활성화 암호에 알지 못하는 것이 있습니까? 콘솔, 보조 또는 vty 회선보다 라우터에 액세스하는 다른 방법이 있습니까?

편집 : 내 상황에 대해보다 명확하게하기 위해 아래의 실제 구성을 추가했습니다. 다음은 작동 암호가 필요하거나 내부 암호와 username별도로 구성 이 작동하는 경우 작동합니다 ip ssh pubkey-chain.

aaa new-model

ip ssh time-out 60
ip ssh authentication-retries 2
ip ssh version 2
ip ssh pubkey-chain
 username tech
  key-hash ssh-rsa [HASH]
ip scp server enable

line vty 0 4
 transport input ssh

1
짧은 대답 : 필요 하지는 않지만 매우 권장됩니다. 전체 개인을위한 첫 번째 방어선이므로
Ricky Beam

그러나 콘솔 라인에 암호가 있고 vtys가 있는데 다른 암호가 필요한 이유는 무엇입니까? 또한 관리자 암호가 기록, 전자 메일 등을 요구하기 때문에 암호 사용을 공유해야합니다. 각 관리자가 자신의 개인 암호 / 키를 갖는 것이 좋습니다.
Marwan

사용 권한을 높이십시오. aaa를 통해 변경하지 않으면 명령 줄이 있으면 여전히 적용됩니다.
Ricky Beam

답변:


24

아닙니다. 기술적으로는 아닙니다. 그러나 활성화 모드로 전환 할 수 있는지 여부는 로그인 방법에 따라 다릅니다.

인스턴트 만족 버전은 다음과 같습니다.

활성화 암호없이 콘솔을 통해 입력 할 수 있지만, 활성화 암호를 설정하지 않고 간단한 vty 로그인 암호를 사용하면 사용자 모드에 고정됩니다.

오래 지속되는 StackExchange 응답기 버전은 다음과 같습니다.

시스코 인증은 초보자에게는 엉망입니다. 거기에 레거시 수하물이 많이 있습니다. 이것을 실세계의 의미로 나누려고 노력하겠습니다.

비즈니스가 라우터 또는 스위치에 로그인하는 모든 사람은 특권 모드 (사용 가능)로 직접 이동합니다. 사용자 모드는 기본적으로 프론트 로비이며 초안을 유지하는 것보다 더 많은 목적을 제공합니다. 방대한 네트워크와 똑같이 방대한 양의 노동력을 보유한 대규모 조직에서는 현관을 두드려서 누군가가 여전히 있는지 확인하는 것이 좋습니다. (즉 응답, 로그인 및 바로 장치가 있는지 사실, 가장 사소한 명령을 실행할 수있다 아니라 불.) 그러나 모든 환경에서 나는 지금까지, 계층 1 있었다 적어도에서 근무했습니다 몇 가지 능력 물건을 깰.

따라서, 특히 귀하와 같은 시나리오에서, 활성화 암호를 아는 것은 무엇이든해야합니다. 이것이 보안의 두 번째 수준이라고 할 수 있습니다. 하나는 장치에 들어가기위한 암호이고, 다른 하나는 관리자 권한으로 에스컬레이션 할 수 있습니다. 그러나 그것은 조금 어리석은 것처럼 보입니다.

이미 언급했듯이 동일한 암호를 사용할 수 있으며 다른 사람이 telnet / ssh를 통해 무단으로 액세스 한 경우에는 큰 도움이되지 않습니다. 모든 사람이 정적, 전역 암호를 공유하는 것은 하나의 토큰 만 입력하는 것보다 더 큰 문제입니다. 마지막으로, 대부분의 다른 시스템 (서비스, 어플라이언스 등)에는 두 번째 인증 계층이 필요하지 않으므로 일반적으로 안전하지 않은 것으로 간주되지 않습니다.

좋아, 그 주제에 대한 나의 의견이다. 자신의 보안 자세에 비추어 그것이 의미가 있는지 스스로 결정해야합니다. 사업에 착수합시다.

Cisco는 현명하게도 기본적으로 원격 액세스 비밀번호를 설정해야합니다. 라인 구성 모드가되면 ...

router> enable
router# configure terminal
router(config)# line vty 0 15
router(config-line)#

... 라우터에게 인증을 건너 뛰도록 지시 할 수 있습니다.

router(config-line)# no login

... 즉시 해킹 당하지 만 공격자는 결국 사용자 모드가됩니다. 따라서 활성화 암호가 설정되어 있으면 최소한 수행 할 수있는 손상 이 다소 제한됩니다. (기술적으로 는 활성화 암호가 없으면 더 이상 갈 수 없습니다 . 잠시 후에 더 자세히 설명하십시오 ...)

당연히 아무도 실제 생활에서 이것을하지 않을 것입니다. 기본적으로 상식적으로 최소 요구 사항은 간단한 암호를 설정하는 것입니다.

router(config-line)# login
router(config-line)# password cisco

이제 비밀번호를 묻는 메시지가 표시되고 사용자 모드로 다시 돌아갑니다. 콘솔을 통해 오는 경우 enable다른 암호를 입력하지 않고 입력 하여 액세스 할 수 있습니다. 그러나 텔넷을 통해 상황이 다르기 때문에 대신 이것을 얻을 수 있습니다.

$ telnet 10.1.1.1
Trying 10.1.1.1...
Connected to 10.1.1.1.
Escape character is '^]'.


User Access Verification

Password: *****
router> enable
% No password set
router> 

다음으로 넘어 가기 ... 기본적으로 구성된 모든 비밀번호가 일반 텍스트로 표시된다는 것을 이미 알고있을 것입니다.

router# show run | inc password
no service password-encryption
 password cisco

이것은 보안에 민감한 괄약근을 강화시키는 것들 중 하나입니다. 그것이 정당화 된 불안인지 여부는 다시 스스로 결정해야합니다. 한편으로 구성 을 수있는 충분한 액세스 권한이 있으면 구성을 변경 하기에 충분한 액세스 권한이있을 수 있습니다. 당신이 일이 다른 한편, 만약 부주의 자체가, 다음 ... 물론, 지금은 수단이없는 사람에게 구성을 공개 수있는 수단을 가지고 있습니다.

다행히 위의 스 니펫에서 첫 번째 줄 no service password-encryption은 다음을 변경하는 핵심입니다.

router(config)# service password-encryption
router(config)# line vty 0 15
router(config-line)# password cisco

이제 구성을 보면 다음과 같이 표시됩니다.

router(config-line)# do show run | begin line vty
line vty 0 4
 password 7 01100F175804
 login
line vty 5 15
 password 7 01100F175804
 login
!
!
end

표시된 문자열이 기억 나지 않기에 일반 텍스트 암호보다 약간 더 좋습니다. 그러나 해독하는 것은 쉽지 않습니다. 여기서는이 용어를 느슨하게 사용합니다. 첫 번째 Google 검색 결과 페이지에서 해당 문자열을 문자 그대로 12 개의 JavaScript 비밀번호 크래커 중 하나에 붙여넣고 원래 텍스트를 즉시 가져올 수 있습니다.

소위 "7"비밀번호는 일반적으로 "암호화"가 아니라 "난독 화"로 간주되어 아무 것도없는 것보다 낫다는 사실을 강조합니다.

그러나 결과적으로 모든 password명령은 더 이상 사용되지 않습니다. (또는 그렇지 않은 경우에는 있어야합니다.) 따라서 다음 두 가지 옵션이 있습니다.

router(config)# enable password PlainText
router(config)# enable secret Encrypted
router(config)# do show run | inc enable
enable secret 5 $1$sIwN$Vl980eEefD4mCyH7NLAHcl
enable password PlainText

비밀 버전은 단방향 알고리즘으로 해시됩니다. 즉, 원본 텍스트를 다시 얻는 유일한 방법은 무차별 대입입니다. 즉 알려진 해시를 생성 할 때까지 가능한 모든 입력 문자열을 시도합니다.

프롬프트에서 암호를 입력하면 동일한 해싱 알고리즘을 거치므로 동일한 해시가 생성되어 구성 파일의 암호와 비교됩니다. 일치하면 비밀번호가 허용됩니다. 그렇게하면 암호를 만들거나 입력 할 때를 제외하고 일반 텍스트를 라우터에 알 수 없습니다. 참고 : 다른 입력이 동일한 해시를 생성 할 가능성은 항상 있지만 통계적으로 매우 낮은 (읽기 : 무시할 수있는) 확률입니다.

위의 구성을 직접 사용한다면, 라우터는 모두 수 enable passwordenable secret라인이 존재하지만, 암호와 비밀 승리 프롬프트. 이것은 의미가없는 시스코주의 중 하나이지만, 그 방식입니다. 또한 secret라인 구성 모드에 해당하는 명령 이 없으므로 난독 화 된 암호가 붙어 있습니다.

이제 구성 파일에서 (쉽게) 복구 할 수없는 암호가 있지만 여전히 한 가지 문제가 있습니다. 텔넷을 통해 로그인하면 일반 텍스트로 전송됩니다. 좋지 않다. 우리는 SSH를 원합니다.

보다 강력한 보안을 염두에두고 설계된 SSH는 약간의 추가 작업이 필요하며 특정 기능 세트가있는 IOS 이미지가 필요합니다. 한 가지 큰 차이점은 간단한 암호로는 더 이상 충분하지 않다는 것입니다. 사용자 기반 인증으로 졸업해야합니다. 그리고 그 동안 암호화 키 쌍을 설정하십시오.

router(config)# username admin privilege 15 secret EncryptedPassword
router(config)# line vty 0 15
router(config-line)# transport input ssh
router(config-line)# no password
router(config-line)# login local
router(config-line)# exit
router(config)# ip ssh version 2
router(config)# crypto key generate rsa modulus 1024

이제 가스로 요리하고 있습니다! 이 명령은 secret암호를 사용 합니다. (예, 사용할 수는 있지만 사용해서는 안 됨 password). 이 privilege 15부분에서는 사용자 모드를 완전히 우회 할 수 있습니다. 로그인하면 권한 모드로 바로 이동합니다.

$ ssh admin@10.1.1.1
Password: *****

router#

이 시나리오에서는 활성화 암호 (또는 비밀)를 사용할 필요가 없습니다.

아직 "와우 .. 클러스터 퍼지"라는 생각이 없다면 , 다른 인증 서버 (RADIUS)와 같은 것들에 빠져들게 명령 뒤에 숨어있는 다른 다른 글이 여전히 있다는 것을 명심하십시오. aaa new-model, TACACS +, LDAP 등), 인증 목록 (사용할 소스 및 순서를 정의), 권한 부여 수준 및 사용자 활동 계정.

잠시 동안 라우터에 갇힌 느낌이들 때 한동안 모든 것을 저장하십시오.

희망이 도움이됩니다!


1
어서 오십시오! 훌륭한 첫 번째 답변!
디지털 외상

감사합니다. 매우 통찰력있는 답변입니다. 나는 다양한 암호 암호화 장치를 알고 있으며 aaa new-model을 사용하고 있습니다 (내 질문을 편집하여 반영했습니다).
Marwan

활성화 비밀이없는 것은 나에게 문제가되지 않는 것 같습니다. 사용자 이름 / 암호를 사용하여 telnet / ssh 또는 공개 키를 사용하더라도 간단히 입력 enable하면 작동합니다. 또한 권한이 15 인 사용자 이름을 사용하려면 여전히 enable을 입력해야합니다. 이것은 aaa 새 모델 때문입니까?
Marwan

1
인증 목록을 정의 해 보셨습니까? "aaa 인증 로그인 기본 로컬"및 "aaa authorization exec 기본 로컬"을 사용하십시오. 또는 후자의 경우 "local"대신 "if authentication"을 사용하십시오.
SirNickity

IOS 15.1 (4) M을 실행하는 2811에서 구성을 복제하려고 시도했지만 흥미로운 결과가 발견되었습니다. aaa authen / author 줄을 정의하지 않은 경우 공개 키로 로그인하고 전역 사용자 이름으로 로그인 할 수 없습니다. 이전 주석마다 authen / author 줄을 정의하면 공개 키로 SSH를 사용할 수 없습니다-전역 사용자 이름 명령이 필요합니다 (그렇지 않으면 권한 부여 실패) 바보 같은 일을하고 OUT으로 전역 사용자 이름을 입력하면 비밀 / 암호 인 SSH는 키로 작동하지만 텔넷은 암호없이 작동하므로 그렇게하지 마십시오.
SirNickity

4

예, 무언가로 설정해야합니다. 그것은 IOS가 작동하는 방식입니다. 원하는 경우 로그인 비밀번호와 동일하게 만들 수 있습니다.

여러 사용자의 경우 다른 암호를 입력하지 않고도 AAA 인증을 설정하여 활성화 모드로 바로 이동할 수 있습니다. 또한 개별 관리자의 활동을 추적 할 수 있습니다. (그러나 여전히 비밀 암호 사용으로 설정해야합니다.)

aaa new model
aaa authentication login default local
aaa authorization enable default local

username chen-li password foo privilege 15
username safar password bar privilege 15

2
Ron의 답변을 백업하려면 VTY가 레벨 15를 직접 입력하도록 구성하지 않는 한 권한있는 실행 모드로 들어가려면 활성화해야합니다.
jwbensley

@jwbensley. 좋은 생각. 나는 그것을 잊었다.
Ron Trunk

aaa new-model을 사용하고 있지만 권한 15를 설정하려면 여전히 enable 명령을 사용해야합니다. 나는 비밀 / 암호 활성화가 필요하지 않습니다 (방금 테스트했습니다).
Marwan

작동하도록 이동하십시오. 분명히 aaa authorization exec default local권한있는 exec를 자동으로 입력 하도록 지정해야 했습니다.
Marwan

1

기존 정보에 추가하려면 여기를 클릭하십시오.

enable

enable비밀번호 를 설정하는 첫 번째 옵션 은 enable password입니다.

Switch(config)#enable password passfoo
Switch#show running-config | include enable
enable password passfoo

보시다시피 암호는 일반 텍스트로 저장됩니다. 이것은 나쁘다 .

두 번째는 enable secret입니다.

Switch(config)#enable secret ?
  0      Specifies an UNENCRYPTED password will follow
  5      Specifies a MD5 HASHED secret will follow
  8      Specifies a PBKDF2 HASHED secret will follow
  9      Specifies a SCRYPT HASHED secret will follow
  LINE   The UNENCRYPTED (cleartext) 'enable' secret
  level  Set exec level password
Switch(config)#enable secret passfoo
Switch#show running-config | include enable
enable secret 5 $1$cSF4$uydOsfi3J2vGT.77tuYWh1

이것이 더 좋습니다 . 적어도 우리는 지금 암호의 해시를 가지고 있습니다. 그러나 이것은 여전히 ​​소금에 절인 MD5 만 사용하므로 큰 단어 목록과 openssl로 쉽게 해독 할 수 있습니다.

세 번째 옵션 (및이 답변의 목적)은 enable algorithm-typePBKDF2 또는 SCRYPT를 사용할 수 있도록하는 것입니다.

Switch(config)#enable algorithm-type ?
  md5     Encode the password using the MD5 algorithm
  scrypt  Encode the password using the SCRYPT hashing algorithm
  sha256  Encode the password using the PBKDF2 hashing algorithm
Switch(config)#enable algorithm-type scrypt secret ?
  LINE   The UNENCRYPTED (cleartext) 'enable' secret
  level  Set exec level password
Switch(config)#enable algorithm-type scrypt secret passfoo
Switch#show running-config | include enable
enable secret 9 $9$dXjOMeJPYKOFbl$0D4.ItXi8yrjp.A9dt7Ew6tTgr3LYmMlzD672d.LjFk

이것은 확실히 최고 입니다.

필립 다스 는 타입 9를 선택 해야하는 이유에 대한 훌륭한 요약을 작성했습니다. Thomas PorninIlmari Karonen 은 더 자세한 정보를 제공합니다.


0

기본적으로 추가 보안 계층입니다. 서비스 비밀번호 암호화를 지원하는 IOS 버전이없는 경우 콘솔 및 VTY 비밀번호가 일반 텍스트 인 동안 비밀번호 만 암호화됩니다. 누군가가 구성의 사본을 얻을 수있는 경우 (예 : 백업 또는 무인 컴퓨터에서 텔넷으로 연결 한 경우) 암호화 된 활성화 암호를 사용하면 텔넷을 사용할 수 있어도 라우터를 제어하기가 더 어려워집니다.

암호화 된 VTY 및 콘솔 비밀번호를 사용하더라도 안전을 위해 다른 활성화 비밀번호가 있어야하고 추가 장벽을 제공해야합니다.


0

관리자 2 명의 사용자 중 1 명을 종료합니다. Cisco는 연결을 통해 가능한 모든 종류의 해킹 진입 점을 매우 소중합니다. 두 명의 관리자가 있습니다. cisco에 연결하면 침입자가 연결되어 있다고 생각하고 적절한 로그인없이 추가 진행을 차단합니다. 한 번 제어가 다시 설정되면 관리자

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.