Linux系统管理初步(四)Linux系统的防火墙-netfilter 编辑中

一、Linux的防火墙

防火墙是日常应用中一个重要的维护内容,从防火墙开始我们才真正接触生产环境,网络安全越来越受重视,学好这部分内容是学好运维的重要一步。

一般情况下,桌面级环境中很少有人关注过防火墙,甚至杀毒软件都不装,对防火墙的操作当然不熟悉。真实生产环境中不可能不开防火墙。

linux的防火墙在centos6(含)前是netfilter,centos7开始使用新的firewalld,一般的我们从netfilter学起,firewalld是兼容netfilter的规则的。

二、netfilter学习环境搭建

因为centos7默认的防火墙是centos7,所以我们先要把firewalld停用,然后在换成centos6的netfiler,前期准备工作:关闭selinux、关闭centos7带的firewalld然后启动netfilter。

(一)关闭selinux功能

1、临时关闭

setenforce 0 关闭命令
getenforce 查看selinux状态命令

只要确认getenforce状态是Permissive就可以了。只是暂时关闭,系统重启后仍会开启,需要通过修改配置文件方式永久关闭。

2、永久关闭
永久关闭该功能需要修改selinux的配置文件

vi /etc/selinux/config


将SELINUX=enforcing改为disabled
注意不能改成下面那个SELINUXTYPE=disabled,否则系统会启动不了。

(二)关闭centos7的firewalld

systemctl stop firewalld #关闭firewalld功能
systemctl disable firewalld #停止firewalld开机启动

操作截图


这一步不像上面那步有操作过程提示,只要没报错就ok了。

(三)启动centos6或者5支持的netfilter防火墙

yum install iptables-services #安装netfilter功能,也就是常说的iptables,注意包名末尾是iptables和services复数形式,敲成iptables-service就没这个包
systemctl enable iptables #设置开机启动iptables服务
systemctl start iptables #开启iptables程序
iptables -nvL #查看iptables的默认规则

操作截图


1是设置开机启动,2是在当前bash下启动iptables,3是查看iptables的默认规则。

三、netfilter的表(table)与链条(chain)

netfilter使用5个表与5个链条控制网口传输过来的包的,哪些需要丢弃,哪些允许进来等等。

5个表分别是:
filter:主要用于过滤数据包,是系统预设的表。内含3个链:INPUT、OUTPUT、FOWARD,就是说数据包只要在这三个链中,你就可以用filter表中的规则来处理他。
nat:主要用于网络地址转换,内含3个链:PREROUTING、OUTPUT、POSTROUNTING。
mangle:主要用于给包做标记,然后根据标记处理包。内含全部五个链
raw:可以用来设定不被系统跟踪的数据包,这个表可以指定某些端口进来的数据不被跟踪。内含2个链:PREROUNTING和OUTPUT
security:在Centos6中没有,用于强制访问控制的网络规划,暂时先不研究。

5个链分别是:
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARDING:通过路由表后,目的地不为本机。
OUTPUT:由本机产生,向外转发。
POSTROUTING:发送到网卡接口前

netfilter启动后,网络数据包在系统中的流向图:(转载至wiki)

四、iptables命令

iptables用于操控netfilter防火墙,他能直接添加、修改或者删除PREROUTING、INPUT、FORWARDING、OUTPUT、POSTROUTING5个链中的规则,达到过滤数据包的目的

iptables命令写法

iptables -t 表名 <-A/I/D/R> 链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

选项含义
-t<表>:指定要操纵的表;
-A:向链规则中添加条目;
-D:从链规则中删除条目;
-I:向链规则中插入条目;
-R:替换链规则中的条目;
-L:显示链规则中已有的条目;
-F:清空防火墙规则;
-Z:清空链规则中包计数器与连接计数器;
-N:创建新的用户自定义规则链;
-P:定义链规则中的默认处置方式,如;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型,;
-s:指定要匹配的数据包源ip地址;
-j+动作:如何处理过滤出来的包,常见的有ACCEPT,;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
--dport
--sport

表名包括:

raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
nat:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。

链名包括:

INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。

动作包括:

ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录

五、iptables操作示例

1、显示、清空与保存操作现有的netfilter规则

iptables -nvL #显示现有规则,分表显示的
iptables -F #清空所有规则
iptables -Z #置零计数器,用于网络攻击分析
service iptables save #将规则保存到/etc/sysconfig/iptables文件中
systemctl restart iptables.service #重启iptables服务使指定的规则生效

iptables的默认规则保存在/etc/sysconfig/iptables文件下

2、链处理规则的增加、删除与修改

防火墙规则添加到链规则尾部

iptables -A INPUT

防火墙规则添加到链规则头部

删除防火墙某一条规则

修改防火墙默认链处理规则

3、

原文地址:http://blog.51cto.com/11934539/2065176

时间: 2024-11-05 12:33:12

Linux系统管理初步(四)Linux系统的防火墙-netfilter 编辑中的相关文章

Linux系统管理初步(二)io、free、ps、netstat命令 编辑中

10.6 监控io性能10.7 free命令10.8 ps命令10.9 查看网络状态10.10 linux下抓包 一.iostat与iotop命令 iostat命令与iotop,命令能够看出系统磁盘的工作情况,及时发现磁盘问题,这两个工具不是系统自带的,分别需要yum安装其中iostat命令与前一篇博客中提到的sar命令在同一个(sysstat)包里,如果能使用sar命令就能使用iostat命令.安装命令 yum install epel 先安装epel扩展源yum install syssta

Linux系统管理初步(一)w、vmstat、top、sar、nload命令

在实际工作中,系统部署上线后最常用的命令就是管理类命令,就像医生通过检查了解身体状况,系统管理命令能够让我们知道系统的运行状态,在此基础上解决系统运维中发现的各种问题. 一.w命令 w - Show who is logged on and what they are doing.w命令是系统管理员最常用的命令.命令能显示系统的各项参数,谁在线上等等.具体我们逐行了解w命令下各行的含义红框中第一行是当前时间,第二项"up 9 min"是服务器开机时间,图示为9分钟:第三项是登陆用户数,

Linux系统管理初步(七)系统服务管理、chkconfig与systemd 编辑中

Linux系统本身包含了很多服务,CentOS6之前系统的服务用SysV控制,CentOS7改为systemd控制 一.chkconfig服务管理机制 简而言之,chkconfig就是CentOS6以前用来控制系统服务的工具,常用方法举例chkconfig --list #列出所有的系统服务.chkconfig --add httpd #增加httpd服务.chkconfig --del httpd #删除httpd服务.chkconfig --level httpd 2345 on #设置ht

Linux系统管理初步(三) Linux网络管理(一)(编辑中)

Linux网络管理(一) 一.ifconfig命令ifconfig命令可以显示网卡及ip参数,在centos6中是比较重要的命令. 使用示例:1.网卡停止与网卡启动 ifdown (网卡名)ifup (网卡名) 注意ifdown命令不能再xshell终端中单独用,不然会中断你的连接,如果是跑着业务的服务器就只能让人到机房去启动网卡了.下述实验都是在vmware的虚拟机界面中操作. 注意再用ifconfig看时,ip地址信息没了.再用ifup命令把网卡开起来,恢复工作了. 2.给一个网卡设置多个i

Linux系统管理初步(六)设置计划任务

定时任务就是设定系统按固定时间执行某个操作,可能是执行一条命令,删除XX文件,或者是执行一组脚本,比如备份数据文件等等.该部分内容不难,但对于日常运维十分重要. 一.命令crontab 选项: -u <user> 指定某个用户,不加为当前用户,用who am i命令看-e 新建计划任务-l 列出计划任务.配合-u选项可以列出制定用户的计划任务-r 删除计划任务,注意他会把你所有的计划任务全部删掉,慎用!!!-i 删除前确认,跟rm -i一个意思 crontab的配置文件在/etc/cronta

Linux系统管理初步(八)数据备份工具rsync

rsync工具 rsync工具用于同步文件夹数据,他不同于cp命令,他可以处理实时在变更的文件,把源文件目录和目标数据目录同步,对于两个目录相同的部分数据则不会处理. 一.工具概要 命令写法研究了下SRC是source的缩写,DEST是destination的缩写 rsync -选项 源目录路径 (目标主机用户名)@目标IP地址:目标目录路径rsync -选项... SRC [SRC]... 目标路径rsync -选项... SRC [SRC]... [[email protected]]HOS

Linux系统管理初步(九)系统日志与screen程序

一.系统日志 系统日志是我们了解系统状况,服务启动情况,学会阅读日志是我们了解系统运行状况并进行管理的基本技能. (一)/var/log/messages 系统中的各种操作都会记录到系统日志中,日志储存在/var/log/目录中,日志会被系统的logrotate程序自动切割,就是日志文件达到你设定的条件时,就自动结束,然后重新生成一个文件开始记录日志. 1.查看系统日志 tail /var/log/messages 确实可以记录下不少内容的 2.通过/logrotate.conf文件配置日志记录

Linux学习笔记(四)-Linux常用命令

常用命令格式 #command(指令) [-options] parameter1(参数1) parameter2(参数2)... 大小写区分,tab自动补全 Shell特殊字符 通配符 管道Pipe:把前面进程的输出作为后面进程的输入,把前面文件的输出作为后面进程的输入 输入/输出重定向 命令帮助 Man工具就是系统帮助手册:man+命令 Info工具是一个基于菜单的超文本系统 翻页 ctrl+f:下一页 ctrl+b:上一页 more 历史记录查看 history n(指定查看最近多少条)

linux shell基础(五)sed命令(编辑中)

写shell有个步骤就是从一段文本中截取一段字符进行处理. 一.sed命令 sed是一种强大的流式编辑器 (stream editor for filtering and transforming text),它能够完美的使用正则表达式,逐行处理文本并把结果显示到屏幕上.sed的强项是替换文本中的特定字符. 用法:sed [选项]... {脚本(如果没有其他脚本)} [输入文件] sed [options] 'command' file(s) sed [options] -f scriptfil