이 간단한 스크립트 파트 2를 사용하여 iptables로 나만의 방화벽 만들기

Firewall_ (네트워킹)

안녕하세요 여러분, 오늘 저는 iptables가있는 방화벽에 대한이 튜토리얼 시리즈의 두 번째 부분을 가져 왔습니다. 복사하여 붙여 넣을 수 있도록 매우 간단합니다. 하루가 끝나면 모든 초보자가 찾거나 심지어 가장 경험이 많은 사람이 찾는 것이라 생각합니다. 바퀴를 100 번 재발 명해야 하죠?

이번에는 방화벽이 OUTPUT DROP 정책으로 훨씬 더 공격적이기를 원하는지 여부에 대한 매우 구체적인 사례에 초점을 맞추도록 지시합니다. 이 게시물은 또한이 페이지와 내 게시물의 독자의 요청에 따른 것입니다. (내 마음 속에 wiiiiiiiiiiiii)

Output Drop 정책을 설정하는 "장단점"에 대해 조금 이야기 해 봅시다. 제가 말씀 드릴 수있는 것은 작업을 훨씬 더 지루하고 힘들게 만든다는 것입니다. 정책을 잘 생각하고 설계하고 계획하려면 훨씬 더 안전한 서버를 갖게됩니다.

주제에서 벗어나지 않기 위해 규칙이 얼마나 많거나 적어야하는지 예를 들어 빠르게 설명하겠습니다.

iptables -A 출력 -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT
-A 우리가 규칙을 추가했기 때문에
-o 아웃 바운드 트래픽을 참조하면 인터페이스가 모두 일치하므로 지정되지 않은 경우 배치됩니다.
-스포츠 원산지 포트는 중요한 역할을합니다. 대부분의 경우 요청을 할 포트를 모르기 때문에 dport를 사용할 수 있습니다.
–Dport 나가는 연결이 특정 포트로만 가야한다는 것을 미리 구체적으로 알고있는 경우 대상 포트. 예를 들어 원격 mysql 서버와 같이 매우 구체적인 것이어야합니다.
-m state – 상태 ESTABLISHED 이것은 이미 확립 된 연결을 유지하기위한 장식입니다. 우리는 향후 포스트에서 그것에 대해 탐구 할 수 있습니다.
-d 예를 들어 IP를 통해 특정 시스템에 대한 ssh와 같이 지정할 수있는 경우 대상에 대해 설명합니다.

#!/bin/bash

# iptables 테이블을 정리합니다. -F iptables -X # NAT iptables를 정리합니다. -t nat -F iptables -t nat -X # PPPoE, PPP 및 ATM과 같은 항목을위한 mangle 테이블 iptables -t mangle -F iptables -t mangle -X # 정책 나는 이것이 초보자에게 가장 좋은 방법이라고 생각하고 # 여전히 나쁘지 않습니다. # 나가는 연결이기 때문에 출력을 모두 설명하겠습니다. 입력은 모든 것을 버리고 서버는 전달하지 않아야합니다. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # 인트라넷 LAN 인트라넷 = eth0 #Extranet wan extranet = eth1 # 상태 유지. 이미 연결된 (설정된) 모든 것은 다음과 같이 둡니다. iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
# 루프 장치. iptables -A INPUT -i lo -j ACCEPT
# Iptables 루프백 출력 -A OUTPUT -o lo -j ACCEPT

# http, https, 인터페이스를 지정하지 않습니다. # 모든 iptables가되기를 원하기 때문에 -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 출발
# http, https, 우리는 인터페이스를 지정하지 않습니다.
# 모두를위한 것이지만 출력 포트를 지정하면
iptables -A 출력 -p tcp --sport 80 -j 수락 iptables -A 출력 -p tcp --sport 443 -j 수락

# ssh는 내부적으로 만이 ip의 iptables 범위에서 -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT
# output # ssh는 내부적으로 만 그리고이 IP 범위에서
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ intranet --sport 7659 -j ACCEPT
# 예를 들어 zabbix 또는 다른 snmp 서비스 iptables가 있는지 모니터링 -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
# 출발
# 예를 들어 zabbix 또는 다른 snmp 서비스가 있는지 모니터링
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ 인트라넷 --dport 10050 -j ACCEPT

# icmp, ping good은 당신의 결정입니다 iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPT
# 출발
# icmp, 좋은 핑은 당신의 결정입니다
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ 인트라넷 -j ACCEPT

#mysql with postgres is port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
# 출력-사용자가 매우 구체적인 규칙 서버를 만들도록 요청한 # 질문 : 192.168.1.2 mysql : 192.168.1.3
#postgres가있는 mysql은 포트 5432입니다.
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 -dport 3306 -o $ 인트라넷 -j ACCEPT

#sendmail bueeeh 메일을 보내려면 #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx"# ​​서버 IP-귀하의 실제 WAN IP server LAN_RANGE = "192.168.xx / 21"# 네트워크의 LAN 범위 또는 # 엑스트라 넷에 들어가서는 안되는 VLAN # IP, 순전히 WAN 인터페이스가있는 경우 # 약간의 논리를 사용하는 것입니다. # 트래픽을 입력해서는 안됩니다. 해당 인터페이스를 통한 LAN 유형 SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16"# 기본 동작-규칙이 ACTION = "와 일치 할 때 수행됩니다. DROP "# wan iptables를 통해 내 서버와 동일한 ip를 가진 패킷 -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ 엑스트라 넷 -s $ SERVER_IP -j $ ACTION

# wan에 대한 LAN 범위가있는 패킷, 특정 네트워크가있는 경우에 이렇게 넣습니다. #하지만 이것은 "for"루프 iptables 내부에서 다음 # 규칙과 중복됩니다. -A INPUT -i $ extranet -s $ LAN_RANGE -j $ 액션
iptables -A OUTPUT -o $ 엑스트라 넷 -s $ LAN_RANGE -j $ ACTION

## wan이 허용하지 않는 모든 SPOOF 네트워크는 $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A OUTPUT -o $ 엑스트라 넷 -s $ ip -j $ ACTION

다음 검토에서는 포트 범위를 수행하고 이름별로 구성된 정책을 설정할 것입니다. 여러분의 의견과 요청을 기다리고 있습니다.


기사의 내용은 우리의 원칙을 준수합니다. 편집 윤리. 오류를보고하려면 여기에.

코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.