본문 바로가기

서버106

CentOS 7, fail2ban 설정 ssh, ftp, smtp 등 무작위로 로그인 시도를 할 경우 서비스를 보호하기 위하여 fail2ban 을 사용하여 접속을 차단합니다. #yum install fail2ban-firewalld fail2ban-systemd 설치 후 설정 파일을 생성합니다. #cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local jail.local 파일의 경우 jail.conf 설정의 내용 중 중복되는 부분을 overwrite 하는 역할을 합니다. 하지만 yum 등의 패키지 매니저를 통한 업데이트가 발생할 경우 conf 파일은 교체되니 복사하여 local 파일을 생성합니다. DEFAULT 에 기본 설정을 지정하고 적용하고자하는 서비스에 enabled = true 를 추가하면 됩니다... 2019. 6. 4.
CentOS 7 방화벽 설정 CentOS 7 의 경우 iptables 대신 netfilter 를 기본 방화벽으로 사용합니다. 이러한 netfilter 의 관리 프로그램이 firewalld 서비스 입니다. #systemctl start firewalld #systemctl enable firewalld 설치 후 기본적으로 존재하는 zone의 경우 다음과 같습니다. #firewall-cmd --get-zones block dmz drop external home internal public trusted work 여기서 zone은 AWS 의 보안그룹과 같은 역할을 한다고 볼 수 있습니다. 즉, 방화벽 설정 등을 묶어 놓은 후 상황에 따라 교체하며 설정을 일괄 적용할 수 있습니다. 현재 적용되고 있는 zone 은 아래와 같이 확인할 수 .. 2019. 6. 4.
간단한 보안 검사하기 #yum install lynis #lynis audit system #yum install rkhunter #rkhunter -c Lynis 를 통해 서버 설정과 관련한 확인하고, rkhunter 를 통해 백도어 등을 검사합니다. 현재 운영중인 서버에서 lynis 를 실행해보니 몇가지 권고사항들이 나오네요. 먼저, 메일서버에서 VRFY 명령어를 중지시켜 서버에 어떤 계정이 존재하는지 검색할 수 없게합니다. vi /etc/postfix/main.cf disable_vrfy_command = yes 재실행합니다. #service postfix restart 그리고 php 의 expose_php = Off 또한 리포팅에 나와 이를 반영하였습니다. 적용하면 웹서버의 헤더에서 PHP 관련한 정보를 노출하지 않습.. 2019. 5. 30.
CentOS7, 아마존 리눅스 Let's Encrypt 무료 인증서 사용하기 Let's Encrypt 를 사용하여 https 를 운영하기 위하여 아래 패키지를 설치합니다.(루트 권한) yum install certbot python2-certbot-nginx 웹서버로 nginx 를 사용할 경우이며, 아래의 명령어를 실행하여 https 를 사용할 도메인을 지정합니다. certbot --nginx -m 메일주소 -d 도메인주소 관련 설정 파일들이 생성됩니다. nginx 의 설정을 테스트한 후, 이상이 없으면 재실행합니다. nginx -t systemctl restart nginx 브라우저로 접속한 후, 정상적으로 동작하는지 확인합니다. 인증서는 3개월 마다 갱신되므로 cron 으로 짝수월 1일 마다 갱신되도록 합니다. crontab -e 0 0 1 */2 * /usr/bin/cert.. 2018. 6. 18.
macOS High Sierra 에서 PPTP VPN 설정하기 보안문제로 Sierra 버전부터 VPN 에서 PPTP 가 제거되었습니다. 아직은 VPN 관련 UI에서만 제거되었고 관련 실행파일들은 존재하는 것으로 보입니다. 우선, 서버 등의 설정은 과거 포스팅을 참고해주세요. 2013/04/15 - [프로그래밍/서버관리] - PPTP VPN 설정하기... (CentOS 5.9, Windows7) /etc/ppp 디렉토리 아래 peers 디렉토리를 생성한 후 설정 파일을 작성합니다. vi /etc/ppp/peers/vpnplugin PPTP.pppnoauth# logfile /tmp/ppp.logremoteaddress "서버주소"user "아이디"password "비밀번호"redialcount 1redialtimer 5idle 1800# mru 1368# mtu 13.. 2018. 6. 15.
EOS 윈도우즈에 설치하기 관리자 권한으로 PowerShell 을 실행한 후, 아래 명령어를 실행합니다.Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 재부팅한 후에 "Windows 설정 > 업데이트 및 보안 > 개발자용"으로 들어가 개발자 모드를 켭니다. Ubuntu 를 다운로드 합니다.https://www.microsoft.com/ko-kr/p/ubuntu/9nblggh4msv6 설치가 완료되고 앱을 실행하면, 나머지 설치 작업을 진행한 후에 생성할 계정 아이디와 비밀번호를 요구합니다. 관련하여 입력한 후, git 과 cmake 를 설치합니다. sudo apt install cmakesudo apt install git gi.. 2018. 6. 7.
EOS dawn 4.1 빌드하기 - MacOS 먼저 git 을 통하여 소스를 다운로드합니다. git clone https://github.com/EOSIO/eos --recursive 스크립트를 실행하여 자동으로 빌드 작업을 진행합니다. cd eos./eosio_build.sh 의존성 검사를 수행한 후, 설치가 필요한 패키지를 출력합니다. 1 을 입력하여 관련 패키지를 설치합니다. 이후, 다시빌드 작업을 수행합니다. 빌드 작업이 모두 끝나면, 아래와 같은 메시지가 출력됩니다. 빌드된 프로그램을 설치합니다. cd buildsudo make install 테스트를 위하여 mongo DB 를 실행합니다. /usr/local/bin/mongod -f /usr/local/etc/mongod.conf & 싱글 노드 테스트넷을 구동합니다. cd programs/.. 2018. 5. 22.
Lambda 를 사용하여 CodeCommit 을 Slack 과 연동하기 먼저, Slack 에서 Incoming WebHooks 를 설치합니다. 설치 후, 설정을 시작합니다. 연동할 채널을 선택한 후, Add Incoming WebHooks integration 버튼을 클릭합니다. 생성된 Webhook URL 을 기록해둡니다. 이후, 아마존 클라우드콘솔로 접속한 후 람다함수를 생성합니다. 아래 표기된 내용으로 변경합니다.(기존에 등록한 람다함수를 사용할 경우, 역할 부분을 "기존 역할 선택"으로 하고 해당 함수를 선택합니다.) 기존 함수 코드를 변경합니다. 일단, 여기저기 돌아다니는 소스들을 취합하여 작성해보았습니다. 'use strict'; const url = require('url');const https = require('https');const util = requ.. 2018. 5. 21.
CentOS7, nginx, php-fpm 환경에서 버전별 PHP 사용하기 1. root 권한으로 작업 먼저, remi 리포에서 php7.2 버전을 설치합니다.yum install php72 php72-php-common php72-php-fpmyum install php72-php-mysql php72-php-gd php72-php-mbstring php72-php-mcrypt php72-php-xml php72-magickwand php72-php-pecl-zip php72-pecl-imagick 기존 php 버전과 충돌이 되지않드록 디렉토리를 생성하고 퍼미션을 조정합니다.mkdir /var/run/php72-fpmmkdir /var/lib/php72mkdir /var/lib/php72/nginx-sessionmkdir /var/lib/php72/nginx-wsdlcache.. 2018. 5. 20.
AWS 서버 yum install, update 시 메모리 부족 해결하기 아마존 EC2 로 설치하였을 경우, 기본적으로 스왑 메모리를 사용하지 않습니다. 따라서 부족한 메모리로 인한 yum 설치 등에서 오류가 발생하는 경우가 있는데 이때 임시로 스왑 메모리를 사용하도록하여 관련 작업을 진행시킬 수 있습니다. dd if=/dev/zero of=/swapfile bs=1M count=512 chmod 600 /swapfile mkswap /swapfileswapon /swapfile 작업이 끝난 후, 스왑 파일을 다시 제거합니다. swapoff -a rm -f /swapfile vi /etc/fstab 에서 아래 내용을 추가합니다. /swapfile swap swap defaults 0 0 2018. 5. 11.
CodeCommit 서울 리전 사용하기 - 403 오류해결 CodeCommit 서울 리전이 개설됨에 따라 기존 설정을 활용하여 신규 리포지토리를 추가하려보니, 403 오류가 발생하더군요. 그동안 관련 설정중 변경된 것들이 있나 모두 찾아보았으나 답은 정말 단순한 곳에 있더군요. ㅠㅠ git bash 에서 다음과 같이 서울리전 서버에 접속하며 RSA 키를 저장합니다. ssh git-codecommit.ap-northeast-2.amazonaws.com 그리고 ssh 의 전역 설정을 불러온 후, notepad ~/.ssh/config Host 의 내용을 와일드 카드를 이용하여 아래와 같이 수정합니다. Host git-codecommit.*.amazonaws.com 2018. 4. 2.
CentOS7 nginx 에서 http/2 적용하기 nginx 를 컴파일하지 않고 패키지 설치하는 방식으로 http/2 를 적용하는 방법입니다. 먼저, 기존의 nginx 를 제거합니다. 그런 후, 아래의 명령어를 실행하여 nginx 를 설치합니다. yum install https://repo.aerisnetwork.com/stable/centos/7/x86_64/aeris-release-1.0-4.el7.noarch.rpmyum install nginx-moreyum --enablerepo=aeris-testing update nginx-more 설치 후, 기존 설정 경로 conf.d 에 있는 vhost 설정 파일들을 conf.d/vhosts 로 옮깁니다. 설정 파일 중 include 경로 및 http/2 관련 내용을 추가합니다. server { clie.. 2017. 8. 29.
ELB 에 HTTPS 설정하기... 먼저, Certificate Manager 로 들어가 인증서 가져오기를 선택합니다. 인증서 본문에는 crt 파일을, 인증서 프라이빗 키에는 key 파일의 내용을 복사하여 붙여넣습니다. 인증서 체인에는 체인 파일의 내용을 복사하여 붙여넣습니다. 만약, key 파일 생성시 비밀번호를 사용하였다면 이를 제거하고 사용합니다.(파일명은 상황에 맞게 고쳐씁니다.) openssl rsa -in ssl.key -out ssl-nopass.key 이제 ELB 설정에서 Listeners 를 추가합니다. 기존 EC2 에 설치되어 있는 웹서버(nginx)의 SSL 옵션을 사용하지 않을거라서 Instance Protocol 은 HTTP 로 설정합니다. 따라서 Health Check 도 기존 HTTP 설정을 그대로 사용합니다. .. 2017. 4. 13.
CodeCommit 사용하기 - PhpStorm IAM 에 user 등록하고, AWSCodeCommitFullAccess 를 정책으로 추가합니다. 그런후, PC 에서 생성한 SSH 공개키를 업로드한 후에 아래와 같이 사용합니다. 먼저, PhpStorm 에서 프로젝트의 VCS 를 Git 으로 지정합니다. 그리고 프로젝트 소스를 Git 에 추가하고 커밋합니다. 커밋시 삭제하고 싶은 파일이나 디렉토리가 있으면, 선택 해제하고 커밋 메시지를 입력합니다. 아마존의 CodeCommit 에서는 리포지토리를 생성합니다. 사용할 이름(저장소명)과 설명을 작성합니다. 리포지토리가 생성되면, 접근할 수 있는 SSH 경로를 복사합니다. 끝으로, PC 에서(프로젝트의 git 루트 경로) 아래와 같이 원격 저장소를 orgin 으로 추가합니다. git remote add ori.. 2016. 9. 23.
cron hourly 오류 메일이 계속 수신될 경우... 어느날 갑자기 아래와 같은 메일이 계속적으로 오기 시작하였습니다. /etc/cron.hourly/0yum-hourly.cron: Not using downloaded repomd.xml because it is older than what we have: Current : Tue Aug 9 13:58:01 2016 Downloaded: Tue Aug 9 02:17:58 2016 검색해보니 yum 캐시 문제인 듯 하여 이를 정리하였습니다. 참고로 yum cache 의 용량 확인은... du -sh /var/cache/yum 전체 캐시의 삭제는 아래의 명령어를 사용하였습니다. yum clean all 효과가 있는지는 좀 더 살펴봐야겠네요. ^^ 2016. 8. 10.