>  기사  >  운영 및 유지보수  >  Linux의 소프트웨어 방화벽 iptables - 방화벽 설계

Linux의 소프트웨어 방화벽 iptables - 방화벽 설계

齐天大圣
齐天大圣원래의
2020-11-18 15:27:092285검색

이전 글에서는 iptables의 테이블과 체인, 규칙 체인을 추가하는 방법 등을 소개했습니다. 여기서는 간단한 방화벽 규칙을 공유하고 싶습니다. 이 문서는 주로 필터의 입력 체인에 대한 규칙을 설정합니다. 이 문서는 배운 지식을 심화하고 통합하는 데 도움이 되는 실용적인 iptables 규칙과 동일합니다.

적용 규칙은 다음과 같습니다.

  • 기존 규칙을 삭제하고 원래 규칙을 모두 삭제합니다.

  • 기본 전략을 설정하고, 필터 입력 체인의 기본 전략을 드롭으로 설정하고, 그 외 모든 항목을 수락하도록 설정합니다.

  • 이 기계를 신뢰하고, 루프백 네트워크 카드도 신뢰할 수 있도록 설정해야 합니다.

  • 호스트가 적극적으로 요청한 응답 데이터 패킷은 시스템에 들어갈 수 있습니다(설정/관련)

  • 잘못된 데이터 패킷을 거부하고 잘못된 데이터 패킷을 거부합니다(INVALID)

  • 화이트리스트, 신뢰 특정 IP 또는 네트워크 주소 등

  • 블랙리스트, 신뢰할 수 없는 IP 또는 네트워크 주소 등

  • icmp 패킷 허용, icmp 패킷 허용

  • 일부 포트, 일부 서비스 열기 포트는 포트 80, 443, 22 등과 같은 외부 세계.

우리는 iptables.rule, iptables.allow(화이트리스트), iptables.deny(블랙리스트) 문서 등 3개의 쉘 스크립트 파일을 만들 예정입니다. 이 세 파일에 대해서는 보통 /etc/iptables 디렉터리를 먼저 생성하는데, 이 세 파일이 이 디렉터리에 존재합니다.

다음으로 이 iptables.rule의 스크립트 내용을 살펴보겠습니다.

#!/bin/bash
# iptables rule

# 清楚默认规则
iptables -F
iptables -X
iptables -Z

# 修改默认策略
iptables -P INPUT  DROP
iptables -P FORWARD  ACCEPT
iptables -P OUTPUT  ACCEPT

# 信任本机
iptables -A INPUT -i lo -j ACCEPT 

# 响应数据包
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

# 拒绝无效数据包
iptables -A INPUT  -m state --state INVALID -j DROP

# 白名单
if [ -f "/etc/iptables/iptables.allow" ];then
    sh /etc/iptables/iptables.allow
fi

# 黑名单
if [ -f "/etc/iptables/iptables.deny" ];then
    sh /etc/iptables/iptables.deny
fi

# 允许icmp包
iptables -A INPUT -p icmp -j ACCEPT

# 开放部分端口
iptables -A INPUT -p tcp --dport 22  -j ACCEPT # ssh服务
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # www服务
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # ssl

# 保存规则
/usr/libexec/iptables/iptables.init save

iptables.allow의 경우 일반적으로 이 파일에 신뢰할 수 있는 IP 또는 네트워크 주소를 기록합니다. 예를 들어 호스트가 있는 LAN은 다음과 같습니다. 192.168.1.0/24, LAN에서 호스트를 신뢰하려면 이 파일에

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

라고 쓰면 됩니다. 그리고 iptables.deny는 특정 악성 IP의 트래픽이 시스템으로 들어오는 것을 차단하는 데 사용됩니다. IP 8.210.247.5, iptables.rule에

iptables -A INPUT -s 8.210.247.5/32 -j DROP

라고 적힌 파일 끝부분에 명령어를 사용하여 방화벽 규칙을 저장합니다. 이 명령어를 추가하지 않으면 해당 규칙은 0번에만 적용됩니다. .iptables를 다시 시작하거나 시스템을 다시 시작하면 이전에 설정한 규칙이 무효화됩니다.

관련 추천: "linux 강좌"

위 내용은 Linux의 소프트웨어 방화벽 iptables - 방화벽 설계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.