iptables防火墻管理

iptables防火墙规则的顺序非常重要,内核按顺序检查这些规则,如果发现有匹配的股则条目,则立刻执行相关动作,停止继续向下查找规则条目,如果所有的防火墙规则都未能匹配成功,则按照默认策略处理。使用-A选项添加防火墙规则会将该规则追加到整个链的最后,而使用-I选项添加的规则则默认会插入到链中作为第一条规则。

1、安装iptable iptable-service

CentOS7默认的防火墙不是iptables,而是firewalle.安装方法如下

#先检查是否安装了iptables

service iptables status

#安装iptables

yum install -y iptables

#升级iptables

yum update iptables

#安装iptables-services

yum install iptables-services

2、禁用/停止自带的firewalld服务

#停止firewalld服务

systemctl stop firewalld

#禁用firewalld服务

systemctl mask firewall

3、打开/关闭/重启防火墙

开启防火墙(重启后永久生效):chkconfig iptables on

关闭防火墙(重启后永久生效):chkconfig iptables off

开启防火墙(即时生效,重启后失效):service iptables start

关闭防火墙(即时生效,重启后失效):service iptables stop

重启防火墙:service iptables restartd

4、iptables参数说明

4.1常用参数:

-A 追加规则-->iptables -A INPUT

-D 删除规则-->iptables -D INPUT 1(编号)

-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)

-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT插入一条规则,原本位置的规则将会往后移动一个顺位

-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则

-N 新的规则-->iptables -N allowed 定义新的规则

-Z 将所有链中的数据包和字节计数器归零,或仅将给定链或链中的给定规则归零

4.2通用参数:

-p 协议  例:iptables -A INPUT -p tcp

-s源地址 例:iptables -A INPUT -s 192.168.1.1

-d目的地址 例:iptables -A INPUT -d 192.168.12.1

-sport源端口 例:iptables -A INPUT -p tcp --sport 22

-dport目的端口 例:iptables -A INPUT -p tcp --dport 22

-i指定入口网卡 例:iptables -A INPUT -i eth0

-o指定出口网卡 例:iptables -A FORWARD -o eth0

4.3 参数-j 指定要进行的处理动作

常用的ACTION:

DROP:丢弃

REJECT:明示拒绝

ACCEPT:接受

SNAT基于原地址的转换

source--指定原地址

5、State模块中“连接"状态

对于state模块的连接而言,“连接"其中的报文可以分为5种状态,报文状态可以为NEW、ESTABLISHED、RELATED、INVALID、UNTRACKED

5.1 NEW:

连接中的第一个包,状态就是NEW,我们可以理解为新连接的第一个包的状态为NEW。

5.2 ESTABLISHED:

我们可以把NEW状态包后面的包的状态理解为ESTABLISHED,表示连接已建立。或许用图说话更容易被人理解。

5.3 RELATED:

从字面上理解RELATED译为关系,但是这样仍然不容易理解,我们举个例子。

比如FTP服务,FTP服务端会建立两个进程,一个命令进程,一个数据进程。

命令进程负责服务端与客户端之间的命令传输(我们可以把这个传输过程理解成state中所谓的一个"连接”,暂称为"命令连接")。数据进程负责服务端与客户端之间的数据传输 ( 我们把这个过程暂称为"数据连接" )。但是具体传输哪些数据,是由命令去控制的,所以,"数据连接"中的报文与"命令连接"是有"关系"的。那么,"数据连接"中的报文可能就是RELATED状态,因为这些报文与"命令连接"中的报文有关系。(注:如果想要对ftp进行连接追踪,需要单独加载对应的内核模块nf_conntrack_ftp,如果想要自动加载,可以配置/etc/sysconfig/iptables-config文件)

5.4 INVALID:

如果一个包没有办法被识别,或者这个包没有任何状态,那么这个包的状态就是INVALID,我们可以主动屏蔽状态为INVALID的报文。

5.5 UNTRACKED:

报文的状态为untracked时,表示报文未被追踪,当报文的状态为Untracked时通常表示无法找到相关的连接。

6、查看打开的端口

[root@MASServer]# /etc/init.d/iptables status

7、保存修改,防止重启失效

7.1 Centos6版操作命令

[root@linux ~]# service iptables save  

7.2 Centos7版操作命令

[root@linux ~]# iptables-save > /etc/sysconfig/iptables  #centos7版本的操作命令

[root@linux ~]# vim /etc/rc.local

/usr/sbin/iptables-restore </etc/sysconfig/iptables

[root@linux ~]# chmod 755 /etc/rc.d/rc.local

centos7在安装iptables-server服务时,防火墙规则默认保存再/etc/sysconfig/iptables文件,重启系统时会自动加载,在未安装iptables-server服务时,需在/etc/rc.local开机加载。

8、iptables备份与还原

默认的iptables防火墙规则会立刻生效,但是如果不保存,当计算机重启后,所有的规则将会丢失,所以需要即时保存。iptables软件包提供了两个非常有用的工具,iptables-save和iptables-restore,可以方便的处理大量的防火墙规则。Centos7系统中的防火墙规则默认保存再/etc/sysconfig/iptables文件中,使用iptables-save将规则保存至该文件中实现保存防火墙规则的作用,重启后会自动加载该文件中的规则。如果使用iptables-save将规则保存到其他位置,可以实现备份防火墙规则的作用。当防火墙规则需要做还原时,可以使用iptables-restore将备份文件直接导入当前防火墙规则。

[root@linux ~]# iptables-save > /etc/sysconfig/iptables

[root@linux ~]# iptables-save > firewall.bak  备份

[root@linux ~]# iptables-restore < firewall.bak  还原

9、列出所有规则

[root@linux ~]# iptables -L

10、列出链所有的规则及num编号

[root@linux ~]# iptables -L -n --line-number

11、将规则3改成DROP

[root@linux ~]# iptables -R INPUT 3 -j DROP

12、删除第3条规则

[root@linux ~]# iptables -D INPUT 3  

13、删除nat表中postrouting的第一条规则

[root@linux ~]# iptables -t nat -D POSTROUTING 1

14、清空nat表POSTROUTING所有规则

[root@linux ~]# iptables -t nat -F POSTROUTING

15、清空 filter表INPUT所有规则

[root@linux ~]# iptables -F INPUT

16、设置filter表INPUT默认规则是 DROP

[root@linux ~]# iptables -P INPUT DROP

17、清除预设表filter中的所有规则链的规则

[root@linux ~]# iptables -F

18、清除预设表filter中使用者自定链中的规则

[root@linux ~]#iptables -X

19、重启防火墙

/etc/init.d/iptables restart

20、通过配置文件设置防火墙

我们还可以通过修改/etc/sysconfig/iptables文件的方式开启端口,如下:

vim /etc/sysconfig/iptables  然后在文件中增加一行

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT

21、开启端口21

iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

22、打开49152~65534之间的端口

iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT  

同样,这里需要对设置进行保存,并重启防火墙。

23、禁止IP访问某个端口

注:连续多个端口用:分隔

iptables -I INPUT -s 122.144.131.60 -ptcp --dport 8500 -j DROP

24、许IP访问8501端口

iptables -D INPUT -s 192.168.0.232 -ptcp --dport 8501 -j DROP(方法1)

iptables -I INPUT -s 192.168.0.232 -ptcp --dport 8501 -j ACCEPT(方法2)

25、禁止IP访问服务器任何服务

iptables -I INPUT -s 218.204.253.59 -m state --state NEW,RELATED,ESTABLISHED -j DROP

26、禁止IP段访问服务器任何服务

iptables -I INPUT -s 218.204.253.0/24 -m state --state NEW,RELATED,ESTABLISHED -j DROP

27、只允许远程主机访问本机的80端口

iptables -A INPUT -m state --state NEW-m tcp -p tcp --dport 80 -j ACCEPT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哝小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值