linux系统中部署防火墙服务
分类:
文章
•
2024-11-07 14:28:04
防火墙
防火墙:动态防火墙后台程序FireWalld提供了一个动态管理防火墙,来支持网络的zones,以分配对一个网络及相关连接和界面一定程度的信任;它支持以太网桥,并有分离运行时间和永久行配置选择。
防火墙的域:
1.trusted:允许所有的数据包
2.block:拒绝所有网络连接
3.public:用于公共区域使用,仅接受dhcpv6-client,ssh服务
4.dmz:仅接受ssh服务连接
5.drop:任何接受的网络数据包都被丢弃,没有任何恢复
防火墙:企业7版本用firewalld
一.图形化配置防火墙:
firewall-config

二.使用命令配置防火墙
命令:
1. systemctl start firewalld 打开防火墙
2. firewall-cmd --state 查看防火墙状态
3. firewall-cmd --get-active-zones 查看正在使用的域
4. firewall-cmd --get-default-zone 查看默认域是哪个
5. firewall-cmd --get-zones 查看
6. firewall-cmd --zone=public --list-all 查看public域的信息
7. firewall-cmd --get-services 查看域的所有服务
8. firewall-cmd --list-all-zones 查看所有的域
9. firewall-cmd --set-default-zone=dmz 将默认域改为dmz
10.firewall-cmd --remove-interface=eth1 删除eth1网卡
1. systemctl start firewalld 打开防火墙
2.firewall-cmd --stat查看防火墙状态

3. firewall-cmd --get-active-zones 查看正在使用的域
4. firewall-cmd --get-default-zone 查看默认域是哪个
5. firewall-cmd --get-zones 查看
6. firewall-cmd --zone=public --list-all 查看public域的信息

7. firewall-cmd --get-services 查看域的所有服务
8. firewall-cmd --list-all-zones 查看所有的域
9. firewall-cmd --set-default-zone=dmz 将默认域改为dmz

10.firewall-cmd --zone=trusted --add-source=172.25.254.107 将107主机添加进trusted域

11.firewall-cmd --zone=trused --remove-source=172.25.254.107 将107从trusted域移出

12.firewall-cmd --add-interface=eth1 添加eth1网卡
firewall-cmd --remove-interface=eth1 删除eth1网卡
三.接口控制访问不同域:
1.eth0IP:172.25.254.107
eth1IP:172.25.71.107
2.将eth0和eth1两个网卡都加在public域:

两块网卡都可ping通:


将eth1网卡从public域移出,加入block域,eth1会ping不通:
移出:


加入block域:

rth1网卡ping不通:

四.添加端口:(默认端口为80,改为8080)可以改配置文件,也可以通过命令修改
1)通过配置文件修改:
1.firewall-cmd --list-all 查看默认域详细信息

2.firewall-cmd --add-service=http 添加http服务

3.vim /etc/httpd/conf/httpd.conf 编辑配置文件更改端口
内容:
Listen 8080 将默认端口改为8080

4.systemctl restart httpd 重启服务
5.vim /use/lib/firewalld/services/http.xml 更改http端口


测试:在浏览器输入:http://172.25.254.107:8080 可以访问

2)通过命令修改:
1.firewall-cmd --set-default-zone=public 更改默认域为public
2.firewall-cmd --list-all 查看默认域详细信息

3.firewall-cmd --add-service=http 添加http服务
4.firewall-cmd --list-all 查看默认域详细信息
8.firewall-cmd --add-port=8080/tcp 更改端口
9.firewall-cmd --list-all 查看端口

测试:在浏览器输入:http://172.25.254.107:8080 可以访问

五.firewall-cmd --reload与firewall-cmd --complete-reload
1.firewall-cmd --permanent --remove-service=ssh 删除ssh服务
2.firewall-cmd --reload 刷新,当前正在使用的服务不会断

1.firewall-cmd --complete-reload 刷新,当前正在使用的服务会断

六.Iptables命令管理
内核的3张表,5条列
filter表:经本机内核的数据:input,forward,ouput
nat表:不经过本机内核的数据:input,ouput,prerouting,postrouting
mangel表:所有经过主机的数据:input,forward,ouput,prerouting,postrouting
1.显示内核三张表信息
iptables -nL 默认为filter表

Direct Rules 详细规则
1.firewall-cmd --direct --add-rule ipv4 filter INPUT 2 -p tcp --dport 8080 -s 172.25.254.71 -j ACCEPT 允许71访问

-p:类型 -s:转化成 -j:有三种: ACCEPT(接收),REJUCT(拒绝),DROP(丢弃)
Rich Rules 高级规则
伪装:在路由前
1.firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.207 目的地转化到207
2.firewall-cmd --add-masquerade 打开伪装功能

查看内核路由功能是否打开:
1. sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1 1表示打开,0表示没打开

2.vim /etc/sysctl.conf 编辑配置文件打开内核路由功能

七.端口转换:
服务端:
1.firewall-cmd --permanent --change-interface=eth1 --zone=public 将eth1端口加入域
2.systemctl restart firewalld 重启防火墙
3.firewall-cmd --add-masquerade 打开伪装功能

4. ifconfig 查看网卡和IP

客户端:
1.更改ip为:172.25.254.207,网关为:172.25.254.107
2.ping 172.25.71.107 可以ping通
八.企业7之前用:iptables
1.管理命令:
1.systemctl stop firewalld 关闭firewalld
2.systemctl mask firewalld 冻结firewalld
3.yum search iptables 查找iptables软件包
4.yum install iptables-services.x86_64 -y 安装软件
5.systemctl start iptables.service 打开软件
6.systemctl enable iptables.service 设置开机打开

7.iptables -nL 列出信息-n不做解析
8.iptables -t nat -nL 查看nat表
9.iptables -t mangle -nL 查看mangle表

2.制定策略:制定规则从前往后逐渐收缩:服务端
1.iptables -A INPUT -p tcp --dport 22 -j ACCEPT 允许所有访问ssh
2.iptables -A INPUT -s 172.25.254.107 -p tcp --dport 80 -j ACCEPT 允许107访问http
3.iptables -A INPUT ! -s 172.25.252.107 -p tcp --dport 53 -j REJECT 除了107访问dns全部拒绝
!:除了 REJECT:拒绝
4.iptables -A INPUT -j REJECT 全部拒绝
5.service iptables save 保存当前

3.地址转发:(207)
1.sysctl -a | grep ip_forward 查看内核路由功能状态
2.vim /etc/sysctl.conf 编辑配置文件
内容:
net.ipv4.ip_forward = 1 打开内核路由功能
3.iptables -t nat -nL 查看nat表
4.iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.254.207 连接107转化到207上
-i:进来时转化到107
5. iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.0.107 207看到的ip为0.107
-o:出去时转化到172.25.0.107上
测试:ssh [email protected] 连接107会转化到207上,207看到的IP为172.25.0.107