페이지

레이블이 우분투인 게시물을 표시합니다. 모든 게시물 표시
레이블이 우분투인 게시물을 표시합니다. 모든 게시물 표시

[ubuntu] SSL(https) 적용하기 (작업중)


1. openSSL 설치
$ sudo apt-get install openssl

2. 개인 Key 생성
$ sudo openssl genrsa –des3 -out keyname.key 2048

3. CRS 생성
$ sudo openssl req –new –key keyname.key > csr.pem
// 또는
$ sudo openssl req –new –key keyname.key -out csr.pem

4. CRS 내용을 인증기관에 전달
5. 인증 기관에서 발급된 인증서를 파일로 저장(cert.pem)


SSL 모듈 활성화
$ sudo a2enmod ssl

Key 파일 암호 제거(불편한 경우)
$ sudo openssl rsa -in keyname.key -out keyname_no_pass.key

방화벽을 사용중인 경우 443 포트 개방
$ sudo ufw allow https

가상호스트(VirtualHost) 설정 파일에 적용하는 경우(예시)
<VirtualHost *:443>
    ServerName domain.com

    ServerAdmin name@email.com
    ServerAlias www.domain.com *.domain.com

    DocumentRoot /html/directory

    <Directory /html/directory>  
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>  

    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
    SSLHonorCipherOrder on
    # 인증서 파일 (5번)
    SSLCertificateFile "/ssl_directory/cert.pem"
    # 개인키 파일 (2번)
    SSLCertificateKeyFile "/ssl_directory/keyname.key"
    # 체인 인증서 (확장자가 .ca-bundle 인 경우도 있음)
    SSLCertificateChainFile "/ssl_directory/cert.cer"

    ErrorDocument 402 /missing.html
    ErrorDocument 403 "/cgi-bin/cgi-script.pl"
    ErrorDocument 404 error.domain.com
    ErrorDocument 500 "Internal Server Error"

    ErrorLog ${APACHE_LOG_DIR}/domain-error.log  
    CustomLog ${APACHE_LOG_DIR}/domain-access.log combined
</VirtualHost>

[ubuntu] 아파치 기본 디렉토리 변경



* 우분투 버전: 16.04 LTS
1. 아파치 기본 디렉토리(/var/www/) 변경시 필요한 설정(기본 웹페이지 변경)
2. 디폴트 사이트 설정 화일(000-default.conf) 수정
# /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
    ...
    DocumentRoot /사용할 디렉토리 (기존 /var/www 수정)
    ...
</VirtualHost>

3. apache2.conf에 코드 추가 또는 기존 디렉토리(/var/www/) 설정 수정
# /etc/apache2/apache2.conf
<Directory /사용할 디렉토리/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

4. 아파치 재시작
$ sudo service apache2 restart (or reload)

[ubuntu] 아파치(Apache)에 오류 페이지 설정


1. 아파치(Apache)에 오류 페이지 설정
2. 페이지 오류가 발생했을때 지정한 페이지 또는 도메인으로 이동할 수 있음
3. apache2.conf 파일 또는 각각의 호스트 conf에 추가

# 다른 파일 지정
ErrorDocument 402 /missing.html
# CGI 스크립트 지정
ErrorDocument 403 "/cgi-bin/cgi-script.pl"
# 특정 도메인 지정
ErrorDocument 404 http://www.domain.com
# 메세지 지정
ErrorDocument 500 "Internal Server Error"

4. 가상호스트(VirtualHost) 설정 파일에 적용하는 경우
<VirtualHost *:80>
    ServerName domain.com

    ServerAdmin name@email.com
    ServerAlias www.domain.com *.domain.com

    DocumentRoot /html/directory

    <Directory /html/directory>  
        Options IncludesNoExec  
        ServerSignature Off  
        AllowOverride None  
        Require all granted  
    </Directory>  

    ErrorDocument 402 /missing.html
    ErrorDocument 403 "/cgi-bin/cgi-script.pl"
    ErrorDocument 404 http://error.domain.com
    ErrorDocument 500 "Internal Server Error"

    ErrorLog ${APACHE_LOG_DIR}/domain-error.log  
    CustomLog ${APACHE_LOG_DIR}/domain-access.log combined
</VirtualHost>

[ubuntu] 호스트네임(Hostname) 변경후 'sudo: unable to resolve host...' 메세지 나올때



## 기준: ubuntu 16.04 LTS

호스트네임(hostname) 변경후 sudo 사용시, 'sudo: unable to resolve host...' 메세지가 나올때
$ sudo rm readme.txt
sudo: unable to resolve host [hostname]


hosts 파일에 아래와 변경된 호스트네임을 넣어주면 됩니다.
$ sudo vi /etc/hosts
127.0.0.1 hostname

완료후에는 reboot
$ sudo reboot

[ubuntu] 아파치(Apache) 가상호스트에 한글 도메인 연결



* 기준 OS: ubuntu 16.04 LTS
아파치 가상호스트에 한글 도메인 연결하기 + 한글 2차 도메인까지

1. 한글 도메인의 퓨니코드(Punycode)를 확인합니다.



















▸ http://whois.kisa.or.kr/idnconv/index.jsp
▸ EX: 경기도.com ⇒ xn--289an1ao6j.com


2. 호스트 설정 파일에 퓨니코드를 지정합니다.('경기도.com'으로 샘플)
<VirtualHost *:80>
    ServerName xn--289an1ao6j.com

    ServerAdmin name@email.com
    ServerAlias www.xn--289an1ao6j.com xn--289an1ao6j.com

    DocumentRoot /html/gyeonggido

    <Directory /html/gyeonggido>  
        Options IncludesNoExec  
        ServerSignature Off  
        AllowOverride None  
        Require all granted  
    </Directory>  

    ErrorLog ${APACHE_LOG_DIR}/gyeonggido-error.log  
    CustomLog ${APACHE_LOG_DIR}/gyeonggido-access.log combined
</VirtualHost>


3. 2차 도메인의 경우, 똑같이 퓨니코드를 이용합니다.('분당구.경기도.com'으로 샘플)
<VirtualHost *:80>
    ServerName xn--2e0b78hl7j.xn--289an1ao6j.com

    ServerAdmin name@email.com
    ServerAlias xn--2e0b78hl7j.xn--289an1ao6j.com

    DocumentRoot /html/gyeonggido/bundanggu

    <Directory /html/gyeonggido/bundanggu>
        Options IncludesNoExec  
        ServerSignature Off  
        AllowOverride None  
        Require all granted  
    </Directory>  

    ErrorLog ${APACHE_LOG_DIR}/bundanggu-error.log  
    CustomLog ${APACHE_LOG_DIR}/bundanggu-access.log combined
</VirtualHost>

[ubuntu] 네트워크 설정



우분투 네트워크 설정에 대한 내용을 정리합니다.
* 버전: 16.04 LTS


- 설정파일은 [/etc/network/ > interfaces] 입니다.
$ sudo vi /etc/network/interfaces


- 처음 설치시 아래와 같이 DHCP로 기본 설정되어 있습니다.
# The primary network interface
auto enp0s25
iface enp0s25 inet dhcp


- 고정 아이피(IP)로 바꾸려면 아래 내용을 참고해서 수정하면 됩니다.
# The primary network interface
auto enp0s25
iface enp0s25 inet static
address 192.168.0.xxx
netmask 255.255.255.0
gateway 192.168.0.xxx
dns-nameservers 8.8.8.8


- 네트워크 설정 변경후에는 reboot 또는 네트워크 재시작을 해줘야 합니다.
$ sudo reboot
OR
$ sudo systemctl restart networking.service

[ubuntu] 아파치(Apache) 가상호스트 추가(도메인 추가)



아파치(Apache)를 사용하는 웹서버에 가상호스트(VirtualHost)를 통해 도메인을 추가하는 방법입니다.

1. 디폴트 conf 파일 또는 다른 도메인 conf 파일을 복사
/etc/apache2/sites-available/000-default.conf
$ sudo cp 000-default.conf domain.conf


2. 복사한 domain.conf 파일을 수정
$ sudo vi domain.com.conf


3. 호스트 등록
$ sudo a2ensite domain.com


4. 서비스 재기동
$ sudo service apache2 restart (or reload)


* 참고1 - 호스트 등록 취소(호스트 내리기)
$ sudo a2dissite domain.com


* 참고2 - domain.com.conf 샘플
<VirtualHost *:80>
    ServerName domain.com

    ServerAdmin name@email.com
    ServerAlias www.domain.com domain.com  

    DocumentRoot /domain/directory  

    <Directory /domain/directory>  
        Options IncludesNoExec  
        ServerSignature Off  
        AllowOverride None  
        Require all granted  
    </Directory>  

    ErrorLog ${APACHE_LOG_DIR}/domain-error.log  
    CustomLog ${APACHE_LOG_DIR}/domain-access.log combined  
</VirtualHost>  

[ubuntu] .htaccess 설정 방법



Apache(아파치)를 이용해 웹서버를 구동하는 경우, .htaccess를 사용하면 디렉토리별로 설정을 변경할 수 있습니다. .htaccess 설정에 대한 내용을 정리합니다.

단, 특별한 경우가 아니라면 .htaccess 사용을 권장하지 않으며, httpd.conf 파일 또는 도메인 conf 파일의 <Directory>...</Directory>를 이용하는 것이 좋습니다.

========
- httpd.conf<Directory>...</Directory>AllowOverride None이 있으면 작동하지 않는다.
- .htaccess의 설정은 .htaccess 파일이 있는 디렉토리와 그 하위 디렉토리까지 영향을 받는다.

- 디렉토리 리스닝 방지(가장 기본)
Options All -Indexes  


- 특정 파일 접근 차단
<files filename.php>  
    order allow,deny  
    deny from all  
</files>


- .htaccess 파일 보호
<files ~ "^.*\.([Hh][Tt][Aa])">
    order allow,deny
    deny from all
</files>

- 특정 IP 차단
deny from 1.1.1.1
deny from 2.2.2.2
deny from 1.1.1.1 2.2.2.2
# IP대역을 차단
deny from 3.3.3.0/255.255.255.0


- 참조
Google+htaccess+설정
Google+htaccess+보안
https://goo.gl/Ze2v1t
https://goo.gl/rQZG5E
https://goo.gl/VK1cH7


[ubuntu] 패키지 업데이트 :: Package Update



우분투(ubuntu)서버 패키지 업데이트(Package Update)방법

- 기본
$ sudo apt-get update
$ sudo apt-get upgrade


- 보안 패치만 업데이트
$ sudo apt-get update
$ sudo apt-get install unattended-upgrades
$ sudo unattended-upgrade


- ubuntu 설명서
$ sudo apt-get update  
$ sudo apt-get dist-upgrade


- 업데이트 자동 적용
$ sudo dpkg-reconfigure unattended-upgrades


- 패키지 삭제(설정 파일은 남겨둠)
$ sudo apt-get remove packaganem


- 패키지 삭제(설정 파일까지 삭제)
$ sudo apt-get --purge remove packaganem


- 패키지 삭제(자동 삭제)
$ sudo apt-get autoremove packaganem