Linux学习(二十七)iptables (一) 认识Iptables

一、Iptables

iptables其实就是我们经常说的防火墙。通过防火墙我们都能做一些什么呢?

通过防火墙我们可以过滤一些非法请求,比如恶意攻击你的网站的包。它还可以限制哪些端口的数据包可以接收,比如我们可以控制只有22端口,80端口能对外提供服务。除此之外,还可以做端口映射,等等。接下来,我们来具体学一下iptables相关的知识。

二、iptables和netfilter的关系

iptables其实是操作防火墙的工具,真正实现防火墙功能的其实是netfilter。

三、selinux

selinux也是防火墙。但是这个东西比较霸道,会影响很多服务,所以一般我们把它禁用掉。

临时禁掉:

setenforce 0

查看当前selinux状态:

[root@ruanwenwu-0002 ~]# getenforce
Disabled

如果需要永久停掉,需要修改selinux配置文件,然后重启:

vim /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   #改这里
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

四、开启iptables服务

centos7默认开启的是firewalld防火墙,如果要开启netfilter防火墙的话,需要先关闭firewalld服务。

停止firewalld服务:

systemctl stop firewalld

停止自动启动:

systemctl disable firewalld

如果你的系统不是centos7可以忽略上面的两条命令。

关闭后,就可以启动netfilter服务了。如果没有安装的话,需要先安装。

安装iptables:

yum -y install iptables-services

加入启动:

systemctl enable iptables

启动服务:

systemctl start iptables

五、认识iptables的五个表和规则链

 

最常用的是filter表和nat表。默认情况下,我们运行iptables -nvL命令默认查看的是filter表。nat表的优先级比filter的优先级要高。

规则链:

1.INPUT——进来的数据包应用此规则链中的策略
2.OUTPUT——外出的数据包应用此规则链中的策略
3.FORWARD——转发数据包时应用此规则链中的策略
4.PREROUTING——对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
5.POSTROUTING——对数据包作路由选择后应用此链中的规则
(所有的数据包出来的时侯都先由这个链处理)

六、iptables传包的过程

① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。 
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。 
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

 

原文地址:https://www.cnblogs.com/doubilaile/p/8094669.html