잠시만 기다려 주세요

     '총선이 다가오니.. 민주당 수박들.. 슬슬 또 옳은 소리 하지.... 이때만 이새끼들아.!! 결정적일 때 당원들 등에 칼을 꽂는다. -.-; 지나면 입턴 거 다 무효화 된다.. 주의해야 한다. 이새끼들은 사악하다... 절대 다시 뽑아주면 안된다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (16)  |  여러가지 팁 (1056)  |  추천 및 재미 (155)  |  자료실 (22)  |  
시사, 이슈, 칼럼, 평론, 비평 (606)  |  끄적거림 (129)  |  문예 창작 (705)  |  바람 따라 (69)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    리눅스 서버

리눅스 서버 - 우분투 Nginx 특정 디렉토리 폴더에 암호 거는 방법, htpasswd, auth
이 름 : 바다아이   |   조회수 : 11047         짧은 주소 : https://www.bada-ie.com/su/?41591819368

1. 들어가며

 

최근에 Zend OPcache와 Memcached를 깔고 GUI로 잘 보고 있는데요. (관련 링크:결국 Zend OPcache와 memcached로 정착했네요.)

 

이게 아무래도 보안이 걸려있는게 좋을 것 같아서 찾아보게 되었습니다.

 

전체적인 내용은 관련링크1을 번역한 수준이므로, 정확하게 보시려면 관련링크를 참조하세요.

 

 

2. 암호가 저장 될 폴더 생성하기

 

우선 암호파일이 저장될 공간을 지정하는 것이 좋습니다.

 

웹에서는 원천적으로 접근이 불가능한 곳이 좋죠.

 

 

nginx를 쓰니깐 /etc/nginx/passwd 이 경로로 넣겠습니다.

 

 

mkdir /etc/nginx/passwd

 

위 명령어로 폴더를 만듭니다.

 

물론 본인이 원하는 폴더에 넣어도 상관없습니다. 위 경로는 단지 예시입니다.

 

 

3. 암호파일 생성하기

 

암호파일을 만드는 방법은 크게 두가지가 있습니다.

 

 

(1) 아파치의 htpasswd 명령어를 이용하면 됩니다.

 

그런데 아파치를 깐적이 없다면

 

htpasswd

 

위 명령어를 내릴 때

 

-bash: htpasswd: command not found

 

위와 같이 그런 명령어가 없다고 합니다.

 

 

apt-get install apache2-utils

 

그러면 위 명령어로 아파치 관련 유틸을 깔아줘야겠죠.

 

이제 htpasswd 명령어를 쓸 수 있습니다.

 

 

htpasswd -c /etc/nginx/passwd/.htpasswd woosung

 

위 명령어는 woosung이라는 user의 암호를 .htpasswd라는 암호파일에 생성(-c옵션)한다는 말입니다.

 

암호를 2번 물어봅니다. 같은 암호 두번 넣으면 되구요.

 

참고로 -c는 처음에만 쓰면 되고, 

 

다른 유저의 암호를 추가하고 싶다면 -c 옵션을 빼면 됩니다.

 

만약에 기존 유저가 있을 때 -c 옵션을 쓴다면 기존유저의 암호정보는 날아갑니다.

 

 

 

(2) 아파치 명령어를 쓰기 싫거나, 패키지를 깔 상황이 아니라면, 파이썬 스크립트를 사용해도 됩니다.

 

cd /usr/local/bin

 

wget http://trac.edgewall.org/export/10791/trunk/contrib/htpasswd.py

 

chmod 755 /usr/local/bin/htpasswd.py

 

위 명령어를 한줄씩 실행하면 됩니다.

 

 

htpasswd.py -c -b /etc/nginx/passwd/.htpasswd woosung woopasswd

 

위와 같이 -c와 -b 옵션을 같이 쓰는데요.

 

-c는 생성입니다. 앞선 아파치명령어와 같습니다.

 

암호 파일이 없을 때 생성하며, 있어도 덮어쓰므로 기존 유저의 암호 정보는 날아갑니다.

 

그리고 -b 옵션은 woosung이라는 유저이름으로 woopasswd라는 암호를 저장한다는 옵션입니다.

 

아파치 명령어와는 달리 암호를 물어보지 않습니다.

 

 

그리고 해당 암호파일에 유저를 추가하려면 -c옵션만 빼면 됩니다.

 

 

4. 암호파일 권한 설정하기

 

참고로 .htpasswd 처럼 파일 앞에 .이 있으면 숨김파일이 됩니다.

 

chmod 640 /etc/nginx/passwd/.htpasswd

 

위와 같이 640으로 주면 나름 안전하게 보관 가능합니다.

 

 

5. Nginx에서 설정하기

 

이제 특정 폴더에 암호를 걸어보겠습니다.

 

홈페이지의 root는 /var/www 로 설정하고, 암호를 걸고 싶은 폴더는 /var/www/test 라고 지정하구요.

 

 

nano /etc/nginx/sites-available/default

 

위와 같이 nginx설정에 들어가서

 

 

server {

       listen 80;

       server_name www.example.com example.com;

       root /var/www;

[...]

       location /test {

                auth_basic "Restricted";

                auth_basic_user_file /etc/nginx/passwd/.htpasswd;

       }

[...]

}

 

 

위와 같이 location /test 부분만 넣어주면 끝입니다. 완전 쉽죠?

 

만약에 root폴더부터 암호를 걸어주려면

 

 

server {

       listen 80;

       server_name www.example.com example.com;

       root /var/www;

[...]

       location / {

                auth_basic "Restricted";

                auth_basic_user_file /etc/nginx/passwd/.htpasswd;

       }

[...]

}

 

위와 같이 넣으면 됩니다.

 

 

이상 Nginx 디렉토리 폴더에 암호거는 방법에 대해서 알아보았습니다.


출처 : https://www.wsgvet.com/bbs/board.php?bo_table=web&wr_id=84
 

| |





      1 page / 5 page
번 호 카테고리 제 목 이름 조회수
148 리눅스 서버 samba ... , ... 바다아이 459
147 리눅스 서버 postfix main.cf ... 바다아이 3439
146 리눅스 서버 /etc/crontab ... 바다아이 2132
145 리눅스 서버 - MEMTEST, , 바다아이 3311
144 리눅스 서버 top , top 바다아이 4124
143 리눅스 서버 , systemd-networkd, archlinux network setting 바다아이 5215
142 리눅스 서버 mirror .. ... 바다아이 5690
141 리눅스 서버 [Ubuntu] (swapfile) , ... 바다아이 5567
140 리눅스 서버 ufw , iptables 바다아이 6842
139 리눅스 서버 ... grub . submenu, grub-mkconfig 바다아이 5655
138 리눅스 서버 CentOS 7 Upgrade Kernel, centos 바다아이 7450
137 리눅스 서버 , dd , 바다아이 5569
136 리눅스 서버 ... ntp .. ... 바다아이 6608
135 리눅스 서버 archlinux netstat , netstat ... 바다아이 6356
134 리눅스 서버 ps , ps option 바다아이 6085
133 리눅스 서버 , swap , ... swap . 바다아이 6314
132 리눅스 서버 crontab , .... 바다아이 6267
131 리눅스 서버 ssh , ssh 바다아이 7368
130 리눅스 서버 SSH SSH , ssh-keygen rsa 바다아이 6907
129 리눅스 서버 , date : () , () , 바다아이 7097
128 리눅스 서버 aws lightsail, ssh .. .pem 바다아이 12149
127 리눅스 서버 , ubuntu generic kernel 바다아이 7491
126 리눅스 서버 .. apt ... 바다아이 7370
125 리눅스 서버 ... ubuntu kernel compile 바다아이 9960
124 리눅스 서버 nginx http2 , . 바다아이 8847
123 리눅스 서버 psql libreadline.so.7: cannot open shared object file: No such file or directory 바다아이 9212
122 리눅스 서버 ssh .bashrc , bash .. .bash_profile 바다아이 8552
121 리눅스 서버 , , 바다아이 7761
120 리눅스 서버 rc.local ... , 바다아이 8473
119 리눅스 서버 ? - IPv4 Subnetting, (Subnet Mask) 바다아이 8183
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.06041
to webmaster... gogo sea. gogo sea.