본문 바로가기
정보보안 지망이!/Linux 심화

Linux2_SSH + scp, sftp

by Edes Kim 2020. 5. 20.

<SSH> : Secure Shell

- Telnet과 더불어 가장 많이 사용하는 원격접속 서비스

- 평문형태의 전송 방식인 Telnet과 달리 암호키를 이용한 전송방식 사용

- 패킷 전송을 도청해 볼수있는 Wireshark를 사용하면 확인 가능

 

환경설정을 이용하는 방법

/etc/ssh/sshd_config

*telnet의 경우엔 /etc/firewalld/zones/public.xml을 사용했다.

 

명령어를 이용한 방법

패키지(openssh*) / 포트(22/tcp) / 서비스(ssh) / 데몬(sshd.service)

* .service는 기본적으로 있는것이기 때문에 생략 가능


0) 기본 설정 (마운트, 패키지 설치, 포트, 서비스, 데몬 + 설정(sshd.config)의백업)


1) 포트 변경

*설정의 백업파일이 아닌 설정원본파일(sshd.config)을 수정하는 것!

 

vi /etc/ssh/sshd_config 에서 Port 26을 추가

: 이렇게만 하면 여전히 실행안됨...

* 바꿔서는 안되는 포트가 몇 있는데 그중 하나가 이것. 즉 Port26로 바꾸지 말고 있는 그대로 쓸것

 

-> 데몬은 변경한 설정을 반영하는 것으로 설정을 변경할때마다 꼭 해야함!

systemctl restart sshd.service

근데... 해도 안됨...


2) 접속가능한 IP설정

접속가능한 IP설정

ListenAddress 192.168.31.128 내 IP주소 입력

[실습]에서는 유동IP를 변경(129)로 변경하여 접근가능한지 테스트 -> IP주소 바꾸기: ifconfig ens32 192.168.31.129로

 

여기서 ListenAddress 를 주석없이 추가하지 않았다면 모든 IP에서의 접속을 허용 (기본설정)했겠지만 주석없이 추가함으로 특정 IP만 활성화되어 그외의 어떠한 IP로도 접근이 불가능하다. 주로 보안을 위해 사용

 

-> systemctl restart sshd로 데몬 꼭 해야함!

 

DMZ 구역 (외부에서 접근 못하는구역)

#systemctl restart network 


3) 일반 사용자 접속 후 관리자 권한 획득(매우중요)

PermitRootLogin을 no로 활성화

systemctl restart sshd를 통해 데몬 꼭 해야함!

직접 root로 접속이 안되기 때문에 samadal 계정을 통해 우회해서 root로 접근해야함 'su -'


<원격 접속>

ssh -l samadal 192.168.31.128 또는

ssh samadal@192.168.31.128

<원격지의 데이터 복사하기> : scp (Secure Copy)

자신의 시스템 내에서 파일을 복사할때는 cp를 쓰지만 다른 시스템 (ex. Server -> Client 또는 다른 컴퓨터)으로 cp를 보낼때는 'scp'라는 명령어를 사용한다. cp와 복사한다는 역할은 같다.

#scp [옵션] [원본 파일 위치] [Server-IP]   : 관리자 계정으로 진행하기 때문에 권한의 제약을 받지않는다

#scp [옵션] [원본 파일 위치] [계정명]@[Server-IP] 

 

-samadal@localhost~

#scp -r samadal@192.168.31.128:/tmp/A /test/        ->  이때는 samadal로 접속할때 Other의 권한을 가지지만 Sticky Bit로 인해 사용권한을 가지게 되고, /test는 자신의 파일이기때문에 사용자 권한을 가짐

*** /test/로 받기때문에 그 계정이 관리자 계정이기 때문에 root root 의 소유권을 가지게 된다. 

 

#scp -r /tmp/A  samadal@192.168.31.128:/test     -> /tmp/A는 자신의 파일이여서 사용자 권한을 가진다. /test는 samadal의 파일이여서 Other의 권한을 가지는데 이때 'r'권한이 없기 때문에 실행이 되지 않는다. 이럴때는 직접 chmod 를 하여 chmod 753 /test 명령어를 넣어야 한다.

 

허가권<소유권 


<sftp>

(상대방에게)올려보낼 파일이 있는 경로로 이동 [#cd /tmp] : tmp안에 A를 올려보낼것

-> #sftp samadal@192.168.31.128 

-> #sftp>cd /test            

-> #sftp>put A 

= sftp를 사용할때의 그 location안의 정보를 sftp를 통해 접속한 서버에다 올려보내는 것.

 

'정보보안 지망이! > Linux 심화' 카테고리의 다른 글

Linux2_Auto Mount (수정필요)  (0) 2020.05.25
Linux2_FTP  (0) 2020.05.22
Linux2_VNC(vncviewer 작동안됨. 설치과정 오류?)  (0) 2020.05.22
Linux2_Telnet  (0) 2020.05.19
Linux2_응급복구, 초기설정  (0) 2020.05.18