linux常见防火墙
#! /bin/bash
# ------------------------------------------
# File: /usr/local/sbin/firewall
# root:root, 700
# Created by Statemood, 2013.08.29
# Updated by Statemood, 2013.08.29
#
# ------------------------------------------
PORT_SSH='7168'
CORP_IP1='210.13.116.210'
CORP_IP2='122.192.65.148'
IPTABLES='/sbin/iptables'
MODPROBE='/sbin/modprobe'
KERN_MOD='ip_conntrack'
# Load Kernel modules
for mod in $KERN_MOD
do
$MODPROBE $KERN_MOD
done
# init iptables
$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -N LGDRP
# ACCEPT rules
# --------------------------------
# Default rules
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate INVALID -j LGDRP
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A LGDRP -m limit --limit 10/m --limit-burst 5 -j LOG --log-prefix "INVALID DROP " --log-ip-option --log-tcp-option
$IPTABLES -A LGDRP -j DROP
# SSH
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp -s $CORP_IP1 --dport $PORT_SSH -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp -s $CORP_IP2 --dport $PORT_SSH -j ACCEPT
# Accept Ping from $CORP_IP1
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -s $CORP_IP1 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -s $CORP_IP2 -j ACCEPT
# Coustom rules
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 8080 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 8800 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 18088 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 28088 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 38088 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 18080 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 28080 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 38080 -j ACCEPT
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 111 -j DROP
# Unmatched rules
$IPTABLES -A INPUT -j DROP
# Save rules
/sbin/service iptables save
printf "`date +'%F %T'` \033[1;33mAll rules loaded\n\033[0m"将上面另存为firewall文件
放到 /usr/local/sbin/, 执行 chown root:root /usr/local/sbin/firewall, chmod 700 /usr/local/sbin/firewall
然后执行 firewall 即可