04-网络服务

nobility 发布于 2020-09-23 263 次阅读


网络服务

守护进程

服务程序一般都是以守护进程默默的在后台执行,所以一般都是以d结尾的,在Linux中所有的进程都是由初始化进程来创建的,该初始化进程的进程号是1,在之前的版本中初始化进程是system V,新版的初始化进程是systemd

systemd systemV 描述
systemctl start 服务 service 服务 start 启动服务
systemctl stop 服务 service 服务 stop 停止服务
systemctl restart 服务 service 服务 restart 重启服务
systemctl status 服务 service 服务 status 查看服务状态
systemctl reload 服务 service 服务 reload 重服务载配置文件
systemctl enable 服务 chkconfig 服务 on 将该服务添加到开机自启动
systemctl disable 服务 chkconfig 服务 off 将该服务移除开机自启动
systemctl is-enable 服务 chkconfig 服务 查看该服务是否开机自启动
systemctl list-unit-files --type=service chkconfig --list 查看各个级别下服务的启动和禁用状态

防火墙

根据一组网络流量访问的规则进行匹配策略,来判断是否能通行,规则由上到下匹配,所以通常默认策略是全部拒绝,而不是全部接受,这样更加安全

每个方向的流量都有自己的策略链,以下链在filter表中,该表也是默认表:

英文名 方向
INPUT 流入流量(一般对此策略链进行配置)
OUTPUT 流出流量
FORWARD 转发流量

以下链在nat表中:

英文名 描述
PREROUTING 在进行路由选择前处理数据包
POSTROUTING 在进行路由选择后处理数据包
OUTPUT 流出流量

iptables

此工具在之前版本中使用的,之后版本不再有了,此工具不是一个服务

查看
  • t:指定查看的是那个表,默认是filter
  • L:查看所有策略表的策略
  • n:显示端口号而不是协议名
  • v:显示更加详细
增加
  • P:设置默认策略,后跟策略表名和策略,比如iptables -P INPUT DROP将流入流量设置默认策略为全拒绝
  • I:在某策略链头部添加策略
  • A:在某策略链尾添加策略
  • p:匹配协议,如TCP、UDP、ICMP
  • --dport:目标端口号(服务端端口号),一段端口号使用的是:分隔而不是-
  • s:来源地址(客户端地址),可以加!号表示除此之外
  • --sport:来源端口号(客户端端口号)
  • j:匹配后的动作
    • ACCEPT:接受
    • DROP:丢弃
    • REJECT:拒绝
    • LOG:保存到日志文件
删除
  • F:清空所有规则
  • D:删除某表的某一条一条规则,从1开始

firewall

此工具在新版本中使用,之前的版本是没有的,此工具是一个服务对应的服务名称就是firewalld,而且此工具的命令行版本叫firewall-cmd,图形化版本叫firewall-config

该工具中引入区域的概念,说的是当前服务器所处环境(区域),而采用的防火墙默认策略,其实就是一种防火墙模板

区域 描述
trusted 全部接受
drop 全部拒绝
public 默认区域,除拉ssh、dhcpv6-client协议外,全部拒绝,可以配置接受规则条目
  • get-default-zone:获取默认区域
  • set-default-zone:设置默认区域
  • get-services:显示可设置的服务名
  • add-service:添加放行服务流量
  • remove-service:删除设置的放行服务流量
  • query-service:查看是否放行该服务
  • list-services:查看以设置的服务列表
  • add-port:添加放行端口流量,需要同时指定协议名,以/分隔,若同时指定多个端口是以-分隔
  • remove-port:删除设置的放行端口流量,需要同时指定协议名,以/分隔
  • query-port:查看该端口是否放行,需要同时指定协议名,以/分隔
  • list-port:查看以设置的放行端口和协议
  • permanent:永久生效,默认情况下在重启后设置的策略会失效,加上此参数虽然可以永久生效,但是在为重启时会是未生效状态,在重启后才会生效
  • reload:此参数正是为了解决permanent参数重启后生效的,此参数会使永久生效的在本次立即生效
  • query-masquerade:检查是否允许伪装IP
  • add-masquerade:允许防火墙伪装IP
  • remove-masquerade:禁止防火墙伪装IP
  • add-forward-port:设置端口转发,值需要以port=源端口号:proto=协议:toport=转发端口号:toaddr=转发IP形式,转发IP的前提是允许防火墙伪装IP
  • add-rich-rule:设置富规则,值需要以规则字符串命令来指定,如rule family="ipv4" source address="192.168.1.100" service name="mysql" reject,由于有空格需要用双引号引起来
    • rule family:指定IP协议,ipv4ipv6
    • source address:指定IP,一段IP就使用子网掩码即可
    • service name:指定服务
    • 执行的动作:
      • reject:拒绝
      • drop:丢包
      • accept:接受
      • log:保存到日志
    • port port:端口,多个端口使用-分隔
    • protocol:协议
  • list-rich-rules:查看设置的富规则
  • remove-rich-rule:删除富规则,不是根据编号删除的,而是怎么设置的就是怎么删除的,所以值也是规则字符串命令,通常使用list-rich-rules查询出的规则复制粘贴删除

TCP Wrappers

该工具使用到两个配置文件/etc/hosts.allow(允许)和/etc/hosts.deny(拒绝),顺序是先匹配允许文件,后匹配拒绝文件,一旦匹配成功就不会再向后匹配

配置形式是服务名:IP的形式,若指定多个服务需要使用逗号分隔,若指定一个网段需要使用子网掩码,要注意这里是服务名,而不是协议名,比如ssh,ftp:192.168.1.100

SELinux

是集成在内核2.6版本之后的上安全子系统,使用uname -runame -a可以查看内核版本

永久生效的SELinux配置文件位置/etc/selinux/config,需要重启电脑后生效,一般只设置SELINUX参数的启动状态,而对于SELINUXTYPE参数保持默认的targeted即可,意思是对于大部分著名的软件默认的设置是起到保护(限制)作用的

  • getenforce:查看设置的SELinux级别
  • setenforce:设置临时的SElinux级别,0是permissive警告模式,1是enforcing强制模式,如果原本是disabled状态将无法使用该命令开启
  • sestatus:查看SELinux详细信息
    • v:更详细

SELinux运行原理

为每个文件(安全上下文)和进程(域限制)都添加一个标签,系统中运行的程序有访问文件或进程的操作时会经过SELinux,若SELinux中有设置访问该标签的策略就允许访问,否则不允许

文件的标签可以使用ls -Z查看,进程的标签可以使用ps -auxZ查看,系统默认会为每个文件都添加默认的标签,使用semanage fcontext -l可以查看默认的标签

标签的的格式是system_u:system_r:kernel_t:s0以分号分隔的4段内容,分别表示:

用户(以_u结尾) 角色(以_r结尾) 类型(以_t结尾) 级别
创建者类型,如system_u=系统创建的、unconfined_u=用户自己创建的 该对象的用途,比如system_r=系统进程、unconfined_r=用户进程、object_r=文件 就是什么进程能访问什么类型文件中的类型,主要修改的字段,若设置为public_content_t=任意进程都可以读、public_content_rw_t=任何进程都可以读写 targeted模式下都是s0

对于复制的文件会重新根据当前目录定义标签,对于移动的文件会保留原来的标签

修改SELinux标签类型

  • chcon:修改安全上下文
    • t:修改类型字段
    • R:递归修改
    • reference:根据文件或目录更改安全上下文
  • restorecon:恢复到系统默认的标签
    • R:递归恢复
    • v:显示过程
  • semanage:SELinux管理器
    • fcontext:文件安全上下文
      • l:列出所有文件的默认标签
      • a:向策略数据库中添加默认的SELinux策略
      • d:从策略数据库中删除默认的SELinux策略
      • t:指定标签的类型字段,后跟标签和目录,空格隔开,若想递归设置则需要为目录增加(/.*)?正则后缀表示目录和目录内的文件
    • port:端口安全上下文
      • l:列出所有端口的默认标签
      • a:向策略数据库中添加默认的SELinux策略
      • d:从策略数据库中删除默认的SELinux策略
      • m:从策略数据库中修改默认的SELinux策略,前提是有才能修改
      • t:指定标签的类型字段
      • p:指定端口号和协议,空格隔开
    • boolean:服务行为开关布尔值
      • l:查看服务行为开关布尔值
      • C:查看修改过的布尔值,配合l
  • getsebool:查看临时的服务行为开关布尔值
  • setsebool:临时修改服务行为开关布尔值,后跟服务行为off是开,on是关
    • P:永久修改服务行为开关布尔值

SELinux日志

  1. yum install setroubleshoot,安装sealert命令
  2. grep 关键字 /var/log/messages,系统日志中搜索
  3. sealert -l UUID根据日志的提示运行相应的UUID即可查看
  4. sealert -a /var/log/audit/audit.log可查看所有有关SELinux的错误日志信息

LAMP和LNMP

Apache

  1. 使用yum install httpd安装Apache服务
  2. 使用systemctl start httpd启动Apache服务
  3. 配置IP地址和防火墙放行80和443端口,可以使用iptablefirewall-cmd工具
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=443/tcp
  1. 配置Apache服务
文件位置 描述
/etc/httpd/conf/httpd.conf 主配置文件
/var/www/html 网站数据目录,若有SELinux捣乱则修改SELinux标签修改为httpd_sys_content_t
/var/log/httpd/access_log 访问日志文件
/var/log/httpd/error_log 访问错误日志文件
  1. 主要参数列表:
参数名 描述
ServerRoot 服务本身的目录
Listen 监听端口号
User 运行服务的用户
Group 运行服务的组
ServerAdmin 管理员邮箱
DocumentRoot 网站数据目录,修改数据目录时也要同时修改网站数据目录权限
ErrorLog 错误日志
CustomLog 访问日志
  1. 虚拟主机:编写主配置文件/etc/httpd/conf/httpd.conf,添加以下内容,这类似于XML格式
<VirtualHost 192.168.1.10>	#要指定IP地址和端口,是内网地址
    DocumentRoot /var/www/html/v1	#虚拟主机的数据目录
    ServerName www.linux.com	#虚拟主机域名
    <Directory /var/www/html/v1>	#网站数据目录权限,这里的目录要与数据目录一致
        AllowOverride None	#不允许被覆盖
        Require all granted	#全部都允许访问
      	DirectoryIndex index.html	#默认首页
    </Directory>
</VirtualHost>
  1. 配置HTTPS
    1. 需要使用yum install mod_ssl安装Apache支持SSL的模块
    2. 然后使用systemctl restart httpd重启httpd服务,此时使用的系统默认的证书和私钥
    3. 而且公网中没有注册证书的情况下是无法访问的,在虚拟机中(局域网中)是可以的
文件位置 描述
/etc/httpd/conf.d/ssl.conf Apache的SSL证书配置文件
/etc/pki/tls/private/ 系统私钥目录
/etc/pki/tls/certs/ 系统证书目录
  1. 自制证书
openssl genrsa -out server.key 2048	#使用RSA加密算法 生成私钥文件 名为server.key 位数是2048
openssl req -new -key server.key -out server.csr	#根据私钥生成证书签名请求,会让你填写一些签名信息
openssl x509 -req -days 1 -in server.csr -signkey server.key -out server.crt	#根据私钥和签名生成有效期是1天的证书
cp server.key /etc/pki/tls/private/	#将私钥拷贝到系统私钥目录中
cp server.crt /etc/pki/tls/certs/	#将证书拷贝到系统证书目录中
vim /etc/httpd/conf.d/ssl.conf	#修改Apache的SSL配置文件,将SSLCertificateFile证书字段和SSLCertificateKeyFile私钥字段修改为自己的生成文件
systemctl restart httpd	#重启Apache

Tomcat

  1. 使用yum install tomcat安装Tomcat服务,默认是tomcat7,带的Java运行环境是1.7.0版本
    • yum install tomcat-webapps tomcat-admin-webapps 安装容器管理软件
    • yum install tomcat-docs-webapp tomcat-javadoc安装参考文档
    • 可以使用yum install java-1.8.0-openjdk.x86_64升级之1.8.0,也可以升级到1.11.0版本(tomcat version可查看版本信息)
    • 可以通过pkgs.org网站找到相关更新的rpm包进行安装更新的tomcat
    • 可以使用yum install java-1.8.0-openjdk-devel.x86_64安装开发环境
  2. 使用systemctl start tomcat启动Tomcat服务
  3. 配置IP地址和防火墙放行8080端口,可以使用iptablefirewall-cmd工具
firewall-cmd --zone=public --add-port=8080/tcp
firewall-cmd --zone=public --add-port=8443/tcp
  1. 配置Tomcat服务
文件位置 描述
/etc/tomcat/tomcat.conf 主配置文件
/etc/tomcat/server.xml 服务器配置文件
/etc/tomcat/tomcat-users.xml tomcat用户配置文件
/usr/share/tomcat/webapps web容器配置文件
/var/lib/tomcat/webapps/ web容器目录
/usr/share/tomcat/logs/ 日志文件目录
  1. 添加用户:编写用户配置文件/etc/tomcat/tomcat-users.xml,将最后的举例的注释打开,填写自己的用户名和密码
user name="admin" password="admin" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
  1. 使用java的keytool工具自制证书(jdk自带的工具)
keytool -genkey -v -alias tomcat -keyalg RSA -keystore server.keystore -validity 365 -sigalg SHA256withRSA

#证书的别名是tomcat,加密方式使用RSA,生成证书名为server.keystore,证书有效期为365天,签名算法使用SHA256withRSA

#接下来会让你填写信息并且确认,要注意的是密码必须是6位数,确认完毕后设置要在输入一次密码要与刚开始设置的密码一致
keytool -keystore server.keystore -export -alias tomcat -file client.cer

#使用服务端证书生成客户端证书,指定证书别名要一致,生成的证书名为client.cer

#接下来会让你输入密码
  1. 使用vim /etc/tomcat/server.xml命令来修改配置文件开启HTTPS功能,但是要注意只能使用脚本启动方式启动HTTPS才能有效果,否则只有HTTP有效果,由于yum安装的tomcat7中的bin目录中没有启动脚本(脚本启动后那么像systemctltomcat start|stop命令就会失效,只能使用脚本的shutdown.sh来关闭),则需要手动的从官网中下载tomcat7将bin目录替换即可,记着加执行权限

    • tomcat7

      • 将配置8080端口的HTTP注释掉
      • 将配置8443HTTPS的注释解开,并且添加keystoreFile字段来指定证书,keystorePass字段来指定密码
      <!--
          <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
                     maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                     clientAuth="false" sslProtocol="TLS" />
      修改为如下内容:
      -->
      <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
                 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
            		 clientAuth="false" sslProtocol="TLS" 
                 keystoreFile="server.keystore"	
            		 keystorePass="password"/> <!--添加自己的证书和证书密码 -->
      
    • tomcat8.5/9

      • 将配置8080端口的HTTP注释掉
      • 将配置8443HTTPS的注释解开,将Certificate标签中的certificateKeystoreFile的证书换成自己生成的服务端证书,并增加certificateKeystorePassword字段,字段值为刚才为证书设置的密码
      <!--
      <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                 maxThreads="150" SSLEnabled="true">
          <SSLHostConfig>
              <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                           type="RSA" />
          </SSLHostConfig>
      </Connector>
      修改为如下内容:
      -->
      <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                     maxThreads="150" SSLEnabled="true">
              <SSLHostConfig>
                  <Certificate certificateKeystoreFile="server.keystore"
                               type="RSA" certificateKeystorePassword="123456" />
              </SSLHostConfig>
      </Connector>	<!--添加自己的证书和证书密码 -->
      
  2. 使用vim /etc/tomcat/web.xml修改强制HTTP跳转到HTTPS,找到welcome-file-list标签,在标签下插入以下内容,注意是下面,而不是标签内

<login-config>
    <!-- Authorization setting for SSL -->
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
  <!-- Authorization setting for SSL -->
  <web-resource-collection >
    <web-resource-name >SSL</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
  1. 再将网站项目配置HTTPS,修改项目中的WEB-INF/web.xml文件,添加以下字段,在将项目的war包放入tomcat容器中,之后使用systemctl restart tomcat重启tomcat
<security-constraint>
  <web-resource-collection>
    <web-resource-name>SSL</web-resource-name>
    <url-pattern>/*</url-pattern>	<!-- 表示所有路径下的文件都采用SSL协议-->
  </web-resource-collection>
  <user-data-collection>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-collection>
</security-constraint>
  1. 公网中没有注册证书的情况下是无法访问的,在虚拟机中(局域网中)是可以的,若想在公网中访问,就需要将刚才生成的客户端证书下载到本地,拖入浏览器中进行安装证书即可访问

Nginx

  1. rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm也可以使用 yum install epel-release 安装epel源,若报错则打开vim /etc/yum.repos.d/epel.repo就将第二行的注释解开,将第三行注释掉,否则忽略
  2. 使用yum install nginx安装nginx,使用systemctl start nginx启动服务
  3. 配置IP地址和防火墙放行80和443端口,可以使用iptablefirewall-cmd工具
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=443/tcp
  1. 配置Nginx服务
文件位置 描述
/etc/nginx/nginx.conf 主配置文件
/usr/share/nginx/html 网站数据目录,若有SELinux捣乱则修改SELinux标签修改为httpd_sys_content_t
/var/log/nginx/access.log 访问日志文件
/var/log/nginx/error.log 访问错误日志文件
  1. 主要参数列表:
参数名 描述
user 运行服务的用户
worker_processes 工作进程数,应该对应CPU核心数,设置为auto即可
worker_connections 一个工作进程对应的连接数
error_log 错误日志
access_log 访问日志
  1. 虚拟主机:编写主配置文件/etc/nginx/nginx.conf,添加以下内容,类似于JS中对象形式,但是每行后需要加分号,使用nginx -t可检测配置文件语法是否出错
server {	#虚拟机模块
    listen       80 default_server;	#监听的内网IP和端口,可以只指定端口
    listen       [::]:80 default_server;	#IPv6的设置
    server_name  www.linux.com;	#虚拟主机域名
    root         /usr/share/nginx/html/v1;	#虚拟主机的数据目录
    index index.html;	#默认首页
}
  1. 反向代理:编写主配置文件/etc/nginx/nginx.conf,虚拟主机模块中添加以下内容
location /tomcat {	#代理的目录,即访问nginx下的tomcat目录时 例如http://192.168.1.10/tomcat
            proxy_pass http://127.0.0.1:8080;	#会被代理到这个IP的这个端口上,即http://127.0.0.1:8080/tomcat
        }
  1. 配置HTTPS
    1. 在所有监听的是http的虚拟主机模块下添加return 301 https://$host$request_uri;可以将所有请求转化为HTTPS,此语句中的以$开头的是nginx的变量,分别代表请求主机和请求资源资源路径
    2. 打开注释调度配置HTTPS虚拟主机模块,将ssl_certificate证书字段和ssl_certificate_key私钥字段修改为自己的生成文件,私钥和证书生成方式可以参考Apache中的配置HTTPS

MariaDB

  1. 使用yum install mariadb mariadb-server安装MariaDB客户端和服务器端
  2. 使用systemctl start mariadb启动MariaDB
  3. 使用mysql_secure_installation命令初始化MariaDB,会让你填写以下信息
Enter current password for root (enter for none):	#填写数据库的root密码,第一次默认是空密码直接回车即可,若不是第一次则需要输入密码
Set root password? [Y/n] y	#是否设置root的密码
New password:	#新密码
Re-enter new password:	#确认新密码
Remove anonymous users? [Y/n] y	#是否删除匿名用户
Disallow root login remotely? [Y/n] n	#是否禁用root用户的远程登陆,同时还要防火墙放行3306端口
Remove test database and access to it? [Y/n] y	#是否删除测试数据库
Reload privilege tables now? [Y/n] y	#是否重载当前配置
  1. 修改MariaDB的字符编码为UTF8,使用vim /etc/my.cnf将配置文件中的增加以下两句配置信息:
character_set_server=utf8
init_connect='SET NAMES utf8'
  1. 使用systemctl restart mariadb重启数据库,在数据库中使用show variables like '%character_set%';可查看数据库的字符集
  2. 配置IP地址和防火墙放行3306端口,可以使用iptablefirewall-cmd工具
firewall-cmd --zone=public --add-port=3306/tcp

PHP

  1. 下载安装php,默认使用yum安装的php版本是5.1版本的,由于下面部署的wordpress系统要求php版本是5.6以上的所以需要更新一下yum源后才能进行安装
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm	#也可以使用 yum install epel-release 安装epel源
vim /etc/yum.repos.d/epel.repo	#若报错,就将第二行的注释解开,将第三行注释掉,否则忽略此行
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm	  #更新webtatic-release源
yum install php56w php56w-mysql	#安装php主程序和连接MariaDB的模块程序
  1. 如果是Apache到此即可结束了;若是nginx,由于nginx不能直接与php进行通讯,需要借助FastCGI协议进行通讯,所以需要执行以下步骤
setenforce 0	#安装前最好将SELinux临时关闭
yum install php56w-fpm	#所以需要安装此软件,若报错执行 rpm -e redhat-release-server-7.0-1.el7.x86_64 --nodeps

grep systemd-logind /var/log/audit/audit.log | audit2allow -M mypol	#selinx日志提示命令,防止后续出错
semodule -i mypol.pp	#selinx日志提示命令,防止后续出错
setenforce 1	#完成后将SELinux开启
systemctl start php-fpm	#启动FastCGI协议服务
  1. 修改nginx配置文件:vim /etc/nginx/nginx.conf,在虚拟主机模块(要注意http跳转https时有要将此配置填写到https的虚拟主机中)中添加以下内容后重启nginx服务
location ~ \.php$ {	# ~号代表开启正则,\.php$代表只要是以 点php 结尾的
	fastcgi_pass 127.0.0.1:9000;	#指定提供FastCGI协议的IP和端口
	fastcgi_index index.php;	#默认首页
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;	#默认脚本文件名是nginx默认网站数据目录和fastcgi脚本名
	include fastcgi_params;	#导入fastcgi_params文件
}

wordpress(LAMP)

 wget https://cn.wordpress.org/latest-zh_CN.tar.gz  -O /var/www/html/latest-zh_CN.tar.gz	#下载到Apache资源目录,防止SELinux捣乱,此下载连接来自https://wordpress.org官网
 tar -xvzf latest-zh_CN.tar.gz	#解压到当前目录
 

 #进入数据库建库,和用户
create database blog;
grant all on blog.* to 'blog' identified by 'blog';
 
cp wp-config-sample.php wp-config.php	#创建wordpress的数据库配置文件
vim wp-config.php	#添加表数据库的用户、密码、IP
getsebool -a | grep httpd_can	#查看有关httpd服务的布尔值,根据查看的值打开网络连接权限
setsebool httpd_can_network_connect=on	#开启网络连接的权限
 

 #localhost/wordpress/wp-admin/setup-config.php	浏览器中打开这个地址进行安装,localhost可替换具体ip

Discuz(LNMP)

  1. Discuz完整安装程序由此处 Discuz官方网站获取,将程序中的upload目录上传服务器,放入nginx的网站数据目录
  2. 由于安装首页是index.php,所以需要在nginx配置文件中多指定一个默认首页,重启nginx
  3. 浏览器打开http://localhost/install地址进行安装,localhost可替换具体ip
  4. 先使用chmod 777 -R /usr/share/nginx/html让该目录所有文件有可写权限,此时SELinux捣乱,将全部设置为public_content_rw_t是无用的
    1. 再使用semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/nginx/html(/.*)?"更改为可写的上下文,再使用restorecon -R /usr/share/nginx/html修改上下文
    2. chcon -Rt httpd_sys_rw_content_t /usr/share/nginx/html修改上下文

Jenkins(tomcat)

  1. Jenkins完整安装程序由此处Jenkins官网获取war包,使用wget http://mirrors.jenkins.io/war-stable/2.235.5/jenkins.war下载
  2. 将下载的war包放到/var/lib/tomcat/webapps/目录下,将自动部署
  3. 浏览器进入项目localhost:8080/jenkins根据提示安装即可

Squid

  1. 使用yum install squid安装Squid
  2. 使用systemctl start squid启动Squid
  3. 配置IP地址和防火墙放行3128端口,可以使用iptablefirewall-cmd工具
firewall-cmd --zone=public --add-port=3128/tcp
  1. 配置Squid服务
文件位置 描述
/etc/squid/squid.conf 主配置文件
  1. 主要参数列表
指令 参数格式 描述
http_port IP:Port [transparent] Squid监听的端口,若IP是网关地址并且添加后面transparent字段,则会成为透明代理
acl aclName aclType aclValue aclName是自己起的在http_access中使用,aclTypeaclValue应该对应;src=来源IP/掩码、dst=目的IP/掩码、url_regex -i=URL地址正则匹配、urlpath_regex -i=省去协议和主机名的URL地址匹配,-i是忽略大小写
http_access `allow deny aclName` 根据acl规则决定拒绝访问还是允许访问,aclName前可以添加!表示取反,此指令和防火墙一样都是按照从上到下匹配的,一旦匹配就执行相应的动作,所以最后一行一般都是http_access deny all结尾,代表拒绝所有
此作者没有提供个人介绍
最后更新于 2020-09-23