ssllabs.com에서 A+ 받은 Apache / NginX SSL 설정을 공유해드린다.


Apache:

<IfModule mod_ssl.c>

<VirtualHost *:443>

....

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLHonorCipherOrder on

SSLCipherSuite "-ALL EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EDH+aRSA+AESGCM EECDH+ECDSA+AES EECDH+aRSA+AES EDH+aRSA+AES RSA+3DES"

SSLCertificateKeyFile   /etc/ssl/private/your_website.key

SSLCertificateFile /etc/ssl/certs/your_website.crt

</VirtualHost>

</IfModule>


<IfModule mod_headers.c>

Header add Strict-Transport-Security "max-age=15768000"

</IfModule>


ServerTokens ProductOnly

ServerSignature Off

TraceEnable Off


저장 후  headers 모듈을 활성화하고나서 아파치 서버를 재시작해주면 된다.

sudo a2enmod headers && sudo service apache2 restart



NginX:

server {

        listen   443 default_server;

        server_name yourwebsite.com;


        ssl on;

        ssl_session_cache shared:SSL:20m;

        ssl_session_timeout 180m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_prefer_server_ciphers on;


        ssl_certificate /etc/ssl/certs/yourwebsite.pem;

        ssl_certificate_key /etc/ssl/private/yourwebsite.key;


        ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

        ssl_dhparam /etc/nginx/cert/dhparam.pem;

        add_header Strict-Transport-Security "max-age=31536000";


        ......

}


저장 후, 2048비트 길이의 safe prime을 담은 DH prarmeter 파일을 생성하기 위해 다음의 명령어를 실행해준뒤 엔진엑스를 재시작한다.

sudo mkdir -p /etc/nginx/cert && sudo openssl dhparam 2048 -out /etc/nginx/cert/dhparam.pem

sudo nginx restart





블로그 이미지

Seowon Jung jswlinux

Seowon Jung의 잡동사니 보관소

댓글을 달아 주세요

php.ini에서 short_open_tag = Off 로 설정.

블로그 이미지

Seowon Jung jswlinux

Seowon Jung의 잡동사니 보관소

댓글을 달아 주세요

아파치 서버데몬을 사용할 때, 디렉터리에 index.html이나 index.php 파일 등이 없으면 일반적으로 해당 디렉터리에 있는 파일들을 나열하거나, 혹은 보안상 이를 감추기도 한다. 일반적으로 -Indexes옵션을 붙였을 경우 아래처럼 나온다.

그런데, 굳이 디렉터리의 내용을 감출 필요가 없거나 혹은 내부를 보여줘서 직접 파일을 다운로드하게 할 필요가 있을 때는 직접 보여줘야하는데 일반적으로는 아래처럼 보여지게 된다.

 

이 멋없는 페이지도 개별적인 꾸밈이 가능하다. 설명은 우분투/데비안 기준으로 한다.

도메인이 여러 개가 있어서 특정 도메인에만 세팅할 경우 /etc/apache2/sites-available/에서 알아서 불러오시고, 그런 게 없는 경우는, 즉 다시 말해 잘 모르시겠다면 아래의 명령어를 입력한다.

$ sudo vi /etc/apache2/sites-available/default

그런다음, <Directory /var/www/>라고 적혀있는 부분을 찾아서,

Options으로 시작되는 라인에서 Indexes라는 글자가 있는지 보고 없으면 Indexes라고 적어준다.

예) Options Indexes FollowSymLinks MultiViews

그리고 그 아래에다 다음을 추가시켜준다.

IndexOptions +FancyIndexing +FoldersFirst

마지막으로, </directory>라고 적힌 라인 아래에다 다음을 추가시켜준다.

Include /etc/apache2/pretty-dir.conf

 

최종적인 모습은 다음과 같다. 다른 항목은 신경쓰지 말고, <Directory /var/www/>에서 시작해서 </Directory>로 끝나는 안의 내용과, 그 다음 줄인 Include /etc/apache2/pretty-dir.conf만 신경쓰면 되겠다. 혹시 몰라서 파일을 첨부한다.default.txt

그런다음, 방금 적어준 Include /etc/apache2/pretty-dir.conf 라는 파일의 내용을 작성하면 된다. 역시 파일을 첨부한다. pretty-dir.conf

여기서 주목할 부분은 5번째 라인, "IncludeStyleSheet /.style.css" 이다. 여기서 바로 페이지의 전체적인 모습을 결정한다. CSS로 작성하면 되고, 따라서 웹디자인이 가능하신 분은 알아서 작성해주시면 되겠다. 본인의 샘플은 다음과 같다.  style.css

물론 위치는 아무데나 적어주셔도 상관이 없다. 다만 출처의 예제에서는 디렉토리를 따로 만들어서 넣었지만, 굳이 그렇게까지 할 필요가 없어서 내 경우는 저렇게 했다. 알아서 바꿔주시면 되겠다. 완성된 화면은 다음과 같다.

 

출처: https://we.riseup.net/debian/pretty-directory-indexes

블로그 이미지

Seowon Jung jswlinux

Seowon Jung의 잡동사니 보관소

댓글을 달아 주세요

우분투 포럼 채팅방에서 일어난 일이었다. 어느 분께서 아파치 서버의 세팅을 뭘 잘못 손대셨는지 뭐가 잘 안된다고 하신다. 그러면서 재설치와 동시에 PHPMyAdmin 설정을 모두 할려고 하는데, 어떤 순서대로 설치를 해야하냐고 물으셨다. 일반적으로 APM의 설치는 다음과 같다.

sudo apt-get install apache2 libapache2-mod-auth-mysql

sudo apt-get install mysql-server mysql-client

sudo apt-get install php5 php5-common libapache2-mod-php5 php5-mysql

sudo apt-get install phpmyadmin

 

그런데, 다른 분께서 위의 명령어를 한 방에 정리하셨다.

sudo apt-get install phpmyadmin

 

그런데 사실이다!!! 생각해보면 phpmyadmin과 의존관계에 있는 패키지들이 모두 연결되어있다. 따라서, 인터넷에 나와있는 리눅스에서의 APM 설치법은 이제 위의 명령어 단 한 줄로 정리가 된다.

sudo apt-get install phpmyadmin (데비안 계열일 경우)

 

실제로 해봤다. 새로 포맷하고 새로 설치하는 컴퓨터에 해봤는데, 우분투나 데비안에서는 위의 명령어를 치기 전에 하나를 해줘야한다.

sudo apt-get install mysql-server mysql-client

왜냐하면, phpmyadmin이 설치되면서 DB의 root 비밀번호를 설정하는 입력화면이 나오는데, mysql-server의 비밀번호가 먼저 설정되어있지 않으면 설치가 제대로 되지않는다. 물론 잘 아는 유저들한테서야 별거 아니지만, 리눅스를 배우기 시작한지 얼마 안되는 분들한테는 엄청 당황스러울 거다. 따라서 우분투/데비안 유저라면 아래의 방법으로 APM을 설치한다.

 

sudo apt-get install mysql-server mysql-client

sudo apt-get install phpmyadmin

 

쉽고 간단한 APM 설치~

블로그 이미지

Seowon Jung jswlinux

Seowon Jung의 잡동사니 보관소

댓글을 달아 주세요