구형 cisco 장치의 경우 ssh client와 프로토콜 자동 매칭이 안되서 ssh 에러 메시지가 출력되는 경우가 있다.
내 경우의 해결 방법을 남겨본다. 장치의 IP는 192.168.0.100 으로 가정한다.
1) cisco 장치의 ssh 포트 번호를 찾아보자
기본 ssh port는 22 이지만, 다른 포트번호로 바꿔둔 경우가 있는데, 찾는 방법이다.
리눅스의 nc 명령으로 tcp 포트 범위를 조금씩 스캔해본다. 너무 넓은 범위로 스캔하면 해킹 의심을 받거나 보안 장비에서 차단될 수 있으니, 조금씩 번호를 잘라서 시도해본다.
명령: $ nc -z 192.168.0.100 21-25 결과: Connection to 192.168.0.100 22 port [tcp/ssh] succeeded!
설명: 192.168.0.100 장치에 대해서 tcp port 21 부터 25까지 응답을 확인한다.
nc -z 옵션은 세션을 맺지않고, listen중인 tcp 포트의 응답만을 확인한다.
22 port가 확인되었으니 -p22 옵션을 추가하여 시도해본다.
2) ssh 접속 시도, 그리고 no matching key exchange method found 에러
명령: $ ssh -p22 username@192.168.0.100 결과: Unable to negotiate with 192.168.0.100 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
메시지를 살펴보면 해답이 있는데,
negotiate를 실패했고, 이유는 key exchange method가 매칭되지 않았다는 것,
그리고, 장치측에서 권하는 방식은 diffie-hellman-group1-sha1 이라고 설명하고 있다. (친절하네~)
3) ssh 옵션에 key exchange method 추가하여 접속 시도, 그리고 no matching cipher found 에러
ssh -oKexAlgorithms 옵션을 추가하여 접속 시도해본다
명령: $ ssh -p22 -oKexAlgorithms=+diffie-hellman-group1-sha1 username@192.168.0.100 결과: Unable to negotiate with 192.168.0.100 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
negotiate를 실패했고, 이유는 cipher 값이 매칭되지 않았다.
그리고, 추천 방식은 aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc 라고 설명하네 (정답을 떠 먹여주네~)
ssh -c 옵션에 cipher 타입 한가지씩 대입하여 시도해보면 되겠다.
4) 위 옵션에 cipher 옵션을 추가하여 접속 시도, 그리고 성공
명령: $ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc username@192.168.0.100 결과: The authenticity of host '192.168.0.100' can't be established. RSA key fingerprint is SHA256:jgyvlRU10DKdo03ku5p5ilL48. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
메시지에서 "can't be established" 이 부분은 이 클라이언트와 처음 접속한다는 의미라서 에러가 아니다.
Are you sure you want to continue connecting (yes/no/[fingerprint])? 이 질문은 yes 입력하면 되겠지.
이어지는 메시지 Warning: Permanently added '192.168.0.100' (RSA) to the list of known hosts. (username@192.168.0.100) Password:"password를 입력한다"
"WARNING: Unauthorized access to this system is forbidden and will be prosecuted by law. By accessing this system, you agree that your actions may be monitored if unauthorized usage is suspected."
* 설정 변경 후 apply/save 잊지 말자 * Alteon Switch 자체의 보안성 강화를 위한 작업 - telnet 포트 차단 또는 비표준포트로 변경 - ssh 표준포트를 비표준포트로 변경하고 sshd 사용 - web GUI (http, https) 차단 또는 비표준포트로 변경
[hostname설정] 명령 >> /cfg/sys/hprompt ena >> /c/sys/ssnmp name "my_loadbalancer"
[SSH 설정] - ssh 포트 변경 (22 to 2233) 명령 >> /cfg/sys/access/sshd/sshport Current SSH server port: 22 Enter new SSH server port [1-65535]: 2233 New SSH server port: 2233 - ssh version 1 을 version 3로 변경 명령 >> /c/sys/sshd/sshv1 dis
- 최초 설정시 기존 config 및 software를 초기화한다 명령: /boot/conf/reset 후속 옵션 : factory 후속 옵션 : y 결과확인 : 리부팅 메시지에서 Software version 확인 리부팅 완료 후 /cfg/dump 실행하여 config가 모두 삭제되었는지 확인
작업예시
>> Main# /boot/conf factory/reset Currently set to use active config block on next boot. Specify new block to use ["active"/"backup"/"factory"]: factory Next boot will use factory default config block instead of active.
Reset will use software "image1" and the factory default config block. >> Note that this will RESTART the Spanning Tree, >> which will likely cause an interruption in network service. Confirm reset [y/n]: y Resetting at 11:04:22 Mon Apr 10, 2023...
**** System Reset from boot cli **** INIT: Sending processes the TERM signal ... Restarting system. ... Software Version 27.0.5.0 (FLASH image1), factory default configuration. ...
설정 확인 >> Main# /cfg/dump script start "Alteon Application Switch 4408" 4 /**** DO NOT EDIT THIS LINE! /* Configuration dump taken 11:07:30 Mon Apr 10, 2023 /* Configuration last applied at 17:44:38 Wed Mar 13, 2019 /* Configuration last save at 17:44:45 Wed Mar 13, 2019 /* Version 27.0.5, Base MAC address 00:03:b2:9e:a0:40 / script end /**** DO NOT EDIT THIS LINE!
>> Configuration#
[관리용 IP 설정]
- IP Interface 1 에 기본 관리 IP를 설정한다 새로 설정한 interface는 enable 해준다
준비한 정보 : ip address 192.168.0.165, subnet mask : 255.255.255.224 broadcast ip : 192.168.0.191, gateway ip : 192.168.0.161
명령 : >> /c/ip/if 1 addr 192.168.0.165 mask 255.255.255.224 broad 192.168.0.191 ena
명령 : >> /c/ip/gw 1 addr 192.168.0.161 ena
설정 확인 후 설정 저장 명령 : >> diff - 기존 config와 변경한 config를 보여준다 명령 : >> apply/save - 새 config를 확정하고, 저장한다
작업예시
>> Configuration# /c/ip/if 1 ------------------------------------------------------------ [IP Interface 1 Menu] ip6nd - IP6 Neighbor Discovery Menu ipver - Set IP version addr - Set IP address mask - Set subnet mask/prefix len vlan - Set VLAN number relay - Enable/disable BOOTP relay ena - Enable IP interface dis - Disable IP interface del - Delete IP interface cur - Display current interface configuration
>> IP Interface 1# addr 192.168.0.165 Current IP address: 0.0.0.0 New pending IP address: 192.168.0.165 Pending new subnet mask: 255.255.0.0
>> IP Interface 1# mask 255.255.255.224 Current subnet mask: 0.0.0.0 New pending subnet mask: 255.255.255.224
>> IP Interface 1# broad 192.168.0.191
>> IP Interface 1# ena Current status: disabled New status: enabled
>> Configuration# /c/ip/gw 1 ------------------------------------------------------------ [Default gateway 1 Menu] ipver - Set IP version addr - Set IP address intr - Set interval between ping attempts retry - Set number of failed attempts to declare gateway DOWN vlan - Set VLAN number prio - Set priority of default gateway route arp - Enable/disable ARP only health checks ena - Enable default gateway dis - Disable default gateway del - Delete default gateway cur - Display current default gateway configuration
>> Default gateway 1# addr 192.168.0.161 Current IP address: 0.0.0.0 New pending IP address: 192.168.0.161
>> Default gateway 1# ena Current status: disabled New status: enabled
>> Default gateway 1# apply/save ------------------------------------------------------------------ Apply complete; don't forget to 'save' updated configuration. Request will first copy the FLASH "active" config to "backup", then overlay FLASH "active" with new config. Confirm saving to FLASH [y/n]: y New config successfully saved to FLASH.
>> Default gateway 1#
결과확인 >> Default gateway 1# /c/dump script start "Alteon Application Switch 4408" 4 /**** DO NOT EDIT THIS LINE! /* Configuration dump taken 11:14:31 Mon Apr 10, 2023 /* Configuration last applied at 11:14:03 Mon Apr 10, 2023 /* Configuration last save at 11:14:05 Mon Apr 10, 2023 /* Version 27.0.5, Base MAC address 00:03:b2:9e:a0:40 /c/l3/if 1 ena ipver v4 addr 192.168.0.165 mask 255.255.255.224 broad 192.168.0.191 /c/l3/gw 1 ena ipver v4 addr 192.168.0.161 / script end /**** DO NOT EDIT THIS LINE!
미-중의 빅테크 대전은 흔히 ‘가파(GAFA) 대 바트(BAT)’로 일컬어진다. 가파는 구글·아마존·메타(페이스북)·애플을, 바트는 바이두·알리바바·텐센트를 일컫는다. 여기에 마이크로소프트와 화웨이 또는 샤오미를 덧붙여 ‘가팜(GAFAM) 대 바스(BATH), 바츠(BATS)’로 부르기도 한다.
요약해보면,
GAFA+M = {Google, Amazon, Facebook(Meta), Apple} + Microsoft
BATX = {Baidu, Alibaba, Tencent} + Huawei or Xiaomi
리눅스의 hostname 변경하는 다양한 방법 (CentOS 5, 6 7, and Ubuntu 14, 16, 18, 20)
hostname 변경은 리눅스 버전별로 다른 방법이 있다. - 임시 변경 : 서버 리부팅되면 원래 이름으로 복구된다 - 영구 변경 1 : hostname 저장파일을 수정하고 리부팅한다 - 영구 변경 2 : ubuntu의 경우 hostname을 영구 변경하는 명령이 별도로 존재한다
1. hostname 확인, 임시 변경하기 1) hostname 명령으로 확인하기 리눅스 모든 버전이 동일하다
hostname을 정하는 파일은 hostname, hosts 파일이다. 두 파일을 수정한 후, 서버 재시작하면 적용된다. ---------------------------- $ sudo vi /etc/hostname ramen3-server $ $ sudo vi /etc/hosts 127.0.0.1 localhost 192.168.10.123 ramen3-server ----------------------------
옵션 번호는 아래와 같다 0 : halt (시스템 종료) 1 : single user mode, 싱글 모드로 쉘로 바로 부팅, 복구시 주로 사용 2 : multiuser mode without using NFS 3 : multiuser mode console booting 4 : no served 5 : Muntiuser mode and X-windows booting 6 : reboot
명령어 사용을 예를 들어보면,
1. 시스템 종료 명령 - 즉시 종료 명령 # shutdown -h now
# halt
# init 0
- 예약 종료 명령
# shutdown -h +10 // 10분 후 종료 (h = halt)
# shutdown -r 22:00 // 22시정각에 재부팅 (r = reboot)
# shutdown -c // shutdown 취소 (c = cancel)
# shutdown -k now // 터미널 접속자에게 종료 메시지를 보낸다, 실제는 종료되지 않음)
1) 기초 등급 : Cloud Practitioner : 기초과정, 온라인 무료 학습만으로도 시험 패스 할 수 있는 입문자용 시험 2) Associate 등급 : SAA, DA, SOAA 등 : 1년 정도의 경험을 요구한다 3) Professional 등급 : SAP, DOPE 등 : 2년 이상의 경험 4) Speciality 등급 : 특정 전문 분야, Networking, Data Analytics, Database 등
SAA의 시험 수준은 최소 1년 이상의 실무 경험자가 할 수 있는 Architecture 지식을 기준으로 한다. 하지만, 1~2년 실무 경험자라고 하더라도, 여기에 나열된 지식과 기술 경험을 모두 갖추는 것은 거의 불가능에 가깝다. 경험하지 못한 나머지 부분은 이론과 실습으로 채울 수 밖에 없다. 그리고, 이것은 객관식 이론 시험이기 때문에 실무 경험이 적거나, 이론 학습만으로도 자격취득을 할 수 있다.
학습 방법
AWS 실무 경험이 부족하다면, 문서나 시험문제를 먼저 보지 말고, 기본적인 AWS 서비스를 직접 체험해보는 것이 좋다. 유튜브 또는 인강을 활욯하여 AWS 기초 과정을 학습하고, 실습해보면서, AWS의 주요 기술의 구현 방법과 AWS 콘솔의 주요 용어들을 체득한다. 시험 범위의 서비스들에 대해서, 기본 개념, AWS 콘솔 설정 화면에 나오는 필수 용어들을 이해하고 Architecture를 설명할 수 있는 정도를 목표로 한다. 추천하는 강의는 Udemy 사이트에 리뷰 많은 SAA 강의 과정을 고르거나, 한국어 강의를 듣고 싶다면 인프런(Inflearn) 사이트에 SAA 강의가 간결하고 알차게 되어 있다.
1) 인강 듣기
SAA 수준의 강의는 유튜브에도 있고, 인프런 같은 인강에도 가성비 좋은 SAA 강의가 나와있다. 한가지를 선정하여 1회 학습하여 시험의 범위를 완강한다. 내 경우에는, 2~3회 돌려보면서 나만의 요약 노트를 만들고, 모르는 용어나 설명을 추가적으로 보완하였다.
2) 인강 보충 자료는 AWS 콘솔과 AWS Document를 활용
인강을 보면서, AWS 콘솔로 설정하는 화면을 직접 보고, 설정하는 화면에 표시되는 기능과 옵션들을 이해하려고 노력했다. 비용때문에 최종 실행까지는 하지 않았다. 하지만, 약간의 실습이라도 화면구성과 용어, 옵션 기능들을 실제로 보니 개념과 동작을 이해하고 느끼는데 도움이 됬다. 그리고, 인강에서 모르는 용어가 나오거나,콘솔 화면에 표시되는 기능과 옵션의 설명은 AWS Document를 활용했다.
AWS Document는 분량이 방대하고, SAA 수준에서 필요없는 디테일한 설명이 많다. 이 자료에서는, 기본 개념, 동작원리, 사용방법(콘솔,CLI,API), 모범사례, 모니터링 항목 정도만 참고로 했다.
AWS 자료 찾는 방법은, 예를 들어, "dynamodb 란 무엇인가" 이렇게 구글링하면 대부분 최상단에 https://docs.aws.amazon.com › latest › Introduction What is Amazon DynamoDB? - 작동 방식 ... 이렇게 검색되는 AWS Document를 참고했다.
실제 시험 문제에, 서비스의 옵션에 대한 이해를 요구하는 문제가 출제된다. 예를 들면, '인스턴스 배치 그룹'의 종류 중에 가장 고성능인 것을 고르거나, 가장 고가용성인 것을 고르는 문제가 나온다. 인스턴스 배치 그룹의 옵션은, - 클러스터 : 근접네트워크, 짧은 지연시간, 고속 - 파티션 : 다른 랙의 여러 하드웨어를 그룹화 , 서버 장애 영향적음, 하둡 등 분산처리용 - 분산형 : 같은 랙의 서버를 그룹화, 서버랙 장애 영향 적음, 안전 고가용성 목적 ~으로 정리할 수 있다.
3) 연습문제 풀기
내 경우엔 인강 뒤의 모의고사 10회와 구글링으로 찾은 SAA Dump문제를 포함하여 약 1000문제 정도를 소화했다. 문제를 풀고, 오답 체크하면서 부족한 부분은 AWS Document를 다시 확인했고, 내 요약노트를 업데이트했다.
'인프런' 인강의 SAA 강의 뒷부분에 나오는 400문제 정도를 풀고 학습이 되고 나서부터는 반복되는 문제와 패턴들이 보이기 시작했다. 간단한 문제는 질문의 핵심 단어와 답을 빠르게 연결 할 수 있었다. 구글링해서 찾은 SAA 한글 Dump 블로그 자료(블로그 링크 여기 "SAA-02 덤프 풀이 by 바교망")도 많은 도움이 됬다. - 좋은 자료를 공개해주셔서 감사드립니다 -
여기서 추가로 500~600문제를 소화하면서 점수가 커트라인 72% 수준으로 나오기 시작했다. 1000문제 정도를 소화한 후에는 오답문제만 모아서 다시 풀기를 했다. 문제 풀이는 충분히 많이 푸는 것이 확실히 도움이 됬다. 실제 시험에도 상당히 유사하거나 거의 같은 문제가 많이 나왔다.
4) 두개의 요약노트
a. 첫번째 노트는, 인강 노트
인강 강의 순서+ 시험 가이드의 '목록' 순으로 노트를 만들어서 각 서비스의 개념 이해와 중요 기능 및 옵션 설명과 차이점을 정리했다 연습문제에서 보충되는 자료를 계속 추가하였고, 연습문제 2-3회를 푼 다음에 인강 노트 리뷰를 한번씩 했다.
b. 두번째 노트는, 기능 비교 노트 유사한 용어가 나오는 서비스와 기능들을 따로 묶어서 비교 노트를 만들었다. 예를 들면, 서버리스 종류와 차이점은? Lambda, Fargate, S3, DynamoDB, aurora-serverless, SNS, SQS, API Gateway ... 응답 시간 비교 ? : 마이크로 초=DAX, 밀리 초=DynamoDB, RDS, ElastiCache ... 네트워크 보안 서비스 종류와 차이점은? SecurityGroup, NACL, WAF, AWS Shield ... 감사 모니터링 종류와 차이점은? CloudWatch, Cloudtrail, Config, GuardDuty,... ACL 기능이 있는 서비스는? NACL, RDS, ... Global Routing 지원하는 서비스는? CloudFront, Global Accelerator S3와 Glacier의 종류별 비용 차이점 등등
연습문제 dump를 풀면서, 기능 비교 노트를 만든 것이 문제 풀때 많은 도움이 됬다.
시험시 주의사항
시험장 선택 PSI와 PearsonVUE 시험 방법은 PSI와 PearsonVUE 두가지가 있는데, PSI는 시험장에 방문하여 시험장의 컴퓨터로 시험을 보는 것이고, PearsonVUE는 내 방에서 혼자 내 컴퓨터로 시험을 보는 것이다. PSI 방식이 가장 안전한 방법이다. PearsonVUE는 웹캠과 마이크를 이용해 감독관과 영어 또는 일본어로 소통하면서 시험장소와 내 컴퓨터가 시험에 적합한지 확인을 하는 과정을 거쳐야 하는데, 영어 또는 일본어에 아주 익숙하지 않다면 추천하고 싶지 않다. 내 경우엔 PearsonVUE로 시험을 봤는데, 감독관이 남아시아계 영어를 써서 리스닝에 어려움이 많았고 나 또한 영어에 능통하지 않아서 시험 전 단계에서 에너지 소모가 심했다. 다음엔 시험장에 가서 시험을 보려한다.
복수 답안 문제를 놓치지 않게 주의한다 시험편의 지원요청 - 비영어권 지원자는 시험 시가을 30분 더 제공 받을 수 있다, 연습문제를 충분히 풀었다면 시험 시간은 부족하지 않을테지만, 혜택이니 시험 예약하기 전에 미리 신청해둔다.