• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

CentOS에 adguardhome 올린 간단한(?)후기

th20ry 1039

1

1

<주의>
이 글을 올리는 사람은 컴퓨터 무자격자(?)로써 각종 보안에 관련된 세팅이 박살나있을수도 있습니다.


adguard를 원래 핸드폰에 사용중이었는데, 이게.. 예전 초창기 adguard와 다르게 vpn을 쓰면서부터 네트워크 바뀌거나 wifi 잡고 끊을때마다 정신줄을 놓더라구요. 
그런데 여기서 dns만 쓰는 adguardhome을 보고 설치해야겠다는 다짐(?)을 하게되었습니다.
우여곡절끝에 완성을하고 실사용이 가능하게 만들었는데,

이딴 글이 필요할지는 모르겠지만 복습(?)도 할겸 혹시 막히는부분 있으신분 참고하시라고 게시글을 올립니다. 

 

 

1. CentOS 설치 
CentOS 7을 받아서 설치합니다. 
설치할때 꼭 네트워크 설정을 해야합니다.(기본은 no network이니 디스크 설정 이후 아래 network에서 활성화를 시킵니다.)

 

2. 고정 ip
먼저 두 값을 찾아야합니다.
IPADDR = ifconfig 을 사용해서 ens-192(기본 유선 네트워크 어댑터)의 ip를 찾습니다. 
GATEWAY = ip route를 사용해서 제일 위에 ip입니다. 

그리고 cd /etc/sysconfig/network-scripts 에서 
ifcfg-ens-192(기본 유선 네트워크 어댑터, 사람마다 다를겁니다.)를 수정해야합니다. 
저같은경우에는 
vi /etc/sysconfig/network-scripts/ifcfg-ens-192 였습니다. 

i를 눌러 insert 모드로 진입한 이후에 

수정을 완료하시고 esc + :wq로 종료하시면 됩니다. 

BOOTPROTO가 'dhcp'로 되어있을텐데 
아래 값에 맞게 수정합니다.

BOOTPROTO=none
IPADDR=###ifconfig으로 찾은 ip값###
PREFIX=24
GATEWAY=###ip route로 찾은 ip값###
DNS1=168.126.63.1 ### 저같은 경우 KT라서 KT dns값을 넣었습니다.
DNS2=168.126.63.2

그리고 systemctl restart network 또는 reboot을 통해서 해당 ip로 변경합니다.(저는 리붓선호)

 

3.도커 및 포타이너 설치를 합니다.
도커 설치
# yum install -y yum-utils 
# yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
# yum erase docker-ce docker-ce-cli containerd.io 
# yum install docker-ce docker-ce-cli containerd.io
# systemctl start docker
# systemctl enable docker

포타이너 설치
# docker volume create portainer_data
# docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:latest

4.Adguardhome을 설치합니다. 
#docker pull adguard/adguardhome

#docker run --name adguardhome\
    --restart unless-stopped\
    -v /my/own/workdir:/opt/adguardhome/work\
    -v /my/own/confdir:/opt/adguardhome/conf\
    -p 53:53/tcp -p 53:53/udp\
    -p 67:67/udp -p 68:68/udp\
    -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
    -p 853:853/tcp\
    -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
    -p 5443:5443/tcp -p 5443:5443/udp\
    -d adguard/adguardhome

저같은 경우에 nginx proxy manager를 통해서 인증서를 재발급받을것이므로 80포트를 8080:8080,443 포트를 4443:4443, 그리고 53포트를 5353:5353 으로 변경하였습니다. 

 

5.Adguard에 접속 및 기본설정을 합니다. 
{{2번에서 찾은 나의 ip = IPADDR=###ifconfig으로 찾은 ip값}}:3000 으로 최초 접속을 합니다. 
caution. 4번에서 80포트와 53포트를 변경하셨다면, 80포트와 53포트를 변경한 값으로 변경하셔야 나중에 adguard가 통째로 사라지고 오류가 뜨는 불상사를 막으실 수 있습니다.

기본설정을 마치셨다면 
{{2번에서 찾은 나의 ip = IPADDR=###ifconfig으로 찾은 ip값}}:80 또는 변경시 8080으로 접속합니다. 

그리고 또 설정을 진행하는데, 제가 했던 설정은 설정-DNS설정에서 업스트림DNS서버를 KT DNS를 추가해줫으며, 필터에서 온갖 필터를 죄다 설정했습니다. 

 

6.Nginx proxy manager를 설치합니다.
https://{{IPADDR=###ifconfig으로 찾은 ip값###}}:9443 으로 접속하고 
Stack에서 jc21 nginx proxy manager 설정을 합니다.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

 

7. 포트포워딩 설정을 합니다. 
nginx proxy manager를 위한 80,81,443 포트를 오픈하고
adguardhome을 위한 67,68,784,853,3000,4443,5353,8080 등을 오픈합니다.

8. nginx proxy manager에서 원하는 ssl 인증서를 발급 및 adguard에서 설정합니다.
저같은경우는 adguard.######.duckdns.org로 발급받았습니다.
그리고 winscp를 이용해서 {{IPADDR=###ifconfig으로 찾은 ip값###}}으로 접속해서 인증서 위치를 확인합니다. 
저같은 경우에는 
/data/compose/숫자/letsencrypt/archive/npm-숫자/fullchain1.pem과 privkey1.pem 이었습니다.
그리고 포타이너로 접속해서 
https://{{IPADDR=###ipconfig으로 찾은 ip값###}}:9443

container - adguardhome을 Stop 시킨 이후에
adguardhome 클릭, Duplicate/Edit으로 들어갑니다. 
하단에 Advanced container settings에서 
Volumes- map additional volume을 클릭하고 
container에는 아까 얻은 인증서 위치 /data/compose/숫자/letsencrypt/archive/npm-숫자
그리고 Bind를 클릭하여 host에도 /data/compose/숫자/letsencrypt/archive/npm-숫자 로 동일하게 세팅합니다. 

그리고 Deploy Container 이후에 adguardhome을 재시작시킵니다.
{{IPADDR=###ipconfig으로 찾은 ip값###}}:80 or 설정한 포트로 접속하여서
설정-암호화 설정에서 
암호화 활성화 및 서버이름(인증서 주소), https 포트(변경하셨다면 변경포트)
그리고 인증서 파일경로 설정을 합니다. 
인증서는 
/data/compose/숫자/letsencrypt/archive/npm-숫자/fullchain1.pem (fullchain.pem일수도 있음)
개인키는
/data/compose/숫자/letsencrypt/archive/npm-숫자/privkey1.pem (privkey.pem일수도 있음)

구성을 저장하고 마무리합니다. 

 

9. 핸드폰에서 adguardhome 설정 혹은 공유기에서 adguard home 설정을 완료합니다. 
아이폰은 모르므로 갤럭시만 적어보자면
Connections - More connection Settings - Private DNS에서 인증서 발급받으신 주소를 작성하시면 사용이 가능합니다. 

신고공유스크랩
1
profile image 1등
달소 2021.11.08. 12:13

상세한 후기 감사드립니다 ㅎㅎ

인증서까지 알차게 적용하셨군요. 서버포럼은 예외처리해주시는걸로...ㅎ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

등록된 글이 없습니다.