[aws 라이트세일 LAMP] 특정 IP 접근 차단 설정방법
1.httpd.conf에 추가하는 방식
만약을 대비해서 백업을 생활화!
cp /opt/bitnami/apache/conf/httpd.conf /opt/bitnami/apache/conf/httpd.conf.bak.2026.11.01
vi /opt/bitnami/apache/conf/httpd.conf
<Directory "/opt/bitnami/apache/htdocs">
<RequireAll>
Require all granted
Require not ip 185.220.101.10
Require not ip 195.178.110.137
</RequireAll>
</Directory>
이건 동작하지 않습니다.
예를 들어 기존 <Directory> 설정은 유지해야한다면, 그 아래에 다음을 추가합니다.
<Location "/">
<RequireAll>
Require all granted
Require not ip 195.178.110.137
</RequireAll>
</Location>
이 방식은 URL 경로 / 이하에 접근 제한을 적용합니다.
다만 중요한 점이 있습니다. 기존 <Directory>의 Require all granted와 별도 <Location>의 접근 제어는 Apache의 설정 병합 규칙에 영향을 받습니다. 또한 다른 <Location>이나 가상호스트 설정이 있다면 결과가 달라질 수 있습니다.
단, 이 방식은 실제 웹사이트의 DocumentRoot가 /opt/bitnami/apache/htdocs이고, 해당 파일이 Apache 설정에 포함되는 경우에만 적용됩니다. 기존 접근 제어 설정과 충돌할 수도 있습니다.
2. 설정 검사
sudo /opt/bitnami/apache/bin/httpd -t
Syntax OK가 나오면:
sudo /opt/bitnami/ctlscript.sh restart apache
3. 차단 확인
차단된 IP에서 접속하면 일반적으로 다음 응답이 발생합니다.
가장 확실한 대안은 기존 Apache 설정을 건드리지 않고 서버 방화벽에서 IP를 차단하는 것입니다.
AWS Lightsail 서버에서 IPv4 주소를 차단하려면 다음과 같이 할 수 있습니다.
403 Forbidden
sudo iptables -I INPUT -s 195.178.110.137 -j DROP
이 명령은 해당 IP에서 서버로 들어오는 패킷을 차단합니다. 단, 서버에 직접 도달하는 IP가 실제 방문자 IP여야 합니다.
차단 확인:
sudo iptables -L INPUT -n --line-numbers
차단 해제:
sudo iptables -D INPUT -s 195.178.110.137 -j DROP
주의할 점은 이 규칙이 재부팅 후 유지되지 않을 수 있다는 것입니다. 또한 해당 IP에서 SSH로 접속 중이라면 SSH 연결도 끊길 수 있습니다.
결론: 기존 Apache 설정을 전혀 수정하고 싶지 않다면 iptables 방식이 더 적합합니다. 다만 크롤러가 IP를 자주 바꾼다면 Fail2ban이나 요청 속도 제한을 추가하는 것이 좋습니다.




