Firebase region location
파이어베이스 위치 설명
Last updated 2020-07-06 UTC
파이어베이스 위치 설명
Last updated 2020-07-06 UTC
원문 Github https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide
시놀로지 나스의 SSH기능을 활성화 해야합니다.
SSH는 보안 위험이 많으므로 작업이 끝난후 반드시 비활성화 해야합니다.
SSH활성화에대한 내용은 다루지 않겠습니다.
우선 ssh 터미널에 접속하여 루트 권한을 획득합니다.
$ sudo su
그리고 다음 명령어를 입력하여 acme.sh 의 마스터파일을 다운받습니다.
wget https://github.com/Neilpang/acme.sh/archive/master.tar.gz
Code language: JavaScript (javascript)
다운받은 파일의 압축을 풀어줍니다.
tar xvf master.tar.gz
Code language: CSS (css)
압축푼 폴더에서 다음명령어로 acme.sh를 설치합니다.
./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "cloudflare이메일"
Code language: JavaScript (javascript)
설치할때 빨간색으로 나오는 경고문은 무시하셔도 됩니다. 마지막에 OK문구가 나오면 설치는 완료되겁니다.
다음 작업에 자신의 클라우드플레어 글로벌키가 필요합니다.
https://dash.cloudflare.com/profile/api-tokens 에서 확인 가능합니다.
스크립트가 설치된 폴더로 이동합니다.
cd /usr/local/share/acme.sh
터미널에 환경변수를 입력해주시면 됩니다.
export CF_Key="글로벌API키"
export CF_Email="이메일"
export CERT_DNS="dns_cf"
Code language: JavaScript (javascript)
그후에 인증서를 생성하는 명령어를 입력합니다.
./acme.sh --issue -d '*.도메인' -d '도메인' --dns "$CERT_DNS" --cert-file /usr/syno/etc/certificate/system/default/cert.pem --key-file /usr/syno/etc/certificate/system/default/privkey.pem --fullchain-file /usr/syno/etc/certificate/system/default/fullchain.pem --reloadcmd "/usr/syno/sbin/synoservicectl --reload nginx" --dnssleep 20 --force
Code language: JavaScript (javascript)
정상적으로 실행되면 별다른 오류없이 인증서가 발급됩니다.
오류가 있으면 코드를 다시한번 확인해보고 재시도 해보시기 바랍니다.
이제 시놀로지 기본 인증서가 새로 발급한 인증서로 교체되었습니다.
다음과정은 위의 과정은 제대로 했지만 기본 인증서로 교체되지 않았을때 따라해주시면 됩니다.
만약 인증서가 제대로 교체되었으면 이번 과정은 넘어가셔도 됩니다.
터미널에 아래와같이 순서대로 입력합니다.
export CERT_FOLDER="$(find /usr/syno/etc/certificate/_archive/ -maxdepth 1 -mindepth 1 -type d)"
export CERT_DNS="dns_cf"
Code language: JavaScript (javascript)
./acme.sh --issue -d '*.도메인' -d '도메인' --dns "$CERT_DNS" --cert-file "$CERT_FOLDER/cert.pem" --key-file "$CERT_FOLDER/privkey.pem" --fullchain-file "$CERT_FOLDER/fullchain.pem" --capath "$CERT_FOLDER/chain.pem" --reloadcmd "/usr/syno/sbin/synoservicectl --reload nginx" --dnssleep 20 --force
Code language: JavaScript (javascript)
마찬가지로 오류없이 정상적으로 출력되면 끝입니다.
이번 과정을 수행했음에도 인증서가 교체되지 않았으면 브라우저 캐시를 초기화 후 dsm에 재접속 해보시고 그래도 안되면 처음부터 차근차근 다시 따라해보시기 바랍니다.
이제 인증서 발급 과정은 모두 끝났습니다.
이제 인증서가 매달 자동으로 갱신되게 스케줄러를 등록해보도록 하겠습니다.
작업스케줄러에서 생성 -> 예약된작업 -> 사용자 정의 스크립트로 들어갑니다.
일반에는 작업이름을 적어주면 됩니다. 영어로 원하는 이름 아무거나 작성.
다음과 같이 매달 실행되게 스케줄을 설정합니다.
원하는 날짜로 스케줄을 바꿔도 상관없으나 인증서가 제때 갱신이 되도록 해주시기 바랍니다.
아래 코드를 스크립트란에 복사해주시면 됩니다.
CERTDIR="system/default"
#CERTDIR="_archive/AsDFgH"
CERTROOTDIR="/usr/syno/etc/certificate"
PACKAGECERTROOTDIR="/usr/local/etc/certificate"
FULLCERTDIR="$CERTROOTDIR/$CERTDIR"
/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/
PEMFILES=$(find $CERTROOTDIR -name cert.pem)
if [ ! -z "$PEMFILES" ]; then
for DIR in $PEMFILES; do
# replace the certificates, but never the ones in the _archive folders as those are all the unique
# certificates on the system.
if [[ $DIR != *"/_archive/"* ]]; then
rsync -avh "$FULLCERTDIR/" "$(dirname $DIR)/"
fi
done
fi
/usr/syno/sbin/synoservicectl --reload nginx
PEMFILES=$(find $PACKAGECERTROOTDIR -name cert.pem)
if [ ! -z "$PEMFILES" ]; then
for DIR in $PEMFILES; do
#active directory has it's own certificate so we do not update that package
if [[ $DIR != *"/ActiveDirectoryServer/"* ]]; then
rsync -avh "$FULLCERTDIR/" "$(dirname $DIR)/"
/usr/syno/bin/synopkg restart $(echo $DIR | awk -F/ '{print $6}')
fi
done
fi
Code language: PHP (php)
스케줄러 등록 후 활성화에 체크가 되어있는지 확인바라며 활성화가 되어있어야 갱신기능이 작동합니다.
참고: 우분투 ufw help 가이드
UFW 기본 설정법에 대하여 알아보자.
UFW는 기본 비활성화 상태이기에 이를 활성화 한다.
sudo ufw enable
UFW 비활성화
sudo ufw disable
sudo ufw status verbose
UFW에 설정되어 있는 기본 룰은 아래와 같다.
기본 룰 확인
sudo ufw show raw
기본 정책 차단
sudo ufw default deny
Code language: JavaScript (javascript)
기본 정책 허용
sudo ufw default allow
Code language: JavaScript (javascript)
sudo ufw allow <port>/<optional: protocal>
Code language: HTML, XML (xml)
예) SSH 포트 22번 허용(tcp/udp 22번 포트를 모두 허용)
sudo ufw allow 22
tcp 22번 포트만을 허용 – SSH는 tcp 22번 포트만 허용하는게 정답
sudo ufw allow 22/tcp
udp 22번 포트만을 허용
sudo ufw allow 22/udp
sudo ufw deny <port>/<optional: protocol>
Code language: HTML, XML (xml)
예) ssh 포트 22번 거부(tcp/udp 22번 포트를 모두 거부)
sudo ufw deny 22
tcp 22번 포트만을 거부
sudo ufw deny 22/tcp
udp 22번 포트만을 거부
sudo ufw deny 22/udp
ufw deny 22/tcp 설정이 되어있다고 가정
sudo ufw delete deny 22/tcp
Code language: JavaScript (javascript)
/etc/services에 지정되어 있는 서비스명과 포트를 이용해 UFW를 설정할 수 있다.
서비스명 보기
less /etc/services
서비스명으로 허용
sudo ufw allow <service name>
Code language: HTML, XML (xml)
예) SSH 서비스
sudo ufw allow ssh
sudo ufw deny ssh
sudo ufw logging on
sudo ufw logging off
문법을 확장하여 목적지 주소와 포트, 프로토콜등을 지정할 수 있다.
특정한 IP주소 허용
sudo ufw allow from <ip address>
Code language: HTML, XML (xml)
예) 192.168.0.100 주소 허용(IP 주소192.168.0.100 에서만 접속이 가능해진다)
sudo ufw allow from 192.168.0.100
Code language: CSS (css)
네트워크 단위로 지정하여 같은 네트워크 상에 있는 컴퓨터들은 접속가능해진다.
sudo ufw allow from 192.168.0.0/24
Code language: JavaScript (javascript)
특정 IP 주소와 일치하는 포트 허용
sudo ufw allow from <ip address> to <protocol> port <port number>
Code language: HTML, XML (xml)
예) 192.168.0.100 주소와 포트, 프로토콜 허용
sudo ufw allow from 192.168.0.100 to any port 22
Code language: CSS (css)
특정 IP 주소와 프로토콜, 포트 허용
$ sudo ufw allow from <ip address> to <protocol> port <port number> proto <protocol name>
Code language: HTML, XML (xml)
예) 192.168.0.100 주소와 tcp 프로토콜 22번 포트 허용
sudo ufw allow from 192.168.0.100 to any port 22 proto tcp
Code language: CSS (css)
위의 예제들에서 allow 대신 deny를 입력하면 거부가 된다.
UFW 기본설정은 ping 요청을 허용하도록 되어있다.
sudo vi /etc/ufw/before.rules
# ok icmp codes
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
Code language: PHP (php)
위 코드들의 ACCEPT 부분을 모두 DROP으로 변경하거나 삭제하면 ping 요청을 거부하게 된다.
UFW 룰들에 숫자를 붙여서 볼 수 있다. 이를 이용해 룰에 수정이나 삭제, 추가를 할 수 있다.
sudo ufw status numbered
sudo ufw delete 1
sudo ufw insert 1 allow from 192.168.0.100
Code language: CSS (css)
sudo ufw enable
sudo ufw allow from 192.168.0.3 to any port 22 proto tcp
sudo ufw allow 123/udp
sudo ufw allow 80/tcp
sudo ufw allow 3306/tcp
sudo ufw status
Code language: JavaScript (javascript)
sudo ufw allow from 192.168.0.100 to any port 22 proto tcp
Code language: CSS (css)
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6 0 # 사용중 1 # 사용안함
$ sudo vi /etc/sysctl.conf 파일 내 아래 내용 붙여넣은 후 저장 # IPv6 Disable net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
$ sudo sysctl -p $ sudo reboot
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6 1 # 활성화 상태 확인에서 사용안함 0 # 활성화 상태 확인에서 사용중
윈도우를 전원종료가 아닌 슬립모드로 사용하시는 분들중에 가끔 자동으로 슬립모드가 해제되는 일이 있다.
자동으로 슬립모드가 해제되는 것을 방지하는 방법
Run Power Troubleshooter:
Reset Power Settings to default:
Disable Wake Timers:
Disable Connected Standby:
Note:
레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다.
따라서 이 단계를 신중하게 따르세요. 추가 보호를 위해 레지스트리를 수정하기 전에 백업하세요. 그런 다음 문제가 발생하면 레지스트리를 복원 할 수 있습니다. 레지스트리 키를 백업 및 복원하려면 이 링크 를 참조하세요.
If the issue still persists, check for any tasks related to StartMenuExperienceHost.exe in Task Scheduler, and get back to us.