SSH(Secure Shell Protocol)란?
SSH 프로토콜(Secure Shell이라고도 함)은 한 컴퓨터에서 다른 컴퓨터로 보안 원격 로그인을 위한 방법입니다. 강력한 인증을 위한 몇 가지 대체 옵션을 제공하며 강력한 암호화로 통신 보안 및 무결성을 보호합니다. 보호되지 않는 로그인 프로토콜(예: telnet , rlogin ) 및 안전하지 않은 파일 전송 방법(예: FTP ) 에 대한 안전한 대안 입니다. (ssh 공식홈페이지)
SSH 포트 포워딩, 일명 SSH 터널링이란 무엇입니까?
SSH 포트 포워딩은 클라이언트 시스템에서 서버 시스템으로 또는 그 반대로 애플리케이션 포트를 터널링하기 위한 SSH 의 메커니즘입니다. 방화벽을 통과 하는 레거시 응용 프로그램에 암호화를 추가하는 데 사용할 수 있으며 일부 시스템 관리자와 IT 전문가는 이를 사용 하여 가정용 컴퓨터에서 내부 네트워크로 백도어를 엽니 다. 또한 인터넷에서 내부 네트워크로의 액세스를 열기 위해 해커와 맬웨어에 의해 악용될 수 있습니다. 더 광범위한 개요 는 SSH 터널링 페이지를 참조하십시오 . (ssh 공식홈페이지)
왜 SSH 터널링을 사용해야할까
보안상 문제로 서로 다른 포트끼리 접속하려고하면 방화벽에 막혀서 불가능하다.
그걸 가능하게 해주는게 SSH 터널링이다.
SSH 터널링 명령어
ssh -i helloKey.pem -L3307:localhost:3306 ubuntu@3.10.299.448
그러니까 이게 무슨 말이냐면,
- SSH 프로토콜로 원격제어를 할건데(ssh를 할 수 있는 pem키),
- 3307포트로 local(현재 내가 사용하는 PC)에 접속할시,
- IP 3.10.299.448를 갖고있는 PC의 3306번 포트로 접속한다는 뜻이다.
실습해보기
다음 명령어를 입력하면 (mac에서 shell을 사용하는 명령어) 현재 열려있는 port를 확인할 수 있다.
$ sudo lsof -PiTCP -sTCP:LISTEN
mysqld는 mysql의 서버고 기본적으로 3306이라고 지정되어있다.
나는 Mariadb를 사용하고있지만 Mariadb는 mysql의 한 버젼이므로 역시 3306가 기본으로 설정되어 있다.
원격으로 접속한 ssh는 포트 3307이 열려있는 것을 확인할 수 있다.
현재 열려있는 포트에 대해서 자세히 확인하고 싶다면 다음 명령어를 사용하면 된다.
lsof (list open files)
시스템에서 열린 파일 목록을 알려주고 사용하는 프로세스, 디바이스 정보, 파일의 종류등 상세한 정보를 출력해 준다.
sudo lsof -i :확인할 포트번호
sudo lsof -i :3306
sudo lsof -i :3307
참고로 터널링을 사용하지 않고 mysql에 접속하는 명령어는 다음과 같다.
mysql -h서버 -u아이디 -p비밀번호 데이터베이스명
'프로그래밍 > server' 카테고리의 다른 글
이미지 최적화를 위한 HTML코드 (0) | 2022.12.07 |
---|---|
접속port를 영구적으로 바꾸는법 (0) | 2022.12.01 |
우분투 서버에 mariadb 연결하기 & dbeaver 사용하기 (0) | 2022.11.25 |
AWS 우분투 서버 생성&배포&DB연결까지 (0) | 2022.11.25 |
AWS로 생성한 퍼블릭 IPv4를 받아서 cloudflare 설정하기 (0) | 2022.11.24 |
댓글