webalizer를 보다 보니 이상한 접속이 보여서 차단할 방법 찾는중

그런데.. 이건 자동화 된거 없나? 일일이 apache.conf 손대고 apache를 재시작 하긴 좀 그런데...


<Directory /var/www/>

Options FollowSymLinks MultiViews

AllowOverride None

Order deny,allow

Allow from xxx.xxx.xxx.xxx

Allow from xxx.xxx.xxx.xxx

Allow from xxx.xxx.xxx.xxx

Deny from all

</Directory>

[링크 : http://ngee.tistory.com/209]

[링크 : https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html]

[링크 : https://httpd.apache.org/docs/2.4/howto/access.html]


mod_rewrite를 이용해서 외부 파일을 이용하는 방법.. 이건 좀 나아 보이긴 하네..

#Required set of rewrite rules

RewriteEngine on

RewriteMap    hosts-deny  txt:/etc/apache/banned-hosts

RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]

RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND

RewriteRule   ^  /why-am-i-banned.html


##  inside our banned hosts file, we have:

## /etc/apache2/banned-hosts (maintain the format .. its not just a plain text file)

## 


193.102.180.41 -

192.168.111.45 -

www.example.com -

www.sumwia.net - 

[링크 : http://stackoverflow.com/questions/23157707/apache-2-4-x-ip-blacklist]


다른것들을 찾아봐도.. 결론은 fail2ban을 이용한 ipfilter인데..

신고
Posted by 구차니

댓글을 달아 주세요

라즈베리에서 아파치 돌리는데 기본으로 mod_deflate가 활성화 되어 있는 것으로 보이네..

[링크 : http://extrememanual.net/4252]


아래는 제대로 압축을 수행중인지 확인하는 링크

gzip 확인은 실패하네.. 머지?

[링크 : http://tecadmin.net/how-to-enable-gzip-compression-on-apache/]

    [링크 : https://checkgzipcompression.com/]

    [링크 : http://www.whatsmyip.org/http-compression-test/]


+

ssl 적용해놨지만 인증서가 사설이라 --no-check-certificate를 해줘야 받아온다. ㅠㅠ

아무튼 받아온걸 file로 확인해보면 압축된 녀석 흐음..

$ wget --no-check-certificate --header="Accept-Encoding: gzip" https://localhost/php_test/phpinfo.php

--2017-01-23 15:40:12--  https://localhost/php_test/phpinfo.php

Resolving localhost (localhost)... ::1, 127.0.0.1

Connecting to localhost (localhost)|::1|:443... connected.

WARNING: The certificate of ‘localhost’ is not trusted.

WARNING: The certificate of ‘localhost’ hasn't got a known issuer.

The certificate's owner does not match hostname ‘localhost’

HTTP request sent, awaiting response... 200 OK

Length: 24808 (24K) [text/html]

Saving to: ‘phpinfo.php’


phpinfo.php                  100%[===============================================>]  24.23K  --.-KB/s   in 0.007s


2017-01-23 15:40:12 (3.63 MB/s) - ‘phpinfo.php’ saved [24808/24808] 


$ file phpinfo.php

phpinfo.php: gzip compressed data, from Unix


[링크 : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-mod_deflate-on-ubuntu-14-04]

[링크 : https://forum.ivorde.com/wget-error-error-the-certificate-of-is-not-trusted-t19611.html]


+

표준상으로는 compress, gzip 정도 밖에 안되는건가?

[링크 : https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html]

신고
Posted by 구차니

댓글을 달아 주세요

90일간 유효하지만 cron으로 자동으로 업데이트 하도록 하는 것 까지 다 되어있나 보네?

[링크 : https://certbot.eff.org/#ubuntuxenial-apache]


[링크 : http://kr.minibrary.com/353/]

[링크 : https://blog.outsider.ne.kr/1178]

[링크 : https://letsencrypt.org/]



+

2017.01.23

엥? 라즈베리에는 안되나?

$ sudo apt-cache search letsencrypt

$ sudo apt-get install python-letsencrypt-apache

Reading package lists... Done

Building dependency tree

Reading state information... Done

E: Unable to locate package python-letsencrypt-apache 

[링크 : https://launchpad.net/ubuntu/+source/python-letsencrypt-apache]

[링크 : http://askubuntu.com/questions/445487/which-ubuntu-version-is-equivalent-to-debian-squeeze]


정리 하자면.. 라즈베리에서 쓰는 jessie는 debian쪽인데

14.04 ~ 15.10 정도에 대응하는 버전이라고 한다. 그러니까 없지 ㅠㅠ

신고
Posted by 구차니

댓글을 달아 주세요

기사를 보다보니 나라에서 발급해주는데가 있네?


[링크 : http://v.media.daum.net/v/20170120142600405]

[링크 : https://www.gpki.go.kr/]



아.. 빌어먹을 한글파일 -_-


네이버 클라우드 사용하면 머 보고 쓸순 있으니..

그냥 이걸로 공문 만들어서 하면 되는건가?


와.. 사이트에서 해주는 것도 아니고 인증담당자 검색도 안되는거 페이지 넘겨가면서 찾고는

전화해서 해주세요 굽신굽신 해야 하는거야?!?!


그런데 개인용이라길래 나 같이 정말 "개인"이 쓰는건줄 알았는데...

그 개인이 그 개인이 아냐?!


개인

인증관리센터는 행정기관 소속 공무원이 사용자인증 및 전자결재, 보안메일 등의 행정업무 또는 전자상거래 등에서 활용하도록 하기 위해 부처별 개인단위로 인증서를 발급합니다.

[링크 : https://gcert.gpki.go.kr/jsp/certInfo/certIntro/certKind/searchCertkind.jsp]

[링크 : https://parking.suwon.go.kr/uat/uia/egovGpkiIssu.do]

신고
Posted by 구차니

댓글을 달아 주세요

mod_throttle은 대충 찾아 보니 Apache 1.x 꺼고

mod_cband는 apache 2.x 용인듯


그래서 대세(!?)는 mod_cband


[링크 : https://sourceforge.net/projects/cband/]

[링크 : http://serverfault.com/questions/30149/alternative-to-mod-throttle]

신고
Posted by 구차니

댓글을 달아 주세요

여기 문서를 참고해서 일단

가입 - 인증서 설치 - 로그인 - domain 인증 - 사이트 인증서 발급 함

[링크 : https://www.xetown.com/slope/135905]


발급과정에서 개인키 생성해서 웹에붙여 주어야 하는데 yourname.csr을 사용하고

개인키에 암호를 삭제한 yourname.nokey 파일을 생성

$ openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr

Generating a 2048 bit RSA private key

.+++

.....................+++

writing new private key to 'yourname.key'

Enter PEM pass phrase:

Verifying - Enter PEM pass phrase:

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:KR

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:

Organization Name (eg, company) [Internet Widgits Pty Ltd]:

Organizational Unit Name (eg, section) []:

Common Name (e.g. server FQDN or YOUR name) []:

Email Address []:


Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:


그리고는 키를 없애고 키 저장소로 복사!

$ openssl rsa -in yourname.key -out yourname.nokey

Enter pass phrase for yourname.key:

writing RSA key

$ sudo cp yourname.nokey /etc/ssl/private/yourname.nokey 

[링크 : http://blog.acu.pe.kr/55]


그러면 zip파일로 다운받을 수 있는데

apache를 쓰고 있으니 해당 파일을 압축 풀어 /etc/ssl/certs 에 넣어 주었다.

$ unzip minimonk.net.zip

$ unzip ApacheServer.zip

$ sudo cp *.crt /etc/ssl/certs


일단 공식사이트에서는 이렇게 하라는데

SSLCertificateFile "/usr/local/apache2/conf/2_your_domain.crt"

SSLCertificateKeyFile "/usr/local/apache2/conf/private.key"

SSLCertificateChainFile "/usr/local/apache2/conf/1_root_bundle.crt" 

[링크 : https://www.startssl.com/Support?v=21]


나의 경우에는 이런식으로 설정

$ sudo vi /etc/apache2/sites-available/default-ssl.conf 

                SSLCertificateFile /etc/ssl/certs/2_your_domain.crt

                SSLCertificateKeyFile /etc/ssl/private/yourname.nokey

                SSLCertificateChainFile /etc/ssl/certs/1_root_bundle.crt


아무튼 라즈베리 키로 할때는 안전하지 않음이라고 크롬에서 뜨는데

starssl 에서 적용하니 이제 안전함! 우오오옹

class 1이라 그런가

은행권 처럼 녹색으로 줄이 쫙! 그이진 않네


---

처음 하라는대로 해보니 되긴한데 암호 넣으라고 한다. ㅠㅠ

그래서 키삭제 하는게 서비스 유지에는 편리!

$ sudo service apache2 restart

Enter passphrase for SSL/TLS keys for 127.0.1.1:443 (RSA): ******** 



어? 아이패드에서 (ios 10.2) 접속 자체를 안하는것 같다?!?!
[링크 : https://discussions.apple.com/thread/7791706?start=0&tstart=0]


신고
Posted by 구차니

댓글을 달아 주세요

  1. http://www.zdnet.co.kr/news/news_view.asp?artice_id=20161011135429
    WoSign 과 StartCom에 대한 안좋은 뉴스가 있어서
    해볼까 하다가 안하고 있었죠.
    괜찮을까요?

    2017.01.05 17:17 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 헉?! 일단은 라즈베리 서버에 테스트용으로 쓰는거라 귀찮기도 하고 여러가지 이유로 테스트만 하는거라 현재 까지는 무료라는 점에서 만족을 하렵니다 ㅠㅠ

      물론 나중에 상용으로 해야 한다면.. 좀 비싸도 다른데서 해야겠네요 ㅠㅠ

      2017.01.05 17:23 신고 [ ADDR : EDIT/ DEL ]
    • 음.. 제꺼인증서 자체는 문제가 된 SHA-1은 아니고 SHA-256이라 어떻게 해야할지 모르겠네요.
      머.. 테스트 서버니까 쿨~하게 ㅋㅋㅋ

      어라.. 다시 보니까.. 서명은 sha-256/ 지문은 sha-1 이네요.. 머징... ㅠㅠ

      2017.01.05 17:29 신고 [ ADDR : EDIT/ DEL ]

공인 인증하려면 비싸니까(년 3만원 이상)

개인이 쓰거나 개발용이라면 사설인증서 만들어서 써도 된다네?(openssl)


[링크 : http://stackoverflow.com/questions/2336678/login-without-https-how-to-secure]

[링크 : https://opentutorials.org/course/228/4894]

[링크 : http://tuwlab.com/ece/8616] <<



개인정보 가지면 무조건 HTTPS를 의무화한 법안으로 인해

일단은 무조건 해봐야 할 듯?


+

라즈베리 밀고 다시 해봐야하나.

그냥 기본적으로 거의 다 되어 있고

http://localhost 대신

https://localhost로 하면 된다.


http://로 접속한걸 https:// 로 자동 리다이렉션 하는 법 없나..

<VirtualHost *:80>

        # The ServerName directive sets the request scheme, hostname and port that

        # the server uses to identify itself. This is used when creating

        # redirection URLs. In the context of virtual hosts, the ServerName

        # specifies what hostname must appear in the request's Host: header to

        # match this virtual host. For the default virtual host (this file) this

        # value is not decisive as it is used as a last resort host regardless.

        # However, you must set it for any further virtual host explicitly.

        #ServerName www.example.com


        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html


        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,

        # error, crit, alert, emerg.

        # It is also possible to configure the loglevel for particular

        # modules, e.g.

        #LogLevel info ssl:warn


        ErrorLog ${APACHE_LOG_DIR}/error.log

        CustomLog ${APACHE_LOG_DIR}/access.log combined


        # For most configuration files from conf-available/, which are

        # enabled or disabled at a global level, it is possible to

        # include a line for only one particular virtual host. For example the

        # following line enables the CGI configuration for this host only

        # after it has been globally disabled with "a2disconf".

        #Include conf-available/serve-cgi-bin.conf


        Redirect / https://raspberrypi/

</VirtualHost> 

[링크 : http://stackoverflow.com/.../how-to-redirect-all-http-requests-to-https/21798882#21798882]


mod_rewrite로 하는법이라는데 왜 안되지..

[링크 : https://wiki.apache.org/httpd/RewriteHTTPToHTTPS]



+

16.11.25일자 라즈베리 배포판으로는 아래의 과정만 하면 설정완료!

ssl 관련 설정은 해당 모듈만 활성화 시켜주는 되는 듯

$ sudo apt-get install apache2 mysql-server mysql-client-5.5 php5 php5-mysql php5-gd openssl


$ cd /etc/apache2/sites-available/

$ sudo vi 000-default.conf

redirect / https://raspberrypi/

$ sudo a2enmod ssl

$ sudo a2ensite default-ssl

$ sudo service apache2 restart 


+2017.01.05

경고 뜨는게 싫고, 다른데서 매번 사용확인해주는게 귀찮아서라도 하나 해야 할 듯 -_-

[링크 : https://www.xetown.com/slope/135905]

[링크 : https://blog.elpo.net/get-free-ssl-certificate/]


신고
Posted by 구차니

댓글을 달아 주세요

Ubuntu 14.10 LTS ? 같은데

기본설정상 우분투에서 아파치의 htdocs는 /var/www 이지만
이 녀석을 다른 곳에서 사용하기 위해서는 다른 파일을 수정해야 한다.

/etc/apache2/apache2.conf <<
/etc/apache2/sites-enabled/000-default


기존의 2.2.22 (10.04 LTS) 에서는 site-enabled/000-default에 설정하면 되었으나
2.4.7 부터는 설정이 바뀌어서 apache2.conf 에서
허용되는 경로 부터 바꾸어 주어야 하는 듯 하다.

아래는 index.html의 도움말. 역시 써놓은건 잘 읽어야해 -_-

Document Roots

By default, Ubuntu does not allow access through the web browser to any file apart of those located in/var/wwwpublic_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf.

The default Ubuntu document root is /var/www/html. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box. 
신고
Posted by 구차니

댓글을 달아 주세요

ab는 아파치에서 제공하는 벤치마킹 툴로 우분투에서 아래의 패키지로 제공된다.
 $ sudo apt-get install apache2-utils

특이한건...
 $ ab http://localhost
는 안되고
 
 $ ab http://localhost/
 $ ab http://localhost/index.html
은 된다 -_-

[링크 : http://stackoverflow.com/.../apache-ab-will-not-work-ab-invalid-url-when-testing-python-cyclone]

-c 를 천단위로 할 수는 없는 듯 하다.
(1020을 넘어서니 socket: Too many open files(24) 에러를 발생한다)
-c concurrency
    Number of multiple requests to perform at a time. Default is one request at a time.

-n requests
    Number of requests to perform for the benchmarking session. The default is to just perform a single request which usually leads to non-representative benchmarking results. 

[링크 : http://linux.die.net/man/1/ab

신고
Posted by 구차니

댓글을 달아 주세요

수정하려니 기본적으로 AllowOverride 라서 건드리지 않고 시도함.
$ sudo vi /etc/apache2/sites-available/default
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory> 

귀찮으니(!) 일단 파일 퍼미션은 패스하고, 내가 하려는 폴더인 /var/www/gnuboard4 에서 
.htaccess 파일을 생성하고 아래의 내용을 넣어준다.
$ cat .htaccess
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /var/www/gnuboard4/.pw
Require user test 

htpasswd 유틸을 이용해서 .pw 파일을 -c(create) 해주고 test 계정을 추가한다.
$ sudo htpasswd -c .pw test
New password:
Re-type new password:
Adding password for user test 

localhost/gnuboard4 로 접속하려고 하면 아래와 같은 메시지가 뜬다.
서버 메시지에는 .htaccess에서 AuthName에 기재한 내용이 뜨게 된다.


+
아무래도 암호 파일은 동일한 디렉토리에 두면 안될듯(목록 보고 암호 빼갈테니)
가장 좋은건 별도의 암호 디렉토리에 저장하고 이 디렉토리는 웹서버 루트외의 곳으로 지정해야 할 듯하다.
물론 로그인 이전에는 .pw에 접근할수 없지만, 로그인 후에는 .pw 파일이 버젓히 보이게 된다 -_-

[링크 : http://opentime.tistory.com/33]
[링크 : http://www.cyberciti.biz/faq/howto-setup-apache-password-protect-directory-with-htaccess-file/
신고

'프로그램 사용 > apache' 카테고리의 다른 글

apache2 2.4.7 문서 경로 수정하기  (0) 2014.11.24
ab - apache HTTP server benchmarking tool  (0) 2014.10.10
apache 특정 디렉토리만 인증하기  (0) 2013.04.09
500 internal server error - mediawiki 이전시  (0) 2011.12.18
apache - url rewrite  (2) 2011.04.26
webDAV  (0) 2010.11.19
Posted by 구차니

댓글을 달아 주세요