防火墙设置Netfilter/Iptables

生成保存文件
/etc/sysconfig/iptables

iptables 是一种基于包过滤的防火墙
iptables -t filter -A INPUT -p tcp --dpoort 23 REJECT
iptables [-t 要操作的表]<操作命令>[要操作的链][匹配条件][-j 匹配到以后的动作]

包过滤中包含3个表
1.filter table 过滤表
   INPUT 主要与封包要进入我们Linux本机有关
   OUTPUT 主要与我们Linux本机所要送出的封包有关
   FORWARD 与Linux本机比较没有关系,他可以封包[转递]到后端的计算机,与nat这个table相关性很高
2.nat,用于地址转换 主要跟nat主机设定有关
   PREROUTING:在进行路由判断之前所要进行的规则
   POSTROUTING: 在进行判断之后所要进行的规则
   OUTPUT:与发送出去的封包有关
   
filter 表时缺省的表。
在我们使用iptables something 的时候等同于命令 iptables -t filter something

规则和链
每个链中的规则是按顺序的,处理一个包时,从第一条规则到最后一条规则,依次匹配

iptables -F 清除所有规则
iptables -L 列出当前所有规则
 
ACCEPT 接受
DROP 丢弃,岂之不理。别人可以判断出你的系统使用了防火墙
REJECT 弹回 ,貌似根本没有打开这个端口
 
iptables -t filter -A INPUT -p tcp --dport 21 -j REJECT
iptables -t filter -A INPUT -s 193.168.0.2 -c icmp -j REJECT
iptables -t filter -A INPUT -s 192.168.9.254 -p icmp -j DROP
iptables -L INPUT

匹配条件
流入、流出接口(-i, -o) 网卡 eht0
来源、母的地址(-s, -d)IP
协议类型(-p) TCP、UDP、ICMP
来源、目的端口(--sport、--dport)

--source-port=--sport
--dport=--destination-port
 
iptables -t fitler -A INPUT -s 192.168.0.2 -p tcp --sport 22 -j REJECT
iptables -t fitler -A OUTPUT -d 192.168.0.2 -dport 22 -j REJECT

-D 删除规则
iptables -D OUTPUT 2
iptables -D OUTPUT 1

iptables -t nat -L
iptables -L INPUT 列出所有fitler表中的INPUT规则

iptables -F 命令
iptables -t filter -F INPUT
iptables -t filter -F OUTPUT

iptables -t nat -F

对比性匹配的扩展
通过-m参数来调用,主要用法有
基于mac地址的匹配 -m mac
基于封包数量的匹配 -m limit
基于uid,gid的限制 -m owner

基于MAC地址的匹配
iptables -A INPUT -p tcp -dport 23 -m mac --mac-source 物理地址 -j REJECT
仅仅对RREROUTING 和 INPUT 链起作用

允许没秒通过一个icmp包
iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT
超过的部分全部拒绝
iptables -A INPUT -p icmp -j DROP

-m owner 参数
-m owner --uid-owner $AN_UID
iptables -A OUTPUT -p tcp --dport 23 -m owner --uid-owner 500 -j REJECT
iptables -A OUTPUT -p udp --dport 23 -m owner -gid-owner 500 -j REJECT
-m owner 仅仅对OUTPUT链有效

web服务器实例
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
-P 链设置默认的target(可用的是DROP 和ACCEPT,如果还有其它的可用,请告诉我),这个target称作策略。所有不符合规则的包都被强制使用这个策略

禁止用户访问域名为www.taobao.com的网站
iptables -I FORWARD -d www.taobao.com -j DROP
禁止ip为192.168.1.200客户机上网
iptables -I FORWARD -s 192.168.1.200 -j DROP
禁止192.168.1.0所有的客户机使用FTP协议下载
iptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport 21 -j DROP


-I, --insert
Example     iptables -I INPUT 1 --dport 80 -j ACCEPT
Explanation     根据给出的规则序号向所选链中插入规则。如果序号为1,规则会被插入链的头部,其实默认序号就是1。

iptables -I

iptables -I FORWARD -p tcp --dport 8000 -j DROP
iptables -I FORWARD -p udp --dport tcpconn.tencent.com -j DROP

你可能感兴趣的:(防火墙设置Netfilter/Iptables)