Linux从入门到精通——firewalld和iptables

####firewalld和iptables###

防火墙是内核上的一个插件

火墙有两种:firewalld 和
iptables
   都通过iptables往内核写入数据

      

一.firewalld

firewall域:
   trusted home internal work public external dmz block drop

      

1.关于iptables

yum install iptables
   systemctl stop firewalld       ##关闭火墙
   systemctl mask firewalld.service    ##冻结火墙

iptables -nL               ##查看服务情况,显示策略
   Chain INPUT (policy ACCEPT)
   target     prot opt source               destination        
   ACCEPT     all  -- 
0.0.0.0/0           
0.0.0.0/0            state
RELATED,ESTABLISHED
   ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
   ACCEPT     all  -- 
0.0.0.0/0           
0.0.0.0/0          
   ACCEPT     tcp  -- 
0.0.0.0/0           
0.0.0.0/0            state NEW tcp
dpt:22

REJECT     all  -- 
0.0.0.0/0           
0.0.0.0/0            reject-with
icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
   target     prot opt source               destination        
   REJECT     all  -- 
0.0.0.0/0           
0.0.0.0/0            reject-with
icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
   target     prot opt source               destination

2.火墙的使用

systemctl stop iptables.service        ##关闭iptables
   systemctl mask iptables.service           ##冻结iptables
   systemctl unmask firewalld.service      ##解冻firewalld   
   systemctl start firewalld.service           ##开启firewalld

      

cmd命令:
   firewall-cmd --state           ##查看火墙运行状态
   firewall-cmd --get-active-zones     ##查看正在使用的区域
   firewall-cmd --get-default-zone     ##查看当前默认区域
   firewall-cmd --get-zones       ##查看所有可使用区域
   firewall-cmd --zone=public --list-all   ##查看public域的允许的服务和开启的端口以及地址伪装功能的状态,和一些策略
   firewall-cmd --get-services     ##查看所有能设定的服务
   firewall-cmd --list-all-zones      ##查看所有区域的所有服务和端口
   firewall-cmd --set-default-zone=dmz     ##设定当前默认区域为非军事区

      

      

      

      


指定区域针对网段和设备进行操作:

   firewall-cmd --permanent --zone=internal --add-source=172.25.254.110    ##指定110的默认域为internal,并永久保存
   firewall-cmd --permanent --zone=internal --remove-source=172.25.254.110    ##将指定的110的域删除
   firewall-cmd --permanent --zone=internal --add-internal=eth0

##指定eth0这个端口的域为internal
   firewall-cmd --permanent --zone=internal --change-public=eth0

##更改eth0这个端口的域为public
   firewall-cmd --permanent --zone=internal --remove-interface=eth0

##删除eth0这个端口的域

      

      

指定区域针对服务和端口域进行操作:
   firewall-cmd --permanent --zone=public --add-service=http

##在publlic域中永久设定添加http服务
   firewall-cmd --permanent --zone=public --remove-service=http
   firewall-cmd --zone=public --list-ports

##列出public所有端口  
   firewall-cmd --permanent --zone=public --add-port=8080/tcp
   firewall-cmd --permanent --zone=public --remove-port=8080/tcp

      

   注意:加--permanent参数的要使设定生效需要重新加载火墙
   firewall-cmd --reload

/etc/firewalld/zones
   可以在该目录中修改对应区域名.xml文件,来添加或删除服务,编辑完后要重启服务或重加载

/lib/firewalld/services
   现在默认的firewalld域,系统会将etc下的默认域的文件,移动到lib下执行

想要更改或添加服务要在etc下的文件里面改,这个是永久的;用命令添加的是暂时的,想要永久要加 --permanent,并且重启服务

firewall-cmd --reload  ##重新加载,但是如果有程序正在运行,也不会阻止程序运行
   firewall-cmd --complete-reload  ##比较强制重新加载,但是如果有程序正在运行,就会立即阻止程序运行

3.directory rules

通过firewall-cmd工具,可以使用--direct选项在运行时间里增加或者移除链。

三表五链

访问本机的数据,经过内核的数据filter

不经过本机内核的东西,数据转换nat

包含所有数据(前两个所有数据)等到前两个表格不够用的时候才使用mangle

firewall-cmd --direct --get-all-rules  ##获取全部的链
   firewall-cmd --direct --add-rule ipv4 filter INPUT 2 -s 172.25.254.110 -p tcp
--dport 22 -j ACCEPT  ##添加一条链在filter的INPUT的下面,设定源110访问22端口时是允许的
   firewall-cmd --direct --add-rule ipv4 filter INPUT 2 ! -s 172.25.254.110 -p tcp
--dport 22 -j ACCEPT    ##添加一条链在filter的INPUT的下面,设定除了源110以外的所有源访问22端口时是允许的
   firewall-cmd --direct --remove-rule ipv4 filter INPUT 2 -s 172.25.254.110 -p
tcp --dport 22 -j ACCEPT
   firewall-cmd --direct --remove-rule ipv4 filter INPUT 2 !  -s 172.25.254.110 -p tcp --dport 22 -j
ACCEPT

      

      

4.icmp-block

用这个命令阻绝一个或者多个ICMP类型。ICMP类型是firewalld支持的ICMP类型之一。比如 ping 172.25.254.110 就是用的ICMP

firewall-cmd --get-icmptypes   ##查看icmp含有的命令

firewall-cmd
--add-icmp-block=destination-unreachale 
##ping不通该主机的ip

firewall-cmd
--add-icmp-block=echo-request  ##ping不了

firewall-cmd --add-icmp-block=echo-request
--timeout=5   ##刚开始ping不通,5秒以后就能ping通

5.地址伪装与源地址转换

firewall-cmd --add-masquerade      ##开启地址伪装功能

      

firewall-cmd
--add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.10    ##所有通过22端口访问110主机,都会被转到10这个主机上面

      

      

firewall-cmd --add-rich-rule="rule family=ipv4 source
address=172.25.254.100 masquerade"   
##ip隐藏,比如说就是我的ip是10,我通过110这个主机的去连接100这台主机,在100这台主机上用 w -i 命令查看到的ip是110的,而不是10的
      

6.路由器功能 masquerade

两个在不同网络区域内的电脑,比如192想要ping通172这个网段的,需要通过一个路由器做一次地址转换

测试前:

(1)用desktop当作路由器

要开通地址伪装功能,还需i要两块虚拟网卡,设定两个虚拟网卡的ip,一个为192的,另一个为172的。

(2)用server当作测试主机

修改server的ip为192的,并修改网关为192的

systemctl restart network

route -n   ##查看网关是否添加成功

测试:

(1)用server刚开始的时候ping 172是ping不通的

(2)在desktop里面

firewall-cmd --permanent
--add-masquerade  ##开启地址伪装功能

sysctl -a | grep forward  ##查看一些功能是否开启

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

net.ipv4.ip_forward = 1

firewall-cmd --reload

      

二.iptables

1.iptables的启用
   systemctl stop firewalld
   systemctl mask firewalld   ##冻结firewalld
   systemctl start iptables   ##如果显示冻结,用unmask先打开
   systemctl unmask iptables  
   systemctl start iptables

      

2.iptables的应用
   iptables -nL        ##查看所有表的情况
   iptables -t nat -nL ##查看nat表的情况
   iptables -F             ##刷新策略(仅清空链中规则)
   iptables -N redhat      ##添加自定义链名
   iptables -D redhat      ##删除自定义链下的策略
   iptables -X redhat      ##删除自定义链
   iptables -E rehdat      ##修改名称
   iptables --state        ##查看状态
   iptables -i lo          ##设置端口进来
   iptables -o eth0        ##设置从网络接口eth0出去
   iptables -s             ##source 来源
   iptables -A             ##增加
   iptables -I             ##插入 某一链表的第几行
   iptables -R             ##替换
   iptables -P             ##修改默认

      


3.重新写入策略(数据优化)

(1)清空原有策略,并添加新的策略并保存

vim /etc/sysconfig/iptables  ##策略存放的路径

iptables -F    ##(清空)刷新原有的策略

cat /etc/sysconfig/iptables   ##查看后发现,原有策略被清空

      

      

(2)加入新的策略

iptables -A INPUT -m state --state
RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -m state --state new
-p tcp --dport 22 -j ACCEPT

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

iptables -A INPUT -m state --state new
-p tcp --dport 53 -j ACCEPT

iptables -nL    ##查看新添加的策略

service iptables save  ##保存添加的策略

iptables -nL    ##新策略添加成功

cat /etc/sysconfig/iptables  ##查看策略

      

      

原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9497226.html

时间: 2024-10-24 11:12:04

Linux从入门到精通——firewalld和iptables的相关文章

【转】Linux从入门到精通——运维工程师成长路线图——CTO马哥Linux视频教学

加油! http://edu.51cto.com/roadmap/view/id-2.html#6853467-sqq-1-36881-57ccc7d95ea58df839decd91bd220170 [转]Linux从入门到精通--运维工程师成长路线图--CTO马哥Linux视频教学

linux从入门到精通(第2版)pdf高清版免费下载

下载地址:网盘下载 备用地址:网盘下载 内容简介编辑Linux是目前增长最迅速的操作系统.<Linux从入门到精通>由浅入深.循序渐进地向读者介绍Linux的基本使用和系统管理.全书内容包括Linux概述.Linux安装.Linux基本配置.桌面环境基本操作.Shell基本命令.文件和目录管理.软件包管理.磁盘管理.用户与用户组管理.进程管理.网络配置.浏览网页.收发邮件.文件传输和共享.远程登录.多媒体应用.图像浏览和处理.打印机配置.办公软件的使用.Linux编程工具.Shell编程.服务

linux从入门到精通(第2版)下载 &#493590;

下载地址: http://www.gqylpy.com/di/14 <Linux从入门到精通(第2版)>PDF高清完整版-下载 内容简介 编辑 Linux是目前增长最迅速的操作系统.<Linux从入门到精通>由浅入深.循序渐进地向读者介绍Linux的基本使用和系统管理.全书内容包括Linux概述.Linux安装.Linux基本配置.桌面环境基本操作.Shell基本命令.文件和目录管理.软件包管理.磁盘管理.用户与用户组管理.进程管理.网络配置.浏览网页.收发邮件.文件传输和共享.远

Linux从入门到精通——企业网络安装

####企业网络安装### 目的:批量部署服务器 通过TFTP通过网络共享文件 在服务器端:  安装并配置dhcp的配置文件 systemctl stop firewalld     ##特别重要,要关掉 yum install dhcp -y cp /usr/share/doc/dhcp-4.2.5/dhcp.conf.example /etc/dhcp/dhcpd.conf vim dhcpd.conf ##27和28以及35行以后删除 ##195 option domain-name "s

Linux从入门到精通——Linux下的文件寻址及文件管理

一.Linux的系统结构 Linux是一个倒树型的结构,最大的目录是"/"(根目录),而根目录下的二级目录多为系统在安装过程中建立的. 二.文件的管理命令 在Linux中一个重要的思想就是可以把所有东西都当成文件来处理,所以在Linux学习中对文件的处理是极为重要的,下面将讲述如何对文件进行管理 1.建立文件 touch  file 注意: touch不但可以建立文件也可以修改文件的时间戳,时间戳分为: atime:文件内用被访问的时间标识 mtime:文件内容被修改的时间标识 cti

Linux从入门到精通——Linux中文件的权限

一.文件权限存在的意义 给文件设定权限是Linux系统最底层安全设定方法之一,因为Linux是多人多任务的操作系统,很可能是不同的多个人在使用同一台主机,为了安全文件权限机制是必须的,它保证文件可以被可用的用户做相应的操作,也保证文件不会被没有不可用用户进行操作. 二.文件权限的查看 使用的命令为: ls -l    file   或   ll   file ls -ld   dir   或   ll-d   dir ## ll=ls-l ## 三.文件权限的读取 从上图的一行字符串中举例,具体

Linux的基本指令-Linux从入门到精通第二天

文章大纲 一.指令与选项二.基础指令(重点)三.进阶指令(重点)四.学习资料下载五.参考文章 一.指令与选项 什么是Linux的指令?指在Linux终端(命令行)中输入的内容就称之为指令. 一个完整的指令的标准格式:Linux通用的格式 #指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项操作对象也可以是多个 例如:需要让张三同学帮忙去楼下小卖铺买一瓶农夫山泉水和清风餐巾纸,在这个指令中“买东西”是指令的主体,买的水和餐巾纸是操作的对象,农夫山泉.清风是操作的选项. 二.

Linux自有服务(1)-Linux从入门到精通第五天

文章大纲 一.运行模式二.用户与用户组管理(重点)三.网络设置四.ssh服务(重点)五.学习资料下载六.参考文章 自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置). 一.运行模式 运行模式也可以称之为运行级别.在linux中存在一个进程:init (initialize,初始化),进程id是1.查看进程:#ps -ef|grep init 该进程存在一个对应的配置文件:inittab(系统运行级别配置文件,位置/etc/inittab)文件的主要内容

linux从入门到精通学习-NFS

NFS网络文件系统 功能 nfs[network file system] 网络文件系统 是FreBSD系统支持的一种系统,允许在网络 上与其它人共享使用文件或文件夹 采用C/S模式 端口号 在vim /etc/services文件中查询端口号 默认为20049 安装nfs 服务端使用:yum install nfs-utils –y 客服端使用:mount 或showmount 配置文件 /etc/exports 查看服务和端口状态 service  nfs status netstat  -