서비스 오픈하기 전에 내부에서 먼저 웹을 띄워보고(외부는 접근못하게 한 후), QA 확인 체크한 후, 오픈하고 싶을 때가 있다.

그럴 때는 보통 다음의 방법을 사용한다.
1.  도메인이 오픈 시간에 오픈한다.
2. 티져를 먼져오픈해놓고, 오픈 시간에 진짜 웹 서비스를 배포한다.
3. 도메인 신청이 되어 있지만, 아직 보여주고 싶지 않을 때는 아파치를 내리기

이 외에 웹 어플리케이션은 그대로 두고, 방화벽으로 막는 경우가 있다. 다른 것에 비해서 미리 준비시키게 하고, 단순히 스크립트만 실행하면 되기 까닭에 편한 부분이 존재한다.

(웹 오픈 80 및 8080 포트 막기) 스크립트
closeweb.pl
#!/usr/bin/perl
# 이 스크립트는 리얼 프로젝트가 오픈하기 전에 방화벽을 열어
# 특정 서버에 대해서만 리얼 서버에 접근하여 테스트할 수 있도록 만들어진 스크립트이다.
# 정책은 다음과 같다.
# 1) ifconfig를 이용하여 ip정보를 얻어서 방화벽을 넘을 수 있도록 허용한다.
# 2) monitor ip(CIO 토파즈 서버들에 대해서 방화벽을 넘어올 수 있도록 허용한다.
# 3) permitted ip는 localhost, L4, host ip에 대해서의 요청은 방화벽을 지날 수 있도록 한다.

my $string=`/sbin/ifconfig | grep 'inet addr' | awk '{print \$2}'`;
my @ifconfig_iplist = $string =~ /addr:(\d+.\d+.\d+.\d+)/g;
#print $_, "\n" foreach(@array);
@permitted = qw(
192.1688.14.0/24
# 내부 ip를 적어준다.
);
my @monitor = qw(
# 모니터링 Ip를 적어준다. 보통 l4나 토파즈같은 녀석이다.
);
foreach $ip (@ifconfig_iplist) {
    chomp $ip;
    `/sbin/iptables -I INPUT -p tcp -s $ip -j ACCEPT`;
}
foreach $ip (@monitor) {
    chomp $ip;
    `/sbin/iptables -I INPUT -p tcp -s $ip -j ACCEPT`;
}
foreach $ip (@permitted) {
    chomp $ip;
    `/sbin/iptables -I INPUT -p tcp -s $ip -j ACCEPT`;
}
`/sbin/iptables -A INPUT -p tcp --dport 80 -j DROP`;
`/sbin/iptables -A INPUT -p tcp --dport 8080 -j DROP`;

 



웹 오픈이 개시되면, 기존의 방화벽을 오픈해 주면 된다.
openweb.pl
#!/usr/bin/perl
my $result = `/sbin/iptables -F`;

 

'perl' 카테고리의 다른 글

Download Perl module(CPAN)  (0) 2009.07.31
remote shell command  (0) 2009.07.31
웹 막음, 오픈 (서비스 오픈 전에 사용)  (0) 2009.07.31
CPAN 이용하기  (0) 2008.09.27
펄에서 특정 패턴 확인하기  (0) 2008.07.17
반올림(또는 버림) 함수  (0) 2008.06.07
Posted by 김용환 '김용환'

댓글을 달아 주세요