一.什么是防火墙
防火墙也称防护墙,是一种位于内部网络与外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过
二.firewalld所有的域
home(家庭):用于家庭网络,仅接受dhcpv6-client、ipp-client、mdns、 samba-client、ssh服务
internal(内部):用于内部网络,仅接受dhcpv6-client、ipp-client、mdns、samba-client、ssh服务
public(公共):用于公共区域使用,仅接受dhcpv6-client、ssh服务
trusted(信任):接受所有网络连接
work(工作):用于工作区,仅接受dhcpv6-client、ipp-client、ssh服务
block(限制):拒绝所有网络连接
dmz(非军事区):仅接受ssh服务连接
drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复
external(外部):出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
三.启用firewalld
systemctl start firewalld
systemctl enable firewalld
四.使用命令查看firewall火墙的设置
firewall-cmd --state 查看火墙状态
firewall-cmd --get-active-zones 查看正在运行的服务
firewall-cmd --get-default-zone默认使用的域
firewall-cmd --set-defalut-zone=block 指定某个特定的域,block为全黑的状态,所有会连接不上自己的网,或者也ping不通
firewall-cmd --set-defalut-zone=public 指定域为public,就可以解救block
firewall-cmd --get-zones 查看所有的域
firewall-cmd --list-all --zone=work 查看指定的域
firewall-cmd --get-services 查看所有的服务
firewall-cmd --zone=trusted --add-source=192.168.100.190 在防火墙里边的trusted意思是完全相信的
firewall-cmd –zone=public –list-all 查看public域的信息
添加端口并且查看,添加服务。
< reload >
客户端ssh先连接上服务端。
服务端这边现在将ssh服务从防火墙上永久移除,查看客户端的还是在正常连接的,不会影响当前的会话。
但是客户端断开以后,在连接就连接不上了。
服务端的:
客户端:
< complete reload>
当客户端先连接上服务端以后删除ssh服务,complete reload是会影响当前会话的,是会导致客户端直接按不动的。
服务端:
客户端:
设置特定用户可以连接
环境配置:在防火墙里边关闭删除ssh 服务
firewall-cmd --remove-service=ssh
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.218 -j ACCEPT 除了218这台主机可以连接,其余的都不可以连接
firewall-cmd --direct --get-all-rules 查看所有的规则
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.218 -j ACCEPT 删除这个规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 ! -s 172.25.254.218 -j ACCEPT 除了218不可以连接,其余的都可以连接
端口转发
firewall-cmd --permanent --add-masquerade 开启永久的地址伪装
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.218 意思为查看本机的话 会转发到20的这个ip主机而不是自己的主机
在客户端ssh root@172.25.254.118会直接转接到172.25.254.218