网络服务
守护进程
服务程序一般都是以守护进程默默的在后台执行,所以一般都是以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
:检查是否允许伪装IPadd-masquerade
:允许防火墙伪装IPremove-masquerade
:禁止防火墙伪装IPadd-forward-port
:设置端口转发,值需要以port=源端口号:proto=协议:toport=转发端口号:toaddr=转发IP
形式,转发IP的前提是允许防火墙伪装IPadd-rich-rule
:设置富规则,值需要以规则字符串命令来指定,如rule family="ipv4" source address="192.168.1.100" service name="mysql" reject
,由于有空格需要用双引号引起来rule family
:指定IP协议,ipv4
或ipv6
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 -r
或uname -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日志
yum install setroubleshoot
,安装sealert
命令grep 关键字 /var/log/messages
,系统日志中搜索sealert -l UUID
根据日志的提示运行相应的UUID即可查看sealert -a /var/log/audit/audit.log
可查看所有有关SELinux的错误日志信息
LAMP和LNMP
Apache
- 使用
yum install httpd
安装Apache服务 - 使用
systemctl start httpd
启动Apache服务 - 配置IP地址和防火墙放行80和443端口,可以使用
iptable
或firewall-cmd
工具
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=443/tcp
- 配置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 |
访问错误日志文件 |
- 主要参数列表:
参数名 | 描述 |
---|---|
ServerRoot |
服务本身的目录 |
Listen |
监听端口号 |
User |
运行服务的用户 |
Group |
运行服务的组 |
ServerAdmin |
管理员邮箱 |
DocumentRoot |
网站数据目录,修改数据目录时也要同时修改网站数据目录权限 |
ErrorLog |
错误日志 |
CustomLog |
访问日志 |
- 虚拟主机:编写主配置文件
/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>
- 配置HTTPS
- 需要使用
yum install mod_ssl
安装Apache支持SSL的模块 - 然后使用
systemctl restart httpd
重启httpd服务,此时使用的系统默认的证书和私钥 - 而且公网中没有注册证书的情况下是无法访问的,在虚拟机中(局域网中)是可以的
- 需要使用
文件位置 | 描述 |
---|---|
/etc/httpd/conf.d/ssl.conf |
Apache的SSL证书配置文件 |
/etc/pki/tls/private/ |
系统私钥目录 |
/etc/pki/tls/certs/ |
系统证书目录 |
- 自制证书
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
- 使用
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
安装开发环境
- 使用
systemctl start tomcat
启动Tomcat服务 - 配置IP地址和防火墙放行8080端口,可以使用
iptable
或firewall-cmd
工具
firewall-cmd --zone=public --add-port=8080/tcp
firewall-cmd --zone=public --add-port=8443/tcp
- 配置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/ |
日志文件目录 |
- 添加用户:编写用户配置文件
/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" />
- 使用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
#接下来会让你输入密码
-
使用
vim /etc/tomcat/server.xml
命令来修改配置文件开启HTTPS功能,但是要注意只能使用脚本启动方式启动HTTPS才能有效果,否则只有HTTP有效果,由于yum安装的tomcat7中的bin目录中没有启动脚本(脚本启动后那么像systemctl
和tomcat 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> <!--添加自己的证书和证书密码 -->
-
-
使用
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>
- 再将网站项目配置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>
- 公网中没有注册证书的情况下是无法访问的,在虚拟机中(局域网中)是可以的,若想在公网中访问,就需要将刚才生成的客户端证书下载到本地,拖入浏览器中进行安装证书即可访问
Nginx
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
也可以使用yum install epel-release
安装epel源,若报错则打开vim /etc/yum.repos.d/epel.repo
就将第二行的注释解开,将第三行注释掉,否则忽略- 使用
yum install nginx
安装nginx,使用systemctl start nginx
启动服务 - 配置IP地址和防火墙放行80和443端口,可以使用
iptable
或firewall-cmd
工具
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=443/tcp
- 配置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 |
访问错误日志文件 |
- 主要参数列表:
参数名 | 描述 |
---|---|
user |
运行服务的用户 |
worker_processes |
工作进程数,应该对应CPU核心数,设置为auto 即可 |
worker_connections |
一个工作进程对应的连接数 |
error_log |
错误日志 |
access_log |
访问日志 |
- 虚拟主机:编写主配置文件
/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; #默认首页
}
- 反向代理:编写主配置文件
/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
}
- 配置HTTPS
- 在所有监听的是http的虚拟主机模块下添加
return 301 https://$host$request_uri;
可以将所有请求转化为HTTPS,此语句中的以$
开头的是nginx的变量,分别代表请求主机和请求资源资源路径 - 打开注释调度配置HTTPS虚拟主机模块,将
ssl_certificate
证书字段和ssl_certificate_key
私钥字段修改为自己的生成文件,私钥和证书生成方式可以参考Apache中的配置HTTPS
- 在所有监听的是http的虚拟主机模块下添加
MariaDB
- 使用
yum install mariadb mariadb-server
安装MariaDB客户端和服务器端 - 使用
systemctl start mariadb
启动MariaDB - 使用
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 #是否重载当前配置
- 修改MariaDB的字符编码为UTF8,使用
vim /etc/my.cnf
将配置文件中的增加以下两句配置信息:
character_set_server=utf8
init_connect='SET NAMES utf8'
- 使用
systemctl restart mariadb
重启数据库,在数据库中使用show variables like '%character_set%';
可查看数据库的字符集 - 配置IP地址和防火墙放行3306端口,可以使用
iptable
或firewall-cmd
工具
firewall-cmd --zone=public --add-port=3306/tcp
PHP
- 下载安装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的模块程序
- 如果是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协议服务
- 修改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)
- Discuz完整安装程序由此处 Discuz官方网站获取,将程序中的upload目录上传服务器,放入nginx的网站数据目录
- 由于安装首页是
index.php
,所以需要在nginx配置文件中多指定一个默认首页,重启nginx - 浏览器打开
http://localhost/install
地址进行安装,localhost可替换具体ip - 先使用
chmod 777 -R /usr/share/nginx/html
让该目录所有文件有可写权限,此时SELinux捣乱,将全部设置为public_content_rw_t
是无用的- 再使用
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/nginx/html(/.*)?"
更改为可写的上下文,再使用restorecon -R /usr/share/nginx/html
修改上下文 - 或
chcon -Rt httpd_sys_rw_content_t /usr/share/nginx/html
修改上下文
- 再使用
Jenkins(tomcat)
- Jenkins完整安装程序由此处Jenkins官网获取war包,使用
wget http://mirrors.jenkins.io/war-stable/2.235.5/jenkins.war
下载 - 将下载的war包放到
/var/lib/tomcat/webapps/
目录下,将自动部署 - 浏览器进入项目
localhost:8080/jenkins
根据提示安装即可
Squid
- 使用
yum install squid
安装Squid - 使用
systemctl start squid
启动Squid - 配置IP地址和防火墙放行3128端口,可以使用
iptable
或firewall-cmd
工具
firewall-cmd --zone=public --add-port=3128/tcp
- 配置Squid服务
文件位置 | 描述 |
---|---|
/etc/squid/squid.conf |
主配置文件 |
- 主要参数列表
指令 | 参数格式 | 描述 | |
---|---|---|---|
http_port |
IP:Port [transparent] |
Squid监听的端口,若IP是网关地址并且添加后面transparent字段,则会成为透明代理 | |
acl |
aclName aclType aclValue |
aclName 是自己起的在http_access 中使用,aclType 与aclValue 应该对应;src =来源IP/掩码、dst =目的IP/掩码、url_regex -i =URL地址正则匹配、urlpath_regex -i =省去协议和主机名的URL地址匹配,-i 是忽略大小写 |
|
http_access |
`allow | deny aclName` | 根据acl 规则决定拒绝访问还是允许访问,aclName 前可以添加! 表示取反,此指令和防火墙一样都是按照从上到下匹配的,一旦匹配就执行相应的动作,所以最后一行一般都是http_access deny all 结尾,代表拒绝所有 |
Comments NOTHING