🥇Home

    iptables 로 DDOS 방어 하기

    # 동일IP가 http서비스에 1초동안 10회 이상 tcp 80포트로 접속하는 경우 drop iptables -A INPUT -p tcp --dport 80 -m recent --update --seconds 1 --hitcount 10 --name HTTP -j DROP 동일IP가 http서비스에 1초동안 5회 이상 tcp 80포트로 접속하는 경우 drop iptables -A INPUT -p tcp --dport 80 -m recent --update --seconds 1 --hitcount 5 --name HTTP -j DROP

    PHP7 SSH2

    PHP7 SSH2

    XE나 워드프레스 관리자 화면에서 sftp를 이용하기 위해서는 php 확장 모듈인 ssh2가 필요하다 필자는 소스를 직접 받아 컴파일 하였다. pecl.php.net/package/ssh2 위 URL에서 맞는 버전 설치 후 서버에 업로드 (필자는 1.2 다운로드하였음) tar xzvf ssh2-1.2.tgz cd ssh2-1.2 . . . vi /etc/php.ini 마지막으로 phpinfo에서 ssh2 모듈 확인해보면된다~ 끄읕

    PHP7 opcache 설정

    PHP7 opcache 설정

    php7 버전에서 Zend Opcache 가 포함되어 설치되므로 /etc/php.ini 에서 아래와같이 extension 으로 설정만 해주면된다. [opcache] zend_extension=/usr/local/php-7.3.23/lib/php/extensions/no-debug-zts-20180731/opcache.so opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=10240 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=2400000 opcache.max_wasted_percentage=10 opcache.validate_timestamps=1 opcache.re..

    Apache 브라우저 캐시 설정

    우리가 사용하는 브라우저는 웹페이지 접근 시 캐시가 쌓인다. 캐시를 쌓는 이유는 동일 사이트 접속 시 미리 최근에 저장해놓은 파일들을 이용하면 웹페이지에 더 빠르게 접근이 가능하기 때문이다. Apache에서 제공하는 캐시모듈을 적용하면 지정한 기간동안 캐시로 보관한다. Apache에서는 mod_expire 모듈을 통해 설정할수있다. 아래 설정은 gif, png, jpg, jpeg 등 파일에 대하여 1달간 캐시를 설정을 하겠다는 뜻이다. 꼭 month와 같은 "달" 이 아닌 몇시간, 몇일, 몇주 도 설정가능하다 ex) years, months, weeks, days, hours, minutes, seconds vi httpd.conf ExpiresActive On ExpiresByType image/x-i..

    Apache gzip 압축전송

    Apache gzip 압축전송

    위 화면은 Chrome 개발자도구에서 확인할수 있는 내용이다 필자가 관리하고있는 사이트는 gzip 으로 압축 전송이 되고있다. 위 사진에 보듯이 서버에서 설정을 아직 안했다면 Response Headers 쪽에 Content-Encoding: gzip 이 없을것이다. 이를 사용하기 위해서는 2개의 조건이 있다. 1. 사이트에 접속하는 사용자의 브라우저에서 gzip 기능을 지원할것 2. 서버에서 gzip으로 전송 vi httpd.conf LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule filter_module modules/mod_filter.so 위 세개 모듈..

    Apache ModSecurity requires mod_unique_id to be installed.

    Apache ModSecurity requires mod_unique_id to be installed.

    위 주석을 해제한다 Modsecurity 를 설치하기전에는 위 라이브러리가 필요하다 주석을 풀어주고 apache restart를 해도되고 modules/ 쪽에 없다면 모듈 설치 후 진행해야한다.

    Apache2.4 mod_security

    기존환경 : Apache2.4, PHP7.3, MySQL5.7 컴파일설치되어있음 필자와 같이 컴파일설치로 되어있다는 가정으로 진행하겠다. rpm으로 설치되어있어도 웬만해서는 따라올수있다 #modsecurity 소스 다운로드 wget https://www.modsecurity.org/tarball/2.9.3/modsecurity-2.9.3.tar.gz https://www.modsecurity.org 공식홈페이지이며, 필자는 위 주소에서 2.x 버전을 다운 다른 버전을 원하는사람은 다른 버전을 다운받길 바란다. modsecurity 설치까지 완료하면 룰셋을 다운받는다 #modsecurity 룰셋 다운로드 git clone https://github.com/SpiderLabs/owasp-modsecurity..

    MariaDB 10.5 설치

    MariaDB 10.5 설치

    ※ MariaDB repo 등록 vi /etc/yum.repos.d/MariaDB.repo [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.5/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 # MariaDB 설치 yum -y install MariaDB ※ MariaDB 설치 및 설치버전 확인 ※ MariaDB 시작 ※ MariaDB Password 설정 MariaDB 10.4 version 이후 시스템 root와 MariaDB root와 권한이 동일하게 적용되어 패스워드를 요구하지 않음, user 테이블 또한 실제테이블로 존재하지 않음 위와 같이 변경점 ..

    티스토리 2차 도메인 사용시 로그인 풀림

    티스토리 2차 도메인 사용시 로그인 풀림

    chrome://flags/#cookies-without-same-site-must-be-secure URL 위 사이트에 접속 1. 다음과 같이 Disabled 로 변경 2. 크롬 > 설정 > 쿠키 및 사이트 데이터 > 쿠키 삭제 저는 이렇게 진행해도 안됬는데 되신다는분들이 있어 글 올립니다. (2020년 9월 17일) 해당 문제는 티스토리 문제라고 하네요.

    MySQL socket Error

    브라우저에서 MySQL 소켓파일을 못찾아서 사이트가 접속이 안될때가있다. socket 파일 위치 확인은 netstat -an | grep mysqld 혹은 ps -ef | grep mysqld 를 하면 알수있다. 첫번째 방법 PHP-MySQL 사용시 php.ini 에서 다음과 같이 mysql socket 위치를 적어 놓는것이다. 물론 이렇게 할시 웹서버 재시작을 해야합니다. [MySQL] mysql.default_socket = "/tmp/mysqld.sock" mysqli.default_socket = "/tmp/mysqld.sock" 두번째 방법은 소스파일에서 수정하는 방법입니다. mysql_connect('localhost:/tmp/mysql.sock', 'username', 'password');..

    개인도메인 티스토리에 연결하기 (도메인 연결)

    개인도메인 티스토리에 연결하기 (도메인 연결)

    필자는 개인도메인이 있습니다. 현재 서버 Shutdown 을 하여 가지고있는 개인도메인을 현재 운영중인 제 블로그에 연결시키려고합니다. 작업은 별거 없지만.. 블로그에 글을 하나 추가하기 위함입니다.. ^^ 현재 제가 가지고 있는 도메인은 가비아 에서 구입했습니다. TIP A레코드를 사용하여 IP를 집어넣어도되지만 TISTORY에서 가끔 서버 이전을 한다고 합니다. 그러면 작업을 반복해야하기때문에 A레코드가 아닌 CNAME 레코드를 사용하여 작업하는게 효율적입니다. 다음화면은 가비아(gabia.com) 에 접속하여 [My가비아] -> 해당 도메인 [관리툴] 클릭 -> DNS 정보탭 [도메인 연결] -> [설정] 에서 작업 할수있습니다. (현재 tistory도메인은 입력을 안하고 기본적으로 써있는대로 그냥..

    [리눅스마스터 1급 2차] 리마 1급 합격 후기 - 기출문제 모음, 응시료, 시험장TIP

    [리눅스마스터 1급 2차] 리마 1급 합격 후기 - 기출문제 모음, 응시료, 시험장TIP

    리눅스마스터 1급, 2급 자격증 도움을 위해 팁을 공유한다 저는 아래와 같은 날짜에 시험을 보았다 수시3으로 되어있는데 코로나바이러스인하여 일정이 연기되어서 그런가보다. 나는 리눅스마스터 자격증이 가지는 메리트는 충분히 있다고 생각한다 가장 큰 메리트는 리눅스마스터의 유효기간은 없기때문이다. 즉, 다른 자격증은 유효기간을 가지는반면에 리눅스마스터는 유효기간이 없다는게 큰 장점이다. 난이도 또한 높아서, 업체에서도 인정해주는 자격증이다. 국제자격증 LPIC 보다 인정받을수 있다. 그이유는 리눅스마스터가 LPIC 보다 훨씬 어렵다고 들었다. 자 이제.. 후기를 말하자면.. 2급 취득 후 약 1년 8개월 만에 1급을 취득하였는데 왜 1년 8개월만에 취득한거냐? 2019년에는 회사에 입사하여 공부&일 하느라 바..

    VMware 구동 시 바로 종료되는 증상

    이번에 포스팅할 주제는 VMware 설치창이 바로 꺼지는 증상에 대해 적는다. 필자는 VMware Workstation Pro 를 사용하였으며, 최근 노트북 변경으로 인한 재설치를 진행하였다. 그런데 이게 웬일? 설치파일(.exe) 구동을 시키면 바로 꺼지는 증상이 나타났다. 해당 내용 디팬더도 꺼보고.. 드라이버 재설치 등등 .. 다해봐도 안되었다.. 물론 eventvwr 에도 특이사항은 없었다. 이렇게 몇시간 고생한다음 다음과 같이 해결하였다. 해결은 Administrator 계정으로 들어가서 설치하면 된다. TIP 포맷하고 컴퓨터이름을 영어로 하면 바로 설치가 된다고하는데 나는 한글이여서 안된거같기도한다. Administrator 로 전환하는 방법 1. cmd (관리자 권한 실행) 2. net us..

    GPT 볼륨 LVM 설정

    GPT 볼륨 LVM 설정

    우리가 사용하는 Linux에서는 파티션 생성시 fdisk 를 이용한다. 하지만 fdisk 같은경우에는 Disk Size가 2TB 가 넘어가면 2TB까지 밖에 사용을 못한다. 예를들면 3TB Disk 가 있다고 가정하면 fdisk 로 파티셔닝시 2TB 까지밖에 사용을 못한다는것이다. 그 이유는 fdisk 는 MBR 방식이기 때문이다. 2TB 이상 Disk 를 사용할때는 MBR 방식 대신 GPT 방식을 사용해줘야한다. 그렇기에 fdisk 가 아닌 parted 명령어를 사용한다.

    Tomcat HTTP Header 배너 삭제

    Tomcat HTTP Header 배너 삭제

    Apache-Tomcat 연동사용자에게 HTTP Header를 가리는부분은 Tomcat 이 아닌 Apache 에서 변경해야한다. 이유는 HTTP Header 쪽을 보면 Apache 버전이 노출되기 때문이다. ------------------------------------------------------------------------ Apache-Tomcat 연동사용자는 HTTP Header 에 다음과 같이 나온다. 위 부분에 버전을 가리려면 다음과 같이 설정한다 vi httpd.conf ServerTokens Prod

    Tomcat 버전 노출

    Tomcat 버전 노출

    Apache-Tomcat 을쓰거나 Tomcat 단일로 쓰는 서버 모두 적용대상이다. 서버 버전이 노출되면 해당 버전의 취약점을 이용하여 공격당할수있다. 그러므로 버전 정보는 안보이게 하는것이 좋다 보통 web.xml 파일안에 404 error 페이지가 설정되어있지 않다면 아래사진과 같은 화면을 보게된다 처리방법 CATALINA_HOME/lib 쪽에 오면 catalina.jar 파일이 보인다. jar xvf catalina.jar 위 파일을 압축 풀면 org 와 META_INF 가 생김 그럼 이제 다음 경로로 들어간다 /usr/local/apache-tomcat-7.0.70/lib/org/apache/catalina/util 위 경로에서 ServerInfo.properties 파일을 열어서 위 사진과 같이..

    Linux dd 명령어

    Linux dd 명령어

    테스트를 할 때 파일의 크기에 관련된 테스트라면, 다양한 파일의 크기를 생성하기가 여간 귀찮은게 아니다. 파일의 내용은 상관없고 원하는 파일의 크기를 얻고싶을때 사용하면 좋다 아니면 의미없는 문자들로 채워넣고 복사 붙여넣기 를 반복해야되기때문이다. dd명령어를 사용하면 쉽게 원하는 파일의 크기를 생성 가능하다 [root@localhost] $ dd if=/dev/zero of=test.bin bs=1K count=100 이렇게 하면 100K 크기를 갖는 aa.bin 파일이 생성된다. dd : 블록단위로 파일을 복사하거나 파일변환을 할 수 있는 명령어 dd의 입출력시에 사용되는 단위들 c : Character, 1byte w : Word, 2bytes k : Kilo Bytes, 1024bytes b : ..

    APM configure 옵션 확인

    1. MySQL configure 옵션 확인 # 설치시사용한소스경로/config.log 2. 아파치 configure 옵션 확인 # 설치시사용한소스경로/config.nice OR # 설치경로/build/config.nice 3. php configure 옵션 확인 # 설치시사용한소스경로/config.nice OR # 설치경로/bin/php-config OR # php -i

    브리지와 스위치 차이점

    브리지와 스위치는 같은 데이터링크 계층이면서 하는일이 비슷하다 그렇다면 차이점은 없을까? 공통점 둘다 같은 데이터링크계층 차이점 1) 스위치는 처리방식이 하드웨어로 이루어지는 반면, 브리지는 소프트웨어적으로 프레임을 처리하여 브리지에 비해서 빠름 즉, 브리지의 경우는 프레임의 처리 방식이 소프트웨어적 프로그램에 의해서 처리되는 방식을 취하지만, 스위치의 경우는 처리 절차를 미리 칩에 구워서 하드웨어 방식으로 만드는 ASIC(에이직) 방식이기 때문에 프레임 처리 속도가 브리지에 비해서 훨씬 빠르다 2) 브리지는 포트들이 같은 속도를 지원하는 반면, 스위치는 서로 다른 속도를 연결해줄수 있는 기능을 제공한다 즉, 10메가 포트, 100메가 포트 가 한 장비에 같이 있게되며, 이는 서로 다른 속도를 연결해주는..

    브리지 (Bridge)

    허브에 한수 높은 브리지에 대해 알아보겠다. 스위치를 이해하기 위해서는 브리지를 먼저 알고 넘어가야한다. 브리지가 가지고 있는 모든 특성은 바로 스위치의 특성 이기도하며, 브리지는 말 그대로 "다리" 이다. 허브는 나누지 못하는 콜리전 도메인을 나누어주는 역할을 한다. 브리지는 목적지 주소를 보고 그 주소가 자신의 브리지 테이블(맥 어드레스 테이블)에 없거나, 멀티캐스트주소이거나, 브로드캐스트 주소인 경우에는 들어온 포트를 제외한 나머지 모든 포트로부터 뿌려주는 Flooding을 하게된다. 브리지는 출발지의 맥 어드레스를 외운 다음 이것을 브리지 테이블(맥 어드레스 테이블) 에 저장한다. 중간에 서서 브리지 맥 어드레스 테이블(브리지 테이블) 을 보면서 통신이 다리 한쪽에서만 일어나면 다리를 못건너가게하..