用vim打开/etc/sysconfig/iptables,我们先来看一下最终设置好apache80端口访问是什么样:
代码如下 | 复制代码 |
1、:RH-Firewall-1-INPUT - [0:0] |
这里可以理解为定义了一个链RH-Firewall-1-INPUT
代码如下 | 复制代码 |
2、-A INPUT -j RH-Firewall-1-INPUT和-A FORWARD -j RH-Firewall-1-INPUT |
这里是把INPUT和FORWARD的所有包都转发到RH-Firewall-1-INPUT,这是重点,也就意味着,只要定义好RH-Firewall-1-INPUT,就定义好了INPUT和FORWARD两个链
代码如下 | 复制代码 |
3、-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT |
允许80端口的数据包传输,这里的参数都很简单,去百度查一下就知道了
好了,就这么简单,一个80端口的防火墙设置就弄好了~~
那么如何屏蔽来自某个特定国家的 IP 呢?
方法很容易,先到 IPdeny 下载以国家代码编制好的 IP 地址列表,
比如下载 cn.zone:
# wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
有了国家的所有 IP 地址,要想屏蔽这些 IP 就很容易了,直接写个脚本逐行读取 cn.zone 文件并加入到 iptables 中:
代码如下 | 复制代码 |
#!/bin/bash # Block traffic from a specific country # written by vpsee.com COUNTRY = “cn” if [ "$(id -u)" != "0" ]; then resetrules() { resetrules for c in $COUNTRY IPS = $($EGREP -v “^#|^$” $country_file) exit 0 |