firewalld服务在企业7以上的版本,,是一款类似于windows界面的可以图形化设置防火墙策略的工具。
一.firewalld服务的安装与启用
yum install firewalld ##安装firewalld服务
systemctl start firewalld ##启用firewalld服务
systemctl enable firewalld ##设置开机自动启动
二.firewald域
三.图形管理工具
firewall-config ##打开图形管理工具
1永久添加53端口到public域,完成后重新加载:
点击port–>>add–>>53–>>tcp–>ok完成添加。
左上角选择permanent永久生效,
完成后Options–>Reload Firewalld 重新加载
2.添加服务
添加http服务,点击server 相应的服务前点击勾中,重新加载即可
3.添加/删除新域,仅仅针对自定义域
左下角“+“新建域,“-“删除域
4.server栏中是各服务对应的协议和端口号
四.命令管理模式
1.基本命令
firewall-cmd --state ##查看firewall服务当前状态
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管控的所有服务
firewall-cmd --list-all-zones ##列出所有域
firewall-cmd --set-default-zone=trusted ##设置默认域为trusted
firewall-cmd --get-services ##查看firewall管控的所有服务
所有服务的信息控制:/usr/lib/firewalld/services/*.xml,这些服务也是firewalld服务所能管理的所有服务
2.1在默认域名为public的情况下,该域无httpd策略,trusted也无httpd策略,客户机1,客户机2均无法访问httpd服务,添加httpd服务到trusted后,public虽无httpd服务策略,但两台客户机均能访问htppf服务
实验环境:服务端: eth0:192.168.0.210;eth1:172.25.254.210
客户端1: 172.25.254.51
客户端2:192.168.0.110 网关:192.168.0.210
为实验效果安装htppd服务,添加默认网页index.html
yum install httpd
echo "<h1>eth1:172.25.254.210</h2><br><h1>eht0:192.168.0.210</h1>" > /var/www/html/index.html
2.2firewalld策略:服务器网卡管控实验
默认域public 激活网卡接口eth0:192.168.0.210,无httpd服务,trusted添加httpd服务,激活网卡eth1:172.25.254.210 ,这时客户端1: 172.25.254.51可以访问httpd服务, 客户端2:192.168.0.110无法访问,因为httpd服务在域trusted也就是说任何相同主机都可以访问该域的服务,且通过该域的eth1172.25.254.210网卡接口传输数据,所以客户机1:172.25.254.51可以访问httpd服务,客户主机2:192.168.0.210,首先通过服务主机eth0:192.168.0.210接口进入内核,但是eth0:192.168.0.210网卡接口由public域管控,该域无httpd服务,所以客户机192.168.0.110无法访问httpd
firewall-cmd –set-default-zone=public ##设置默认域为public
firewall-cmd –add-interface=eth0 –zone=public ##添加网口eth0到public域
firewall-cmd –add-interface=eth1 –zone=trusted ##添加网口eth1到trusted域
firewall-cmd –add-service=httpd –zone=trusted ##添加服务httpd到trusted域
firewall-cmd –list-all (–zone=public) ##列出(当前域)所有的策略
firewall-cmd –get-active-zones ##查看当前激活域
2.3remove掉public域的eth0,添加到trusted域上 ,也就是说trusted域中,有httpd服务,eth0,eth1,当然不论那台主机都可以访问了
2.4在上述基础上,改变eth1到public域上,trusted域保留eth0:192.168.0.210,这时客户主机1:172.25.254.51会无法访问httpd服务
3.1对指定ip或网段的控制:
在2.3实验中客户主机172.25.254.51是无法访问httpd服务的,策略如下,
通过设置特定网段来是172.25.254.51使用httpd服务,使用该域
4.1服务端口的控制
firewalld读取服务信息的文件:/usr/lib/firewalld/services/*.xml
以httpd服务为例说明
vim /etc/httpd/conf/httpd.conf
--->>port 8080
vim /usr/lib/firewalld/services/http.xml
--->>port 8080
systemctl restart httpd
systemctl restart firewalld
客户端2:192.168.0.110测试:firefox http://192.168.0.210:8080
vim /etc/httpd/conf/httpd.conf
vim /usr/lib/firewalld/services/http.xml
systemctl restart httpd
systemctl restart firewalld
注意:因为之前的设置都是临时的,重启firewalld后设置会失效,重新设置策略
客户主机172.25.254.51测试:
4.2不改/usr/lib/firewalld/services/http.xml中的端口,使用默认端口80,改动 /etc/httpd/conf/httpd.conf端口为8080,实验中 –permanent永久设定,
5.ssh控制
在没有从public域中remove ssh服务,之前客户机ssh连接上服务器,remove ssh服务之后,已经链接上的shell还能继续使用,在重新开一个shell却无法链接了
!
6.firewall高级管理 (默认域public)
(vim /usr/lib/firewalld/services/http.xml
-->>port 80) 不用改上边的实验已经改为80了
vim /etc/httpd/conf/httpd.conf
--->>port 80 要改上边的实验此配置文件端口为8080
systemctl restart httpd
netstat -antlpue | grep httpd 查看80端口状态。处于开启状态
firewall-cmd --add-service=http --permanent --zone=public
firewall-cmd --reload
实验前两台主机都能访问httpd服务
firewall-cmd --direct --get-all-rules ##查看rules
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 172.25.254.51 -p tcp --dport 80 -j REJECT ##添加rules
firewall-cmd --direct --get-all-rules ##查看rules
192.25.254.110主机可以使用http服务
172.25.254.51主机不能访问http服务
实验完成后
firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -s 172.25.254.51 -p tcp --dport 80 -j REJECT ##删除rules
firewall-cmd --direct --get-all-rules
###firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 192.168.0.0/24 -p tcp --dport 80 -j REJECT 表示非192.168.0.0网段的用户无法访问80端口
7.ssh服务转到指定主机
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewall-cmd --permanent --zone=public --add-forward- port=port=22:proto=tcp:toport=22:toaddr=172.25.254.10
###firewall-cmd --permanent --zone=public --remove-forward- port=port=22:proto=tcp:toport=22:toaddr=172.25.254.10 移除策略
客户主机192.168.0.110ssh远程连接172.25.254.210主机会转到172.25.254.51上
8.地址伪装
实验前执行以下代码,清除环境上边实验的环境
firewall-cmd --permanent --zone=public --remove-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.10
firewall-cmd --permanent --remove-masquerade
firewall-cmd --reload
添加规则
firewalld-cmd --add-rich-rule='rule family=ipv4 masquerade'
客户主机ip192.168.0.110,但连接172.25.254.51却显示是172.25.254.210连接的
五.tcpwarp
实验前清除法环境
ssh —>firewalld –>> tcpwrap –>>守护进程 —>>service本身 —>>selinux —>>文件系统
ldd /usr/sbin/sshd
—libwrap.so.0 查看,有这个文件表示受tcpwrap保护,htpp服务不受此保护
受tcpwarp保护的服务在/etc/hosts.allow和 /etc/hosts.deny管控
vim /etc/hosts.deny
—>>ALL:ALL 拒绝服务列表,ALL:ALL表示所有服务,所有主机
vim /etc/hosts.allow (优先)
—>>sshd:172.25.254. EXCEPT 172.25.254.10 sshd服务对172.25.254.网段开放,除了172.25.254.10用户,该用户无法访问sshd服务
当/etc/hosts.allow和 /etc/hosts.deny冲突时以/etc/hosts.allow为准
实验: /etc/hosts.allow
客户主机172.25.254.51 尝试ssh root@172.25.254.210 成功
客户主机172.25.254.10 尝试ssh root@172.25.254.210 失败
1监控sawnp
vim /etc/hosts.allow (优先)
—>>sshd:172.25.254. :spawn echo date from %c to %s | mail -s warning root
有用户登录的话发送邮件给root用户 mail 查看邮件 /var/spool/mail/root
vim /etc/hosts.allow (优先)
—>>sshd:172.25.254. :spawn echo date from %c to %s > /dev/pts/num ##[num] 由shell ps查看,有用户登陆的话,直接在root用户shell命令行后,显示信息
vim /etc/hosts.allow (优先)
—>>sshd:172.25.254. :spawn echo date from %c to %s >> /logfile
登陆信息到指定文件
六.守护进程
以telnet为例
yum install xinetd 安装守护进程服务
yum install telnet-server (telnet服务端)
yum install telnet (telnet客户端)
systemctl start xinetd.service
vim /etc/xinetd.d/telnet
--->>service telnet
{
socket_type = stream
protocol = tcp
user = root
server = /usr/sbin/in.telnetd (rpm -ql telnet 查看)
disable = no
flags = REUSER
wait = no
}
systemctl restart xinetd
systemctl restart telnet.socket
重启失败查看22端口若LISTEN则表示已经开启
natstat -anplute | grep 22
服务器本地测试(非root用户)
守护进程主配置文件,对所有受守护进程管控的服务都适用,实验前关闭firewalld服务
/etc/xinetd.conf
vim /etc/xinetd.conf
—->>
13 # enabled = ##启用守护进程
14 # disabled = ##关闭守护进程
23 # no_access = ##用户黑名单
24 # only_from = ##用户白名单
25 # max_load = 0 ##连接最大负载 %0
26 cps = 3 10 ## 第一个num表示同一时间最多3个连接数连,大于该数目(3)的用户则无法连接需要等待10秒后处理
27 instances = 10 ##最大连接个数为10(!同一ip)
28 per_source = 5 ##同一个ip能够建立的连接个数5
systemctl restart xinetd.service
对于字配置文件同样适用/etc/xinetd.conf/*
七.selinux对服务端口的控制
1-1024系统默认使用端口
以httpd服务为例,改httpd服务端口为6666,完成后重新启动会报错,查看selinux 状态为enforcing,设置selinux为警告状态重启成功
vim /etc/httpd/conf/httpd.conf
—LISTEN port 6666
systemctl restart httpd 重启
setenforce 0
systemctl restart httpd
—>>重其成功
在selinux 为enfocing状态,使httpd服务正常使用,方法
setenforce 1
semanage port -a -t port_type -p tcp 6666
systemctl restart httpd
本文链接:https://www.kinber.cn/post/748.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: