Apache SSL 등급 확인

Linux, WWW
제가 운영하는 웹서버의 SSL 등급기 갑자기 궁금해져서 한번 테스트를 해보았습니다. 테스트에 사용된 사이트는 ssllabs.com 에 기능을 이용하였습니다. 아래에 링크를 첨부해 놓았습니다. https://www.ssllabs.com/ssltest/analyze.htm 결과는 좋게 A 등급이 나왔습니다. 서버에 사용하는 모든 버전이 업데이트 되면서 결과가 좋게 나온다고 생각은 하였지만 생각하는 부분과 결과를 눈으로 직접 보는것은 다른듯 합니다. 결과화면에 대한 캡쳐본 가끔식은 트렌드에 따라서 움직여야 하는 일이 있습니다. 특히 보안에 관련된 사항은 좀 더 많은 부분을 신경쓰고 현재 진형으로 가는 부분을 잘 적용하는것이 좋을듯 합니다. 위 결과 화면 아래에 더 많은 정보가 있지만 캡쳐를 할 이유가 없어서 위에 가장 중요한 화면만 캡쳐만 한것입니다.
Read More

리눅스 디스크 사용량 확인

Linux
리눅스에서 디스크 사용량에 대해서 확인하는 명령어 입니다. 간단하게 'df'로 해서 처리를 할 수 있지만 다른 부분에 대해서도 확인 가능한 명령어입니다. df df -P 전체용량 # KB단위 df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum " KB" }' # GB 단위 df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum/1024/1024 " GB" }' 전체 사용량 # KB 단위 df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum " KB" }' # GB 단위 df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum/1024/1024 " GB" }' 전체 남은 용량 # KB단위 df -P | grep -v ^Filesystem | awk '{sum += $4} END { print sum "…
Read More

서버 운영체제 버전업!!!

Linux
제가 사용하는 서버의 OS의 운영체제가 버전이 달라졌습니다. 그래서 기존에 사용하던 내용을 새로운 서버에 모두 이전한다고 3~4시간을 투자하였습니다. 물론 계획을 잡기 위해서까지 시간을 한다면은 꽤 많은 시간이 소비되었지만요.... 이전은 계획대로 순조롭게 진행이 되었고, 서버 자체의 접속을 차단한경우는 약 2시간 정도 걸렸는데, 정작 중요한 블로그에 인증서 갱신에 걸려서 강제적으로 1시간을 기다려야 하는 상황이 다가와 버렸습니다. 이러한 문제로 인해서 SSL인증서가 적용되지 않도록 소스 자체를 수정하도록 하고 있습니다. 그래도 블로그 접속이 정상적으로 되어야 한다는 생각이 나서 말이죠 일단 점심 시간이 다가와서 점심을 먹고오면은 1시간이 지나니 다시 시도해 보고 글을 남기도록 하겠습니다. ※ 추가내용 다행이 오래 기다리지 않고 SSL 인증서를 적용하였습니다. 소스 및 DB상의 SSL 인증서를 제거한 부분을 다시 살린다고 지금까지 한 과정을 꺼꾸로 진행중에 있습니다. OS가 바뀐것뿐인데 서버가 상당히 쾌적해졌습니다. 물론 새롭게 설치한 서버에 별 다른 작업을 하지 않아서 쾌적한것도 있을것이라고 생각이 들지만 blog를…
Read More

Ubuntu 서버에서 Gitlab 제거

Linux
정말 간단한 내용입니다. Ubuntu 서버에 설치를 하고 나서 지우려고 보니 명령어를 모아 놓은곳이 없어서 일단 정리해를 해 놓습니다. sudo gitlab-ctl cleanse sudo gitlab-ctl uninstall sudo apt remove gitlab-ee sudo apt purge gitlab-ee 별 다른 내용은 없지만 필요하신분이 저처럼 있을 거라고 생각해서 짧게나마 정리를 해 놓습니다.
Read More

SCP 복사

Linux
SCP 복사 기능을 정말 가끔 사용할일이 있는데, 매번 깜빡하고 다시 검색을 해보는 일이 있어서 이렇게 정리를 합니다. scp -i "인증파일경로" -r "복사할파일" ubuntu@ServerIP:"대상경로" 별 다른 내용은 없으며, 해당 기능을 통해서 중간에 내컴퓨터를 경우하지 않아도 이제 복사를 할 수 있다는 생각에 정리를 해 놓는 것입니다.
Read More

우분트 자동시작서비스 등록 실행하기

Linux
해당 기록은 제 개인적으로 기록을 해 놓은 부분입니다. 누군가에게 도움이 될수도 있지만 아마 전혀 쓸모가 없을수도 있습니다. 그렇기에 개인 기록이라는 점을 먼저 밝힙니다. crontab으로 실행하는것에 한개가 있습니다. 재부팅 되면서 실행을 해도 되고, 일정 시간을 체크해서 해도 되지만, 항상 가동해야 되는 부분이 있어서 만들게 된 부분입니다. cp /home/ubuntu/service/serviceCrawer.service /etc/systemd/systemd --------------- [Unit] Description=ServiceCrawer-1 After=network.target [Service] ExecStart=/usr/bin/php /home/ubuntu/service/service.file start ExecStop=/bin/sh /home/ubuntu/service/stop.sh Restart=on-failure [Install] WantedBy=multi-user.target ------------------ sudo chmod 644 serviceCrawer.service sudo systemctl daemon-reload sudo systemctl enable serviceCrawer.service sudo systemctl start serviceCrawer.service sudo systemctl disable serviceCrawer.service 일단 네트워크가 문제가 생기면은 재시작을 할 것이고 아니면은 항시 기동이 되도록 프로그램을 만들었습니다. 통신을 하는 부분이라서 네트워크가 죽으면 살아있어도 쓸모가 없습니다. 항상 정보를 수집하는 부분에서 일정시간마다 아닌, 실시간으로 통신을 해서 정보를 획득하기에 끊기지 않는다는것이 제일 관점있고, 그 이후 데이터를 잘 기록해야되는 부분입니다. 위에 코드는 그냥 서비스에 등록하는 부분만 있습니다.…
Read More

Port번호 사용 영역

Linux, NAS, Windows
0 ~ 1023 : well-known port번호 영역입니다. 이 영역의 port번호는 UNIX/LINUX에서 root 권한으로만 port를 열 수 있습니다. 예약영역이라고 보면 됩니다. 1024 ~ 49151번: 등록된 포트 (registered port) 이 영역은 주로 서버 소켓으로 사용하는 영역입니다. 49152 ~ 65535번 : 동적 포트(dynamic port) 이 영역은 자동으로 할당되는 영역입니다.
Read More

Dnsmasq

Linux
#apt install resolvconf이것을 설정하면은 좀 더 세팅에 편해집니다. #vi /etc/resolvconf/resolv.conf.d/tail # IPv4 nameserversnameserver 1.1.1.1nameserver 8.8.8.8nameserver 1.0.0.1nameserver 8.8.4.4 # IPv6 nameserverosnameserver 2606:4700:4700::1111nameserver 2001:4860:4860::8888nameserver 2606:4700:4700::1001nameserver 2001:4860:4860::8844 #sudo service resolvconf restart #apt-get install dnsmasq # cat /etc/hosts # cat /etc/resolv.confnameserver 172.31.0.2search ap-northeast-2.compute.internal # Google IPv4 nameserversnameserver 8.8.8.8nameserver 8.8.4.4 # Google IPv6 nameserversnameserver 2001:4860:4860::8888nameserver 2001:4860:4860::8844
Read More

홈페이지 이전에 필요한 명령어

Linux
홈페이지 이전을 해줄 경우가 생겨서 한번 기록해 놓습니다. 모래사장에서 바늘 찾을 정도로 사용을 하지만, 막상 필요할때 기억이 나지 않아서 간단히 기록을 해놓습니다. # upload 디렉토리 제외해서 압축하기 tar -zcvf public_html.tar.gz ./public_html --exclude="./public_html/uploads" # upload 디렉토리 아래의 디렉토리 구조만 압축하기 tar -zcvf public_html-upload.tar.gz --exclude="*.* ./public_html/upload" # 압축풀기 (2개가 동일 위치에 존재해야함) tar -zxvf public_html.tar.gz tar -zxvf public_html-upload.tar.gz # 소유주 변경하기 chown -R [group].[user] ./public_html --from=[group].[owner] find ./public_html -user "[user]" | xargs chown "nobody"."nobody"
Read More

HTTPS를 HTTP로 리디렉션하는 방법

Linux
SSL 보안서버 인증서가 적용된 상태에서 HTTPS를 HTTP로 리디렉션하고 싶은 경우, 다음 코드를 .htaccess 파일에 추가하면 됩니다. RewriteCond %{HTTPS} on RewriteEngine On RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 위의 코드가 잘 작동하지 않으면, 다음 코드를 시도해볼 수 있습니다. Options +FollowSymLinks RewriteEngine On RewriteCond %{ENV:HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] .conf 파일을 사용하는 경우: ServerName domain.com RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} SSLEngine on SSLCertificateFile /etc/apache2/ssl/domain.crt SSLCertificateKeyFile /etc/apache2/ssl/domain.key SSLCACertificateFile /etc/apache2/ssl/domain.crt Siteground에서는 다음과 같은 코드를 제안하네요. (출처: Redirect from HTTPS to HTTP) Redirect HTTPS to HTTP RewriteCond %{HTTP:X-Forwarded-Proto} =https RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 참고로 위의 코드는 모두 유효한 SSL 인증서가 있는 경우에만 작동합니다. 유효한 SSL 인증서가 없는 경우 https://…로 접속하면 보안인증서 오류가 표시되고 http://…로 리디렉션되지 않습니다.
Read More

ssh 접속 이력, 로그인 시도, 해킹 시도 확인

Linux
ssh 로그인 시도(해킹 시도) 확인하는 스크립트 입니다. 이 명령어는 로그인을 시도한 IP 목록만 결과 값으로 출력됩니다. ls /var/log/secure | xargs grep -E "[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+" -o | sort | uniq 이 명령어는 어떤 아이디로 언제 어떤 IP로 로그인을 시도한 결과까지 모두 보여줍니다. last -f /var/log/btmp | more
Read More
[Ubuntu] SSL 인증서 설치

[Ubuntu] SSL 인증서 설치

Linux
 SSL 발급 및 적용 방법 인증서 발급 프로그램을 서버에 설치해야한다. Let’s Encrypt 는 Ubuntu 16.04 LTS 에서 기본패키지로 추가되었다. 따라서 쉽게 설치할 수 있다. 반면 Ubuntu 14.04 LTS 에서는 기본패키지가 아니기 때문에 몇 줄 더 입력해야 한다. 발급, 설치, 적용 방법은 다음과 같다. 모든 단계는 Linux root 계정으로 진행한다. [code shell] # apt-get install letsencrypt # letsencrypt certonly --webroot --webroot-path=/home/myuser3/www -d myuser3.com -d www.myuser3.com [/code] * 명령어 설명 -d 는 도메인명을 지정하면 된다. 최대 100개의 도메인 이름을 지정할 수 있다. (한 인증서가 서로다른 100개의 도메인 인증을 할 수 있음) 일반적으로는 기본도메인과 www 도메인 두개를 지정한다. -webroot 는 웹인증을 받을 것이라는 것이다. 외부 인증프로그램이 -d 에 지정된 도메인 사이트에 접속한다. -webroot-path 는 웹루트의 경로이다. 보통 index 페이지가 위치하는 경로이다. 인증 프로그램이 이 경로에 임시 랜덤 파일을 생성하고, 외부 인증프로그램이 이 파일을…
Read More

[Ubuntu] APM 설치

Linux
]# sudo apt-get install php ]# sudo apt-get install apache2 ]# sudo apt-get install mariadb-server ]# sudo apt-get install libapache2-mod-php7.0 ]# sudo mysql > SET PASSWORD FOR root@localhost = PASSWORD('원하는 패스워드 입력'); > quit; ]# sudo /usr/bin/mysql_secure_installation /* 이미 암호는 앞에서 지정했기 때문에 첫 번째 패스워드를 변경하겠냐는 질문에는 n을 나머지는 (이 설정에 대해서 잘 모르는 분이라면) 엔터키를 끝날 때까지 눌러 주세요. */ ]# sudo mysql > USE mysql; > UPDATE user SET plugin='' WHERE user='root'; > FLUSH privileges; > quit; ]# sudo apt-get install php-mysql INSERT INTO mysql.user (host,user,password) VALUES ('%','root',password('CAFE8848')); GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES; ]# sudo vi /etc/php/7.0/apache2/php.ini ]# sudo vi /etc/php/7.0/cli/php.ini /*** default_charset="UTF-8" data.timezone=”Asia/Seoul” mbstring.language = Korean mbstring.internal_encoding = UTF-8 mbstring.http_input = UTF-8 mbstring.http_output = pass mbstring.encoding_translation = On mbstring.detected_order = UTF-8 mbstring.substitute_charcter…
Read More