본문 바로가기

프로그래밍209

Mac OS 에서 mcrypt 설치하기 brew 를 사용하여 php 를 버전별로 설치하여 사용하고 있다면, extention 모듈을 pecl 을 이용하여 설치할 수 있습니다. mcrypt.so 를 연동하고 싶다면 다음과 같이 실행합니다. brew install mcrypt pecl install mcrypt 이 과정에서 아래의 이미지처럼 prefix 를 물어오는 경우, 해당 소스가 위치한 경로를 입력하여야합니다. 가령, /opt/homebrew/Cellar/mcrypt/2.6.8 과 같이 지정합니다. 2021. 2. 12.
CentOS 7 특정 횟수 이상 TCP 접속 차단하기 먼저, iptables 로그 파일을 생성하도록 rsyslog.conf 의 RULE 을 추가합니다. vi /etc/rsyslog.conf kern.* /var/log/iptables.log 80 포트와 443 포트에 10초 이내 20회 접근이 발생하는 경우에 대하여 로그 및 차단 처리하도록 RULE 을 추가합니다. IP 의 경우 보안의 이유로 일부 x 표기하였습니다. iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 80 -m recent --set --name flood_list iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 80 -m recent --update --seconds 10 .. 2020. 10. 4.
Laravel 환경설정 - .env, nginx 1. 로컬 개발 환경 .gitignore 에 아래 파일을 추가합니다. .env.local .valet-env.php 라라벨 프로젝트의 루트 디렉토리로 이동한 후, valet link 명령어로 로컬 도메인(http://myproj.test)을 생성합니다. valet link myproj 마찬가지로 루트 디렉토리에서 .valet-env.php 파일을 생성한 후, APP_ENV 전역 변수를 설정합니다. 2020. 3. 18.
파워셀을 통해 오피스365 exchange online 접속하기 파워쉘을 관리자 권한으로 실행한 후, 실행 정책을 변경합니다. Set-ExecutionPolicy RemoteSigned Exchange Online 에 접속합니다. 이를 위해 먼저, 아이디와 비밀번호를 설정합니다. $Creds = Get-Credential 접속합니다. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Creds -Authentication Basic -AllowRedirection 세션을 연결합니다. Import-PSSession $Session -DisableNameChecking 연결.. 2020. 3. 13.
zsh 사용하기 1. CentOS 7 yum install zsh 2. CentOS 8 dnf install zsh 3. MacOS X brew install zsh 기본 쉘을 zsh 로 변경합니다. chsh -s /bin/zsh 이후, 계정마다 oh my zsh 를 설치합니다. curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 계정 루트 디렉토리에서 .zshrc 파일을 수정합니다. git 을 사용하다면, 테마로 agnoster 를 사용합니다. vi ./zshrc ZSH_THEME="agnoster" 그 외 유용한 플러그인으로 zsh-syntax-highlighting 을 설치합니다. yum install zsh-synta.. 2020. 3. 10.
Laravel Nova 설치하기 Nova 는 라라벨 관리자페이지 라이브러리로 유료입니다. 해당 라이센스를 구매한 후, Releases 페이지에서 파일을 다운로드합니다. 압축을 푼 후, 디렉토리명을 nova 로 변경합니다. 사용할 라라벨 프로젝트의 루트 디렉토리에 해당 디렉토리(repos/nova)를 추가합니다. vi composer.json "require": { ..... "laravel/nova": "*" } ...... "repositories": [ { "type": "path", "url": "./nova" ] 아래 명령어를 실행합니다. composer update php artisan nova:install 데이터베이스 마이그레이션을 실행합니다. php artisan migrate 접속 URL 에 /nova 를 추가하여 접속.. 2020. 3. 5.
AWS EB CLI 사용하기 - Mac OSX 먼저, CLI 를 설치합니다. brew install awsebcli eb --version 이미, Elastic Beanstalk, CodePipeline, github 가 연동된 경우라면 등록한 액세스 키 등을 이용하여 초기화 및 연결할 수 있습니다. 먼저, 프로젝트의 루트 디렉토리에서 아래 명령어를 실행합니다. eb init 리전을 선택하고 난 후, 기 설치된 EB 어플리케이션이 있으면 선택하거나 신규로 생성할 수 있습니다. 콘솔에서는 github 와 연동하는 방법이 보이지않는 관계로, github 와 연동할 경우에는 management console 을 사용합니다. 만약, 여러 계정의 AWS 를 사용하고 있다면 각각의 설정을 사용하기 위하여 아래 파일의 내용을 수정합니다. vi ~/.aws/con.. 2020. 3. 5.
AWS CLI 사용하기 - Mac OSX 먼저, IAM 서비스로 이동한 후, 사용자 추가를 클릭합니다. 사용자 이름은 로그인 시 사용되는 아이디라고 보면 되는데, .cli 를 붙여 용도를 구분할 수 있도록 하는 것도 좋습니다. 콘솔을 통해서만 접근할 용도로 생성할 때는 액세스 유형에서 "프로그래밍 방식 액세스"만을 선택합니다. 권한 설정의 경우, "기존 정책 직접 연결"에서 원하는 정책 필터를 추가하면 됩니다. 이후, 태그 등을 입력한 후 액세스 키 ID 와 비밀 액세스 키를 잘 복사해둡니다. brew install awscli aws --version 접속할 사용자 정보를 설정하기 위해서는 아래 명령어를 실행합니다. aws configure 2020. 3. 5.
CentOS 7 SELinux 사용 SELinux 사용에 필요한 패키지들을 설치합니다. yum install policycoreutils-python yum install setools setools-console setroubleshoot* yum install policycoreutils-devel 메뉴얼 페이지를 생성합니다. sepolicy manpage -a -p /usr/share/man/man8; mandb 현재 SELinux 의 상태를 확인하려면 다음 명령어를 실행합니다. sestatus SELinux 의 모드는 Enforcing, Permissive, Disabled 3가지가 있으며 각각 운영, 디버그, 중지 모드라고 생각하면 됩니다. 모드를 변경하려면 /etc/selinux/config 파일을 수정하면 됩니다. 임시로 모드.. 2020. 3. 4.
Mac OS 에서 라라벨 개발 환경 구축 - Valet brew 기반으로 설치가 가능하며, composer 의 경우 미리 설치하여야합니다. composer 실행의 경우, composer 또는 composer.phar 을 사용합니다. brew update brew install php composer global require laravel/valet 시스템 PATH 에 경로를 추가합니다. sudo nano /etc/paths ~/.composer/vendor/bin valet 을 설치합니다. valet install 설치가 완료되었으면, ping abcde.test 로 test 로 끝나는 도메인으로 핑을 시도해봅니다. 올바르게 설치가되었다면, 127.0.0.1 로 부터 응답이 오게됩니다. 설치 후, 맥이 실행될때마다 자동으로 데몬이 실행됩니다. 만약, 도메인.. 2020. 3. 2.
Laravel 5.8 Unit Tests 시 SQLite 를 메모리에서 사용하기 config/database.php 의 connections 에서 아래의 설정을 추가합니다. 'sqlite_testing' => [ 'driver' => 'sqlite', 'database' => ':memory:', 'prefix' => '', ], phpunit.xml 의 DB_DEFAULT 값을 sqlite_testing 으로 변경합니다. PHP Storm 을 사용할 경우, Languages & Frameworks > PHP > Test Frameworks 에서 phpunit.xml 을 지정하여야합니다. 단위 테스트 파일에서 RefresDatabase 을 선언합니다. 테스트 메소드가 호출될때마다 데이터베이스가 초기화(rollback, migrate)되므로, 초기화 데이터는 setUp() 에 추가합니다. 2019. 9. 4.
아마존 부팅시 루트권한 스크립트 실행 아마존 클라우드를 사용하면서, 리눅스의 방화벽 설정 등이 꼬여서 ssh 접근이 막힌다거나 하는 불상사가 발생하면 어떡해야할까요? 당황하지 말고 사용자 데이터로 스크립트를 등록하도록 합니다. 이때 해당 인스턴스를 중지하여야 스크립트를 저장할 수 있습니다. 스크립트는 아래와 같이 작성합니다.(firewalld 의 default zone 을 trusted 로 변경하여 모든 포트로 접근이 가능하도록 허용) #cloud-boothook #!/usr/bin/env bash /bin/firewall-offline-cmd --set-default-zone=trusted /bin/firewall-cmd --set-default-zone=trusted 이때 #cloud-boothook 을 반드시 맨 상단에 기입하여야합니다.. 2019. 6. 17.
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.