2-14firewall\SELINUX

来源:互联网 发布:淘宝卖自制化妆品 编辑:程序博客网 时间:2024/06/07 22:09

firewall

简介

1、firewall是rhel7引入与netfilter内核模块交互的新方法;
2、firewall将所有网络流量分为多个区域,根据数据包ip地址或传入网络接口等条件,流量 将转入相应区域防火墙规则。每个区域都有对应打开的服务和列表。
3、若网络接口未与某个区域关联,则使用默认区域public;

配置

1、图形化firewall-config
服务、端口、伪装、端口映射、ICMP过滤、富规则
———持久、重载

2、命令行firewall-cmd
区域:block、dmz、drop、external、home、external、public、trusted、work

#firewall-cmd --get-default-zone //查询当前默认区域        --permanent(持久)--set-default-zone=<..> //设置默认区域                         --get-zones  //列出所有区域                         --get-active-zones  //列出当前区域详细信息                         --list-all-zones //列出所有区域的所有信息                         --add-service=   //允许服务通过;--remove-service=              --add-port=<port/协议>[--zone=]//允许端口              --change(add)-interface= [--zone=]//网卡接口到区域#firewall-cmd --reload  //重新加载防火墙生效

SELinux

简介

1、SELinux是一个额外的安全层,主要防止已泄露的系统服务访问用户数据。基于对象添加复杂规则控制,称为强制访问控制。
2、SELinux是确定哪个进程可以访问哪个文件、目录和端口的一组安全规则。

三种类型

主配置文件/etc/selinux/config
强制模式enforcing
查询当前模式getenforce

1、类型字段不匹配

#ls -Z-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html

类型上下文通常_t结尾,httpd_sys_content_t
2、端口
端口上下文也是http_port_t

#semanage port -l | grep http  //查询端口类型http_port_t                    tcp      80#semanage port -a -t(端口类型) http_port_t -p(协议类型) tcp 80 

3、布尔值
布尔值是改变SELinux策略行为开关,有选择的调整策略;

#getenforce  //显示SELinux模式#setenforce 0 //临时将force强制模式关闭;1为开启;#getsebool -a(列所有)| grep http  //列出布尔值开关#setsebool -P httpd_enable_homedirs on //打开家目录

服务无法启动三级排错

1、服务本身是否启动、配置文件是否正确;
2、防火墙端口是否允许;
3、SELinux影响;

http三种情况对以上诠释

1、不同域名相同ip;

#vim /etc/httpd/conf/httpd.conf  //http主配置文件           //#DocumentRoot "/var/www/html"  注释掉主目录           //#ServerName www.example.com:80 注释掉主域名#cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/       //usr下是模板文件#vim /etc/httpd/conf.d/http_host.conf //主配置文件失效,修改子配置文件<VirtualHost *:80>    DocumentRoot "/var/www/html"    ServerName server0.example.com</VirtualHost><VirtualHost *:80>    DocumentRoot "/var/www/virtual"   //上层/var/www继承下来控制权限    ServerName www0.example.com</VirtualHost><VirtualHost *:80>  //默认没有访问控制    DocumentRoot "/www"    ServerName webapp0.example.com</VirtualHost><Directory "/www">          //给/www设置访问控制    AllowOverride None    Require all granted</Directory>#httpd -t //检查语法#systemctl start httpd##################都打不开,说明是端口防火墙问题##########firewall-cmd --permanent --add-service=http#firewall-cmd --reload##########发现第三个网站进不去sentenforce 0 关闭就可以,说明是SELinux##########ls -Z  //查看文件类型字段drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 htmldrwxr-xr-x. root root unconfined_u:object_r:default_t:s0 www①#chcon -R -t(类型)httpd_sys_content_t /www②#semanage fcontext -a(追加)-t(类型)httpd_sys_content_t '/www{/.*}?'#restorecon -vFR /www//两种方法给变文件类型字段。

2、不同端口相同ip

#vim /etc/httpd/conf/httpd.conf  //http主配置文件           //#DocumentRoot "/var/www/html"  注释掉主目录           //#ServerName www.example.com:80 注释掉主域名#cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/       //usr下是模板文件#vim /etc/httpd/conf.d/http_host.conf //主配置文件失效,修改子配置文件<VirtualHost 172.25.1.11:80>    DocumentRoot "/var/www/html"    ServerName server0.example.com</VirtualHost>Listen 808<VirtualHost 172.25.1.11:808>    DocumentRoot "/var/www/virtual"   //上层/var/www继承下来控制权限    ServerName www0.example.com</VirtualHost>Listen 8088<VirtualHost 172.25.1.11:8088>  //默认没有访问控制    DocumentRoot "/www"    ServerName webapp0.example.com</VirtualHost><Directory "/www">          //给/www设置访问控制    AllowOverride None    Require all granted</Directory>########给防火墙和SELinux注入新加端口规则############firewall-cmd --permanent --add-port=808/tcp //再添加8088#firewall-cmd --reload#semanage port -l | grep http#semanage port -a -t http_t -p tcp 808 //再添加8088

3、查看家目录

#cd /etc/httpd/conf.d#vim userdir.conf   //家目录配置文件          #UserDir disabled  ///加注释          UserDir public_html //打开目录#su - wode  ///home/wode/public_html<wode>#mkdir public_html  //index.html<wode>#cd /home<wode>#chmod o+rx wode#exit#!sys###访问不到172.25.1.11/~wode 布尔值问题#getsebool -a | grep http#setsebool -P htt_enable_homedirs on
原创粉丝点击