总体来说iptables可以有二种设置
1.默认允许,拒绝特别的
2.默认拒绝,允许特别的
二者都有自己有特点,从安全角度看 个人偏向于第二种,就是默认拒绝,允许特别的.但iptalbes 默认是第一种 默认允许,拒绝特别的
你可以用命令改变默认值来达到我们的要求 命令如下
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
你再用iptables -L查看一下就会觉得默认值以改了
先来谈炎几个参数XZFL
-F 清除规则
-X 清除链
-Z 将链的记数的流量清零
一般来说 再创建访问规则时 都会将原有的规则清零 这是一个比较好的习惯,因为某些规则的存在会影响你建的规则.
基本语法:
iptables [-t filter] [-AI INPUT,OUTPUT,FORWARD] [-io interface]
[-p tcp,udp.icmp,all] [-s ip/nerwork] [--sport ports]
[-d ip/netword] [--dport ports] [-j ACCEPT DROP]
以上是iptables的基本语法
A 是添加的意思
I 是播入的意思
io 指的是数据要进入或出去所要经过的端口 如eth1 eth0 pppoe等
p 你所要指定的协议
-m state
-s 指源地址 可是单个IP如192.168.2.6 也可以是一个网络 192.168.2.0/24 还可以 是一个域名 如163.com 如果你填写的域名系统会自动解析出他的IP并在iptables里 显示
--sport 来源端口
-d 同-s相似 只不过他指的是目标地址 也可以是IP 域名 和网络
--dport 目标端口
-j 执行参数 ACCEPT DROP
注意:如果以有参数存在 则说明全部接受
1 如我要来自己l0接口的数据全部接受,我们可以写成这样:
iptables -A INPUT -i lo -j ACCEPT
2 如果我们想接受192.168.2.6这个IP地址传来的数据我们可以这样写
iptablse -A INPUT -i eth1 -p tcp -s 192.168.2.6 -j ACCEPT
3 如果我们要拒绝来自己192.168.2.0/24这个网的telnet连接
iptablse -A INPUT -i eth1 -p udp -s 192.168.2.0/24
--sport 23 -j DROP
#!/bin/bash
export PATH=/bin:/sbin:/usr/bin
port=$(awk -F ' ' '/^Port/{print $2}' /etc/ssh/sshd_config)
if [ $port == '' ]
then
exit 0
else
/sbin/iptables -F
iptables -P INPUT DROP
iptables -A INPUT -p all -m state --state INVALID -j DROP
iptables -A INPUT -p icmp --icmp-type any -j DROP ##禁PING
#baofoo
iptables -A INPUT -p tcp --dport 80 -s 202.107.192.35 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 202.107.192.40 -j ACCEPT
#google crawler4j
iptables -A INPUT -p tcp --dport 80 -s 218.245.3.241 -j DROP
iptables -A INPUT -p tcp --dport 80 -s 218.245.3.193 -j DROP
iptables -A INPUT -p tcp --dport 80 -s 182.227.20.18 -j DROP
#deny hgp2p jlsj locoy.com
iptables -A INPUT -p tcp --dport 80 -s 27.54.227.50 -j DROP
iptables -A INPUT -p tcp --dport 80 -s 61.191.55.91 -j DROP
iptables -A INPUT -p tcp --dport 80 -s 192.186.229.167 -j DROP
iptables -A INPUT -p tcp --dport 80 -s 210.83.80.21 -j DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -s localhost -d localhost --dport 6050-j ACCEPT
iptables -A INPUT -p tcp --dport $port -j ACCEPT
iptables -A INPUT -s localhost -d localhost -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
fi
本文深入探讨iptables的两种设置方式及其特点,并提供iptables的基本语法和常用参数介绍。通过示例展示如何创建访问规则,包括如何清除原有规则、指定协议、源地址、目标地址、端口及执行操作。最后,通过bash脚本实例演示了如何实现特定的安全策略,例如过滤特定IP和端口的访问。

被折叠的 条评论
为什么被折叠?



