linux如何设置SELinux以及如何设置防火墙Firewalld
系统安全保护
SELinux概述
• Security-Enhanced Linux
– 美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系
– 集成到Linux内核(2.6及以上)中运行
– RHEL7基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,以及管理工具
• SELinux的运行模式
– enforcing(强制)、permissive(宽松)
– disabled(彻底禁用)
任何模式变成disabled模式,都要经历重启系统
• 切换运行模式
– 临时切换:setenforce 1或0
– 固定配置:/etc/selinux/config 文件
虚拟机A
[root@svr7 /]# getenforce #查看当前运行模式
Enforcing
[root@svr7 /]# setenforce 0 #修改当前运行模式
[root@svr7 /]# getenforce
Permissive
[root@svr7 /]# vim /etc/selinux/config
SELINUX=permissive
虚拟机B:同上
防火墙的策略管理
作用:隔离,严格过滤入站,放行出站
硬件防火墙
软件防火墙
• 系统服务:firewalld----》iptables(底层防火墙)
• 管理工具:firewall-cmd、firewall-config
• 根据所在的网络场所区分,预设区域
– public:仅允许访问本机的ssh、dhcp、ping服务
– trusted:允许任何访问
– block:拒绝任何来访请求,明确拒绝客户端
– drop:丢弃任何来访的数据包,不给任何回应
• 防火墙判定原则:
1.查看客户端请求中来源IP地址,查看自己所有区域中规则,那个区域中有该源IP地址规则,则进入该区域
2.进入默认区域(默认情况下为public)
l 防火墙默认区域的修改
虚拟机A
]# firewall-cmd --get-default-zone #查看默认区域
虚拟机B
]# curl http://192.168.4.7 #失败
]# curl ftp://192.168.4.7 #失败
]# ping -c 2 192.168.4.7 #成功
虚拟机A:修改默认区域
]# firewall-cmd --set-default-zone=trusted
虚拟机B
]# curl http://192.168.4.7 #成功
]# curl ftp://192.168.4.7 #成功
l 防火墙public区域添加规则
虚拟机A:添加允许的协议
]# firewall-cmd --set-default-zone=public
]# firewall-cmd --zone=public --add-service=http
]# firewall-cmd --zone=public --list-all
虚拟机B
]# curl http://192.168.4.7 #成功
]# curl ftp://192.168.4.7 #失败
虚拟机A:添加允许的协议
]# firewall-cmd --zone=public --add-service=ftp
]# firewall-cmd --zone=public --list-all
虚拟机B
]# curl http://192.168.4.7 #成功
]# curl ftp://192.168.4.7 #成功
l 防火墙public区域添加规则(永久)
-永久(--permanent)
]# firewall-cmd --reload #加载防火墙永久策略
]# firewall-cmd --zone=public --list-all
]# firewall-cmd --permanent --zone=public --add-service=http
]# firewall-cmd --permanent --zone=public --add-service=ftp
]# firewall-cmd --zone=public --list-all
]# firewall-cmd --reload #加载防火墙永久策略
]# firewall-cmd --zone=public --list-all
l 防火墙单独拒绝PC207所有的访问
[root@svr7 ~]# firewall-cmd --zone=block --add-source=192.168.4.207
l 关闭防火墙
]# systemctl stop firewalld #当前关闭
]# systemctl disable firewalld #每次开机,禁止启动防火墙
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
]# systemctl start firewalld #当前开启
]# systemctl enable firewalld #每次开机启动防火墙
启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service;echo 查看已启动的服务列表:systemctl list-unit-files|grep enabled