특정 국가의 모든 트래픽을 차단하는 비교적 쉬운 방법은 무엇입니까?


16

필리핀에 사용자가없는 웹 앱이 있지만 스패머, 카더 테스트 카드 및 기타 원치 않는 활동에 지속적으로 영향을받습니다. 로그에 필리핀에 IP가 있고 처음에는 google.ph 또는 다른 .ph사이트 를 통해 내 사이트를 찾고 있음을 알 수 있습니다.

나는 꽤 좋은 필터와 보안 검사를 갖추고 있으므로 실제로 많은 피해를 입히지는 않지만 그럼에도 불구하고 정말 피곤합니다. 그들은 대역폭을 사용하고, 내 데이터베이스, 남용 로그 및 보안 로그를 쓰레기로 채우고, 시간 용어 계정 등을 낭비합니다.

필리핀 시민의 대다수는 스패머가 아니며, 나를 귀찮게하는 모든 국가를 차단할 수는 없지만이 시점에서 솔루션은 단순히 필리핀에서 웹 애플리케이션으로의 모든 트래픽을 차단하는 것이라고 생각합니다. (전체 국가의 IP 차단을 차단하는 것은 좋은 습관이 아니며 많은 문제가 있지만이 나라에서는 예외를 만들고 싶습니다.)

(나는 그들이 그들의 IP 주소를 스푸핑 할 수 있다는 것을 알고 있지만, 적어도 그것들을 조금 작동시킬 수 있습니다.)

나는 몇 개의 geoip 서비스가 있다는 것을 알고 있습니다. 무료 또는 저렴한 서비스를 아는 사람이 있습니까? 아니면 특정 국가의 트래픽을 걸러내는 다른 방법이 있습니까?

중요한 경우 Apache 2에서 PHP를 실행하고 있습니다.


2
유효한 질문입니다.
crashmstr 2016 년

crashmstr : 그렇게 생각합니다. 국가 전체를 차단하고 차단하기 위해 이러한 유형의 조치를 취하면 잠재적 스패머를 차단하는 것보다 더 많은 잠재적 인 사용자를 차단하게됩니다. 스패머가 자신의 국가와 같이 차단하고 싶지 않은 지역에서 오기 시작하면 이전의 모든 방법이 낭비 되었기 때문에 깊은 부두에있을 것입니다.
TheTXI 2016 년

아마도 아무 것도-현재의 보안은 잘 처리됩니다. 응답하기 전에 질문을 읽으십시오.

<p> 스패머가 다른 국가에서 유입되기 시작하면 (또는 미국을 통해 트래픽을 라우팅하는 것이 더 좋을까요?) </ p>
TheTXI

1
필리핀은 미국, 영국, 캐나다 및 호주 옆에있는 주요 영어권 국가 중 하나입니다. 호주를 금지하는 것 이상으로 금지하지 말 것을 강력히 권합니다. 물론, 사이트는 국가별로 다릅니다. 그러나 그것이 닷컴보다 국가 별 TLD를 가지고 있다면 사람들은 당신이 그들과 거래하지 않는다는 것을 알게 될 것입니다.
Lee B

답변:


8

IPInfoDB http://ipinfodb.com/index.php와 같은 무료 IP Locatin API를 사용하여 IP 주소를 기반으로이를 수행 할 수 있습니다.


28

여기에있는 다른 대부분의 포스터와는 달리, 나는 이것이 나쁜 생각이고, 그렇게하지 말아야하거나, 문제를 해결하지 못하거나, 다른 것을해야한다고 말하지 않을 것입니다. 우리에게 일어난 일은 다음과 같습니다.

중국과 한국에서 온 사람들 (또는 어쨌든 중국과 한국에서 프록시 사용)은 우리를 계속 귀찮게했습니다. Portscanning, 웹 사이트를 크롤링하여 취약점 검색, 로그인 시도 등. 나는 그것들을 무시하려고 시도했지만 (fail2ban은 보통 그들을 돌 보았습니다), 어떤 시점에서 그들은 우리를 너무나 강하게 맞아 효과적으로 DoS 공격으로 바뀌 었습니다. 웹 서버를 프록시로 사용하려는 사람들, 컴퓨터에 SSH를 시도하거나 임의의 사용자 이름 및 암호를 시도하는 사람들로부터 한 번에 수백 개의 연결이 이루어지면 사이트에서 무게가 나가는 경향이 있습니다. 나는 결국 지쳤다.

우리는 중국이나 한국에서 합법적 인 트래픽을 얻지 못합니다. 우리 회사는 전자 상거래이기 때문에 판매하지 않기 때문에 합법적 인 트래픽을 잃을 위험이 없으므로 성가신 사람들을 기다리지 않고 미리 차단하는 것이 더 쉽다고 생각했습니다.

  1. http://ip.ludost.net/을 방문 하여 IP <-> 국가 데이터베이스를 다운로드했습니다.
  2. 모든 중국어 및 한국어 IP 주소 범위를 추출했습니다.
  3. netfilter 용 ipset 모듈 설치
  4. 중국 및 한국 용 ipset 덤프 내장 (아래 참조)
  5. 해당 세트의 트래픽을 자동으로 삭제하기 위해 iptables에 규칙을 추가했습니다.

그리고 그게 다야. 문제가 발생한 사용자들은 네트워크에 부하가 걸리고 서버가 줄어들었고 크리스마스 시즌에도 어려움을 겪지 않았습니다.

참고 1 : 일반 iptables (예 : ipset없이) 로이 작업을 수행 할 수 있지만 ipset을 사용하는 것보다 계산 비용이 많이 듭니다.

참고 2 : 덤프의 모양입니다 (원하는 경우 ipset에서이를 생성합니다).

# Generated by ipset 2.3.3 on Sat Oct  4 18:02:57 2008
-N china nethash --hashsize 5184 --probes 4 --resize 50
-A china 203.207.128.0/17
-A china 221.176.0.0/13
-A china 58.154.0.0/15
-A china 114.54.0.0/15
...etc...

참고 3 : 모든 범위가 CIDR 블록으로 저장되므로 nethash를 사용합니다. CIDR로 변환하지 않으려면 대신 iptreemap을 사용할 수 있지만 트래픽이 많을 경우 효율성이 떨어질 수 있습니다.


2
내가 원하는 것은 중국이나 한국과 같은 나라를 막는 것이나 그 문제에 대해 어느 곳에서나 다른 언어를 사용하는 사람들을 막는 것이 아니라는 것입니다. 저는 미국 시민입니다. 회사에서 물건을 구매하고 싶을 때 한국에서 봉사하고 있기 때문에 고객으로 나를 잃었습니다. 그래, 거기 합법적 인 교통이 있습니다.
GNUix

16
우리가 한국으로 배송하지 않기 때문에 어쨌든 아무것도 팔 수 없으므로 웹 사이트를 방문하는 데 아무런 의미가 없습니다. 우리는 중국이나 한국의 어느 누구도 물건을 사거나 미국으로 선적 한 적이 없었기 때문에 손실 된 판매 건수는 분석 결과 1 년에 10 건에이를 것으로 예상됩니다.
Dan Udey

2

코드의 버그를 어떻게 수정합니까?

그렇게?

버그 : Add (2,2)는 0을 반환하고 4를 반환해야합니다.

고정 코드 :

int Add(int x, int y)
{
   if (x == 2 && y == 2)
      { return 4; }
   return 0;
}

당연히 아니. 당신은 특별한 사건에 대한 격렬한 괴물을 만들지 않을 것입니다. 또한 근본 문제의 오늘 증상을 패치하지는 않습니다.

대신 근본 원인을 찾아서 수정하십시오. 이것은 구현할 수있는 해키 스페셜 케이스 패치보다 훨씬 강력합니다.

웹앱이 스팸에 취약한 이유는 무엇입니까? 어떤 특성이 취약합니까? 어떤 특성이 소중한 목표가됩니까? 스팸에 대비하여 앱을 더욱 강력하게 만들고 유혹적인 대상을 줄이기 위해 이러한 특성을 변경할 수있는 방법이 있습니까? 이 질문들에 대한 답은 거의 그렇습니다. 폼에 유효성 검사 체인을 추가하고, 보안 문자를 지능적으로 사용하고, URL 및 / 또는 매개 변수 이름을 무작위로 지정하여 봇에게 친숙하지 않게 만드십시오. 이 문제에 접근하는 수백만 가지 방법이 있습니다. 가장 가치 있고 유용하지 않으며 가장 취약한 솔루션 중 하나를 선택했다고 유감입니다.


15
고마워요. 답변을 작성하기 전에 실제로 게시물을 읽었습니까?
Eli

1
@ 엘리, 분명히 당신이 있습니다. 그렇기 때문에 급진적 인 조치로 되돌아갑니다. 이전의 노력이 너무 효과적 이었기 때문입니다.
웨지

1

첫째, 나는 이것을하지 않는 것이 좋습니다.

다른 사람들이 훨씬 더 설득력있게 말해서 특정 국가를 차단한다고해서 문제가 해결되지는 않으며, 약간 지연시킵니다. 또한, 그 나라의 사용자는 차단 한 볼 때 그들을 당신을 유발하는 동기를 부여 유일한 것, 특히 문제.

당신이 경우 말했다, 정말 이 작업을 수행 할 수, IPinfoDB는 , 무료 IP의 위치 정보 데이터베이스를 제공

첫째, 국가별로 IP를 찾는 것입니다.

이 방법으로 검색합니다 :

SELECT * FROM `ip_group_country` where `ip_start` <= INET_ATON('74.125.45.100') order by ip_start desc limit 1;

또는

SELECT * FROM `ip_group_country` where `ip_start` <= 1249717504 order by ip_start desc limit 1;

둘째, iptable, htaccess 파일 또는 사용하는 모든 것을 사용하여 차단 목록을 생성하기 위해 특정 국가의 IP를 얻을 수 있습니다. 다음과 같이 수행됩니다.

SELECT `ip_cidr` FROM `ip_group_country` WHERE `country_code` = 'AF' order by ip_start;

그것은 당신에게 줄 것입니다 :

63.243.149.0/24
67.212.160.0/24

0

스팸 시도가 진행 중임을 나타내는 웹 응용 프로그램에서 발생하는 오류를 차단하려면 fail2ban과 같은 제품을 사용해야합니다. 이렇게하면 일정 시간 동안 IP가 차단되어 사이트를 보호하지만 전체 IP 블록을 블랭킷 차단하지는 않습니다.


3
아무도 읽지 않은 게시물에서 말했듯이 스팸을 차단하고 방지하는 완벽한 시스템이 있습니다. 해야 할 작업량과 모니터링 시간을 줄이고 자합니다.
Eli

그래서 fail2ban을 제안했습니다. 큰 IP 블록을 무차별 적으로 차단하지 않고도 문제의 IP를 자동으로 차단합니다.
Kevin Kuphal

0

몇 가지 솔루션 :

이 솔루션은 매우 쉽고 빠르며 무료입니다.

장기적인 해결책은 웹 응용 프로그램에서 스팸을 탐지하고 IP를 기록한 다음 iptables를 공급하여 자동으로 차단하는 것입니다.


0

공격을 받고있는 네트워크를 운영하는 사람을 찾는 것을 고려 했습니까? 후이즈를 사용하여 "학대"연락처를 찾아 그들에게보고하십시오. 물론 여러 네트워크에서 나올 수 있지만 반복되는 주소 / 네트워크 블록이 있으면 그만한 가치가 있습니다.


4
아시아의 ISP (특히 중국, 한국 등)와 거래를 시도한 적이 있다면, 그들이하지 않는 한 가지는 외국인이 무언가에 대해 불평하는 것입니다. 제대로하지 않은 시간을 할 가치가 없습니다. 악용 사례 신고는 시간 낭비가됩니다.
Dan Udey

저는 한국에 있으며 한국 ISP에 대한 즐거운 경험이 없었습니다.
GNUix

0

당신은 모든 당신이 자신을 정당화 할 어떤 이유에서 IP 주소를 차단하는 권리를. 서비스를 제공하는 것은 귀하이며 귀하가 서비스를받을 수있는 사람을 결정하는 것은 귀하입니다. 이것이 도덕적이라면 의문의 여지가 있지만 그것은 당신이 스스로 결정할 수있는 것입니다.

그러나 지리적 인 측면이 있기 때문에 IP 세그먼트를 차단하는 것은 다소 공황 적 접근과 비슷합니다.

내가 과거에 한 일은 크롤러가 가장 최근의 로그를 통과하고 24 시간 동안 성가신 개별 IP를 금지하는 것입니다. 특정 IP가 다시 잘못 작동하면 2 일, 3 일 등 동안 금지됩니다.

일주일 이상 금지 된 IP는 나에게 우편으로 보내질 것이며 나는 그 서비스 제공자에게 도움이 될 수도있는 남용 메일을 보낸다.


0

나는 이와 같은 것을 동적으로 유지할 수있는 Snort + OSSEC 솔루션을 선택합니다.


이것이 안전한 VPN입니다.
Andrew Ensley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.