개요
ssh에 대해 알아보고 ssh 설정 방법에 대해 알아보겠다.
본투비루트 과제 해결 사항
◦ A SSH service will be running on port 4242 only.
◦ For security reasons, it must not be possible to connect using SSH as root.
◦ The use of SSH will be tested during the defense by setting up a new account.
SSH
ssh는 secure shell의 줄임말로 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행할 때 사용하는 프로토콜중의 하나이다.
강력한 인증 방법과 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.
SSH는 모든 데이터에 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다.
쉘로 원격접속하므로 커맨드 라인에서 작업한다.
ssh는 client와 host가 있다. 호스트는 접속되는 곳이고 클라이언트는 호스트에 접속하려는 컴퓨터이다.
설치 확인
dpkg -l | grep oepnssh
또는
apt search openssh-server
dpkg에서 설치된 패키지 리스트를 검색할 때 -l 옵션을 준다.
설치
apt install openssh-server
작동 확인
systemctl status ssh
포트 허용
sudo ufw allow 4242로 포트 허용sudo vim /etc/ssh/sshd_config파일의 port 22를 port 4242로 바꾸고 PermitRootLogin을 no로 바꾼다.sudo systemctl restart ssh로 재시작
ssh 포트 확인
루트 계정에서 ifconfig등 네트워크 관련툴을 설치
apt-get install net-tools
netstat -ant
netstat: 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보를 보여주는 툴
| option | 설명 |
|---|---|
| -l | 연결 가능한 상태 |
| -n | 포트 넘버 |
| -t | tcp |
| -u | udp |
| -p | 프로그램 이름 |
| -a | 모두 |
| -i | 이더넷 카드별 정상/에러/드랍 송수신 패킷 수 확인 |
| -r | 라우팅 테이블 |
| -s | 네트워크 통계 |
다른 환경에서 ssh로 접속
- VirtualBox 메뉴 -> File -> Host Network Manager
- create(192.168.56.1주소를 가진 vboxnet0 생성)
- 호스트 운영체제 세팅 -> Network -> Adapter 2 -> Host-only Adapter, vboxnet0 설정
- 호스트 운영체제 커맨드창에 ip addr 입력 -> enp0s3의 inet 기억(10.0.2.15)
- 호스트 운영체제 세팅 -> Network -> Adapter 1 -> Port Forwarding
- host ip : 192.168.56.1 / host port : 4242
- guest ip : 10.0.2.15 / host port : 4242
- 클라이언트 터미널에서
ssh user_name@192.168.56.1 -p4242
A SSH service will be running on port 4242 only.
netstat -ant
4242 포트만 열려있는지 확인
For security reasons, it must not be possible to connect using SSH as root.
/etc/ssh/sshd_config파일의 PermitRootLogin의 상태 확인
The use of SSH will be tested during the defense by setting up a new account.
- 유저 추가 :
useradd user_name - 유저 비밀번호 설정 :
passwd user_name후 설정 - 유저 home 디렉토리 생성 :
mkdir /home/user_name - ssh 접속 :
ssh -p 4242 user_name@127.0.0.1