카테고리 Archives: linux

Let’s encrypt 사용 방법 변경

 

신규 서버를 세팅 하고 SSL 추가 했을때 당황스럽게도 위와 같은 메세지를 뿌리며 certbot-auto 가 작동하지 않았다.

 

certbot-auto 의 경우 실행 시킬때마다 자동 업데이트를 하는데 버전이 1.11 버전으로 되어 있을경우 발생하는 메세지로 확인이 된다.

 

링크를 따라 갈 경우 snap을 이용해서 설치해서 사용하라고 안내 되어 있다.

snap 은 yum 혹은 apt-get 과 같은 패키지 관리 툴 이다.

 

CentOS 7.7~8.X 의 경우 epel-release 가 설치 되어 있다면 yum 으로 snap을 설치할 수 있다. (6번 라인은 양반김 처럼 두번 실행해야 할 수 있다.)

 

이후에 snap 을 이용하여 certbot 을 설치한다.

주의: 기존에 yum 이나 apt-get 혹은 dnf 으로 설치된 certbot은 삭제 하고 진행 해야 한다. (일부 버전에서 심볼링 링크가 안걸리는듯… 하여 8번 라인의 명령어를 추가 실행해야 할 수 있다.)

 

/usr/bin 안으로 링크를 생성하기 때문에 ssl 발급/삭제을 위해서는 아래 명령어를 사용하면 되겠다.

 

장점이 하나 있는데 snapd 에서 sequence 기능으로 설치된 패키지를 자동으로 최신 업데이트를 하는데

발급된 인증서의 renew 역시 자동으로 처리가 된다. (/var/lib/snapd/sequence/certbot.json)

 

PS1 . 기존에 git 에서 clone 을 해서 사용한 경우 삭제까지는 필요 없는듯 하고, renew의 경우 메세지는 나오지만 갱신 하는데에는 문제가 없다.

 

PS2. snap 설치가 되지 않는 리눅스의 경우 certbot-auto 구버전 (1.9.0.dev0) 의 실행파일만 덧씌운뒤 renew 실행하면 당장 급한불을 끌 수 있음.

 

PS3. 테스트 해보지 않았으나 acme api를 이용하는 bash, dash, sh 비공식(호환) 스크립트.. https://github.com/acmesh-official/acme.sh

CentOS 7 에서 systemd 의 쓸모 없는 로그를 필터링

시스템 로그 분석을 매주 진행하는데 systemd 에서 아래와 같은 메세지가 많이 표현됨.

 

로그 분석할때 쓸모가 없기 때문에 rsyslog 에서 예외 적용 한다.

 

출처 : https://access.redhat.com/solutions/1564823

aws ubuntu 18.04 자동 업데이트 끄기

aws 에서 서버운영을 하는데

가장 작은 디스크 크기 8GB 으로 생성하고 1년정도 운영을 했을때 디스크가 초반에 4.XX GB만 사용이 되다가 점점 사용량이 증가 되었음 ‘ㅅ’a

 

ubuntu 의 경우 자동 업데이트로 꾸준히 커널을 업데이트 하기 때문에 발생하는 문제이고

특정한 서비스 포트만 열고 서비스 하는 서버이기 때문에 업데이트가 필요 없다고 판단되어 자동업데이트를 끄는 것으로…

 

이후 apt-get 을 이용하여 불필요한 패키지를 삭제한다 ‘ㅅ’a

 

linux-headers가 업데이트가 된 경우 재 부팅 이후에 autoremove를 해야할 수 있다.

혹은 너무 쌓여서 broken 이 된경우 /usr/src 에서  사용되고 있는 headers 를 제외하고 삭제를 해야 할 수 있겠다 ‘ㅅ’a

nginx 에서 특정 국가 와 IP 허용 하기 (centos7)

nginx 에서 IP를 제한 하는 방법은 아래와 같다.

허용된 IP 외에는 403 에러가 발생한다.


아래는 허용된 IP 및 특정한 국가 코드(KR,SG) 와 IP (111.111.111.111)를 허용 하는 방법이다.

위에서 map $geoip_country_code 를 활용하기 때문에 아래와 같이

nginx 에서 GeoIP.dat 를 불러와야 한다.

GeoIP.dat 는 아래와 같이 설치를 해야 한다.


GeoIP data 파일은 주기적인 업데이트를 해야 한다. (매월 초 업데이트 된다.)

cron 에서는 매월 7일 오전 6시에 실행 하도록 처리하였다.

 

Docker for windows – centos8(php, httpd) 설치

Centos 8.1.1911 이 배포 되었다.

당장 OS 를 올릴 필요는 없지만 새로운 OS 가 추후에는 사용이 될것이기 때문에

Docker 환경에서 연습이 필요로 하다고 판단되어 Windows for Docker 를 이용하여 컨테이너를 생성하여 설치 테스트 및 작동 테스트를 해보았다 ‘ㅅ’a

사전에 c 드라이브를 분배 하여 w 드라이브에 workspace 를 생성 하였으며 컨테이너 웹 디렉토리와 연결한다. (windows 환경에서 php 개발 편의성)

 

물론 Docker 부분만 제외 한다면 Centos 8 에서 같은 방법으로 설치가 가능하다.

 

docker 에 centos 8 공식 이미지를 통해 컨테이너 생성을 한다.

 

Remi’s 레포지토리 추가 및 php 7.3 설치 (httpd 는 의존성에 의해 OS 기본 제공 되는 2.4.37이 설치 된다.)

 

apache 설정 (웹 디렉토리는 /var/www/html 으로 진행 하였음.)

 

php-fpm 설정

 

php.ini 설정 (파일 업로드 100M 와 숏코드만 사용 만 수정)

 

apache 및 php-fpm 시작 및 활성화

 

docker hub: https://hub.docker.com/r/san0123/centos8-apache24-php73

도커 이미지(latest)의 경우 php-fpm 이 아닌 libphp7.so 으로 httpd-profork 방식으로 설정 되어 있다. (ssl, http2 등 사용 불가)

php 7.4 : https://hub.docker.com/r/san0123/centos8-apache24-php74


ps. MariaDB 10.4 설치

mariadb 는 centos 에서 10.3.17 이 제공되지만 업데이트는 잘되지 않기 때문에 mariadb 에서 제공 되는 repo를 추가하고 설치한다.

 

mariadb 시작 및 활성화