10、7 iptables语法

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。
语法: iptables [options] [参数]
Options:
-n:不针对IP反解析主机名
-v:显示更详细的信息
-t:指定表(iptables命令默认作用于filter表,如iptables -t filter/nat -nvL)
-L:显示信息
-F:清空所有规则
-A/D:=add/delete,添加/删除一条规则
-I:插入一条规则
-p:指定协议,可以是tcp,udp或icmp
--sport:跟-p一起使用,指定源端口
--dport:跟-p一起使用,指定目标端口
-s:指定源IP(可以是一个IP段)
-d:指定目的IP(可以是一个IP段)
-j:后面跟动作(ACCEPT表示允许包;DROP表示丢掉包;REJECT表示拒绝包)
-i:指定网卡
-Z:把包以及流量计数器清零(清空表中pkts及bytes两列数据)
-P:=pre,预设策略

iptables命令选项输入顺序:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
查看规则:iptables -nvL(重启 service iptables restrat,也可恢复为/etc/sysconfig/iptables中保存的配置)

2b1800e82b65ec9928fce8a1b315adba4c9.jpg

iptables规则配置文件:/etc/sysconfig/iptables
清空规则:iptables -F

cb4651ef552b8b5fd621c4512ec7fca76ee.jpg

注: 该命令不会清除配置文件内的规则!当更改规则后需要执行命令‘service iptables save’将其保存到配置文件。

增加一条规则(-A/I):iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP/REJECT(DROP直接丢弃,REJECT查看该包并返回拒绝信息)

d4f80a8af74452c32053f10c8113796dfcc.jpg

说明: 增加一条规则,当IP~192.168.188.1、协议为tcp、端口为‘1234’的向IP~192.168.188.128、端口为80的机器发送包时执行操作:drop(丢掉包)。
注: 该命令也可以把-A换成-I,两者的区别类似于排队和插队,两种方法插入的规则优先级不同。-I插入到表中第一行,如iptables -I INPUT -p tcp --dport 80 -j DROP。-A是放在表中最后一行。放在前面的命令会优先执行。
删除一条规则(-D)
方法1: 知道规则的内容:iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP

90597287d8521d205fc556713cf51f9b5f1.jpg

注: 要删除一条规则时,必须和插入的规则一致,也就是说,两条iptables命令除了-A/I和-D不一样外,其他地方都一样。

方法2: 忘记规则内容
首先所以用以下命令查看规则序号:iptables -nvL --line-number

3e613c294cdf300c73c9a710a922127d3fe.jpg

然后再执行删除命令:iptables -D INPUT 序号

05f449f0f6be9b9fa7a38800687b5eb344f.jpg

更改预设策略(-P):iptables -P OUTPUT DROP

7aa6e5c7edb658245fd408d31a38c90d5d2.jpg

 

注意: 尽量不要随意更改该配置,尤其是在进行远程登录时,一旦执行该命令后将会断开连接。这个策略设定后只能用需要回到主机上执行命令:‘iptables -P OUTPUT ACCEPT’来恢复成原始状态,这个规则不要随意更改,保持默认就好。

扩展
1. selinux教程:http://os.51cto.com/art/201209/355490.htm
2.selinux pdf电子书:https://pan.baidu.com/s/1jGGdExK

 

iptables filter表小案例

放行80、21、22端口。22端口指定ip段可访问,拒绝其他网段。

 

vim /usr/local/sbin/iptables.sh

 

#!/bin/bash

ipt="/usr/sbin/iptables"

$ipt -F

$ipt -P INPUT DROP

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT

$ipt -A INPUT -p tcp —dport 21 -j ACCEPT

 

sh /usr/local/sbin/iptables.sh

 

其中

$ipt -P INPUT DROP

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

设置了INPUT、OUTPUT、FORWARD的默认规则。

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT表示允许以下端口,在端口状态为ESTABLISHED(保持连接状态)及RELATED(关联状态,在已有ESTABLISHED状态后,再产生一个与ESTABLISHED状态连接(有关系但不是其本身)之外的连接。)时,允许其通信的数据包通过。

 

icmp

iptables -I INPUT -p icmp --icmp-type 8 -j DROP

禁止外网ping本主机

转载于:https://my.oschina.net/u/3867322/blog/1845446

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值