AWS EC2 .htaccess를 아무리 찾아도 못 찾을 때,
파일질라에서 ‘숨김 파일 강제 표시’를 눌러도 htaccess를 못 찾을 때는 본인이 nginx를 사용하고 있는지 확인해야 합니다.
저 같은 경우 nginx를 사용하고 있었는데 파일질라에서 ‘숨김 파일 강제 표시’를 누르고 아무리 htaccess 파일을 찾아봐도 찾을 수가 없더군요.
구글링하다보니 nginx는 원래 htaccess 파일이 없다는 걸 알게되었습니다.
그렇다면 nginx는 htaccess 파일 대신 어떤 파일을 사용할까요?
Nginx htaccess 파일: 본인 지정 파일 이름.conf
저 같은 경우는 /etc/nginx/sites-available/wordpress.conf가 저의 nginx의 htaccess 파일이었습니다.
사람마다 조금씩 그 장소(etc/nginx/site-available)나 이름(wordpress.conf)이 다를 수 있으니 본인이 초기에 워드프레스 연결할 때 어느 폴더에 어느 이름으로 만들었나 잘 생각해보시면 될 거 같습니다.
Nginx에서 xmlrpc.php 공격 차단하기
저는 저 htaccess 파일을 찾아본 이유가 이 웹사이트에 들어오는 xmlrpc.php 공격을 차단하기 위함이었습니다.
제가 지금까지 이용했던 Loginizer(워프 최소 보안 플러그인, 현재는 이 플러그인 말고 워드펜스로 사용 중입니다)에서 계속 제 /xmlrpc.php가 공격되고 있다는 것을 알고 보안을 강화하기 위해 htaccess 파일을 수정하고자 했습니다.
그래서 저는 제 맥 터미널에 들어가 제 nginx htaccess 파일(=wordpress.conf)를 찾아 외부인이 xmlrpc.php에 접근하지 못하도록 막았습니다.
vim으로 해당 .conf 파일에 들어간 후, i를 누르면 insert 모드로 바뀝니다. i를 누른 후,
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
return 403;
}
위의 코드를 알맞은 위치에 입력합니다.
이후 esc를 누르고 :wq를 친 다음 enter를 눌러서 해당 .conf 파일을 변경하면 됩니다.
그 다음, sudo nginx -t로 자신이 입력한 것이 문법이 맞는지 확인해보는 걸 추천드립니다. 문법이 맞으면 ‘nginx: the configuration file /etc/nginx/nginx.conf syntax is ok, nginx: configuration file /etc/nginx/nginx.conf test is successful‘라고 뜹니다.
이후, sudo systemctl restart nginx를 치면 위에 만들었던 변경사항이 업데이트되면서 침입자들이 더 이상 우리의 소중한 xmlrpc 파일에 접근하지 못하게 됩니다.
이제 인터넷에 본인 웹사이트/xmlrpc.php(저 같은 경우 bodeveloper.com/xmlrpc.php)를 치면 아래와 같이 나오게 됩니다.
이상입니다. 함께 안전히 웹사이트 지켜나갑시다^^.