본문 바로가기

OS/Linux

리눅스 방화벽 iptables - 3/3

Stand Alone 기준의 방화벽 스크립트 샘플 입니다. 웹 과 DNS 서비스는 모든곳에 허용하며 기타 SSH, FTP, Rsync 등은 특정 IP 대역에만 허용하는 룰 입니다.

 #!/bin/bash
/sbin/iptables -F
#################### 1. INPUT From NET #########################
#### 1) Global Config
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -s ! 192.168.10.0/24 -p tcp --dport 22 -j LOG --log-prefix “FW_INPUT_22”
#### 2) For Administrator
/sbin/iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport ftp -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport ftp-data -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport 873 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.10.0/24 -p icmp --icmp-type echo-request -j ACCEPT
#### 3) For Service
/sbin/iptables -A INPUT -s 0/0 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -s 0/0 -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -s 0/0 -p udp --dport 53 -j ACCEPT

##################### 2. OUTPUT From local #####################
#### 1) Global Config
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
#### 2) For Local Server
/sbin/iptables -A OUTPUT -d 0/0 -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.10.0/24 -p tcp --sport ftp -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.10.0/24 -p tcp --sport ftp-data -j ACCEPT
/sbin/iptables -A OUTPUT -d 0/0 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -d 0/0 -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -d 0/0 -p udp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT

####################### Default Policy #########################
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P INPUT  DROP