이전 글에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!