linux系统中防火墙的设定

实验环境:
一个双网卡的虚拟机 ip 172.25.254.125 192.168.4.125
一个单网卡的虚拟机 ip 192.168.4.225
真实主机 ip 172.25.254.25

1.火墙接受

1.netfilter

###2.关于火墙的域
trusted ##接受所有的网络连接
home ##用于家庭网络,允许接受ssh mdns ipp-client
dhcp-client
work ##工作网络 ssh ipp-client
public ##公共网络 ssh dhcp-client
dmz ##军用网络 ssh
block ##拒绝所有
drop ##丢弃 所有数据全部丢弃无任何回复
internal ##内部网络 ssh mdns ipp-client samba-client dhcp-client
external ##ipv4网络地址伪装转发 sshd

##3.关于副irewalld的设定原理及数据储存
/etc/firewalld ##火墙配置文件
/lib/firewalld ##火墙模块目录

firewalld iptables

转换防火墙服务
dnf install iptables-services -y
systemctl disable --now firewalld.service
systemctl mask firewalld.service
systemctl enable --now iptables.service
iptables -nL

/lib/firewalld/services
服务类型

查看防火墙的状态
firewall-cmd --state
running
查看当前火墙中生效的域
firewall-cmd --get-active-zones
libvirt
interfaces: virbr0
public
interfaces: ens3
在这里插入图片描述

查看默认域
firewall-cmd --get-default-zone
查看默认域中的火墙策略
firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

在这里插入图片描述

查看指定域中的火墙策略
firewall-cmd --list-all --zone=work
work
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
在这里插入图片描述

注:查看指定域work中的火墙策略

设定默认域
firewall-cmd --set-default-zone=trusted

查看所有可以设定的服务

firewall-cmd --get-services

RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

移除服务
firewall-cmd --permanent --remove-service=cockpit

firewall-cmd --reload

##指定数据来源访问指定域
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block
在这里插入图片描述

#删除自定义域中的数据来源
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block
在这里插入图片描述

删除指定域的网络接口
firewall-cmd --permanent --remove-interface=ens3 --zone=public

添加指定域的网络接口
firewall-cmd --permanent --add-interface=ens3 --zone=block

在这里插入图片描述

更改网络接口到指定域
firewall-cmd --permanent --change-interface=ens3 --zone=public
一部完成

在这里插入图片描述

服务的目录
/lib/firewalld/services
sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
源地址转换
在这里插入图片描述

在这里插入图片描述
非双网卡主机:
设定网关
ip route add default via 172.25.254.140
route -n
查看网关的设定

火墙中的地址的伪装和转发

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
在这里插入图片描述
注:地址伪装功能打开

在这里插入图片描述
注:1.表示系统的路由器功能 开启
若内核路由器功能没有开启编辑文件/etc/sysctl.conf
在这里插入图片描述
命令刷新设置,确定内核路由生效
sysctl -p
net.ipv4.ip_forward = 1

客户端设置:
添加网关
在这里插入图片描述

在这里插入图片描述

服务端的snet

访问主机时默认转化主机
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toport=22:toaddr=192.168.4.240
firewall-cmd --reload
firewall-cmd --list-all

在这里插入图片描述

iptables 命令

iptables -F ##重启会还原

/etc/sysconfig/iptables

service iptables save ##保存火墙设置

iptables
-t ##指定表名称
-n ## 不做解析
-L ##查看
-A ##添加策略
-p ##协议
–dport ##目的地端口
-s ##来源
-j ##动作
ACCEPT ##允许
DROP ##丢弃
REJECT ##拒绝
SNAT ##源地址的转化
DNAT ##目的地的地址转换
-N ##新建链
-E ##更改链的名称
-X ##删除链
-D ##删除链的规则
-I ##插入规则
-R ##更改规则
-P ##更改默认规则

在这里插入图片描述

service iptables save ##保存火墙设置
会保存永久的保存火墙的设定

在这里插入图片描述

-i 表示插入
在这里插入图片描述
在这里插入图片描述

编写火墙策略,允许服务http,ssh,

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i lo -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 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j REJEC
iptables-save > /etc/sysconfig/iptables ###永久保存火墙策略
service iptables save

在这里插入图片描述

DNAT就是对数据包的源地址和目的地址进行bai修改,并且保存修改前后的映射关系,并且根据需要进行还原操作。
snat:出去的时候改变原地址(snat),回来的时候改变目的地址(un_snat)
dnat:进来的时候改变目的地址(dnat),出去的时候改变源地址(un_dnat)

DNAT
iptables -t nat -A PREROUTING -i ens9 -j DNAT --to-dest 172.168.40

iptables -t nat -A POSTROUTING -ens3 -j SNAT --to-source 192.168.4.240
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Antonhu/article/details/114143244
今日推荐