Apache, Tomcat IP 접근제한
아시는 분이 많으시겠지만, IP 접근제한에 대해서 물어보는 팀원이 있어서 정리했습니다. 최근에는 보안인식이 고취되어서 많은 사람들이 관심이 있네요. 많이 사용되는 Apache, Tomcat 환경에서 IP 기반 접근제어 방법은 다음과 같습니다.
Apache IP 접근제한
Apache 환경설정파일 httpd.conf 파일에 아래의 내용을 추가하고 재시작
<Directory "/disk_1/www/sample" >
AllowOverride all
Order allow,deny
Allow from 192.168.10.11
Deny from all
</Directory>
Order Deny,Allow 의 경우
Allow 를 평가하기 전에 먼저 Deny 를 평가하고, 그 다음 Allow 에 override 함. 그리고 여기에 매치되지 않는 나머지 호스트 모두 Allow 됨. 따라서 이 Order 의 기본정책은 첫번째 Deny 지시자에서 결정함
Order Allow,Deny 의 경우
Deny 를 평가하기 전에 먼저 Allow 를 평가하고, 그 다음 Deny 에 override 함. 그리고 여기에 매치되지 않은 나머지 호스트는 모두 Deny 됨. 이 Order 의 기본정책은 첫번째 Allow 지사자에서 결정함.
참고 : http://httpd.apache.org/docs/2.2/howto/access.html
Tomcat IP 접근제한
Tomcat 환경설정파일 server.xml 의 <Host> ... </Host> 안에 아래의 내용을 추가하고 재시작
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1,192.168.10.4"/>
또는
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="거부할 IP"/>
참고 : http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html
IPTABLES IP 접근제한
iptables -I INPUT -s 65.24.7.10 -j DROP
iptables -A INPUT -s 192.168.100.0/24 -j DROP
iptables -I INPUT -m iprange --src-range 65.24.7.10-6524.7.13 -j DROP
hosts.deny, hosts.allow IP 허용/차단
/etc/hosts.deny
#모든서비스 접근제한
ALL:ALL
# ssh 접근 제한
SSHD : 65.0.12.4
/etc/hosts.allow
#모든서비스 접근허용
ALL:ALL
# ssh 접근 허용
SSHD : 65.0.12.4, .mycompany.com