서비스 오픈하기 전에 내부에서 먼저 웹을 띄워보고(외부는 접근못하게 한 후), 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에 대해서의 요청은 방화벽을 지날 수 있도록 한다.
# 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를 적어준다.
);
192.1688.14.0/24
# 내부 ip를 적어준다.
);
my @monitor = qw(
# 모니터링 Ip를 적어준다. 보통 l4나 토파즈같은 녀석이다.
);
# 모니터링 Ip를 적어준다. 보통 l4나 토파즈같은 녀석이다.
);
foreach $ip (@ifconfig_iplist) {
chomp $ip;
`/sbin/iptables -I INPUT -p tcp -s $ip -j ACCEPT`;
}
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`;
}
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`;
}
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`;
`/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 |
CPAN 이용하기 (0) | 2008.09.27 |
펄에서 특정 패턴 확인하기 (0) | 2008.07.17 |
반올림(또는 버림) 함수 (0) | 2008.06.07 |