SSM WEB环境搭建记录(一)

防火墙

防火墙定义: 通过制定一系列有顺序的规则,管制进出我的网络的数据包,能够实现这个功能的软件或硬件称为防火墙

Linux 中有两种防火墙软件,Centos7.0以上使用的是firewall,

Centos7.0以下使用的是iptables

TCP Wrapper

  • 概述: 通过分析程序来进行控制。

  • 例子: 比如iptables是通过数据包头信息[ip:port]来限制,

    ​ tcp wrapper的tcpd进程是通过进程名来控制进程,而不是数据包[ip:port]来控制

  • 软件: xinetd

Iptables

  • 组成:1. Filter 2.Nat 3.Mangle(破坏者,与数据包中的flag有关,很少使用),每一条规则都是一条chain,串行判断,顺序很重要

    1. Filter: 预设的过滤表,用来决定数据包是否通过。

      INPUT: 进入本机

      OUTPUT: 输出本机

      FORWARD: 数据包向后传递,跟spring mvc中的转发(forward)一样

    2. NAT(Network Address Transaction): 数据包转发表,将来源数据包(src) 与NAT后面的(IP:PORT)进行映射

  • 默认策略(Default Policy)

    当数据包不在所有的规则范围内,那么就以Default Policy决定是否通过

  • 表table---filter,nat 链chain--INPUT,OUTPUT,PREROUTING.... 策略Policy--ACCEPT,DROP,REJECT,LOG

  • 查看默认策略和规则

    ## 查看iptables的规则(推荐, 因为会显示规则作用于哪张网络接口Network Interface)
    ## 一般将本机的INPUT链的默认策略设置为DROP
    [root@yang1 ~]# iptables-save [-t table(nat 或 filter)]
    # Generated by iptables-save v1.4.21 on Fri Aug  7 14:30:53 2020
    *nat			# *后是表格名称
    :PREROUTING ACCEPT [164557:52755548]  # 冒号后是chain链(若数据包在规则中都没有命中则进入默认策略),这里都是通过
    :INPUT ACCEPT [15546:3696497]
    :OUTPUT ACCEPT [155:12485]
    :POSTROUTING ACCEPT [155:12485]
    COMMIT
    # Completed on Fri Aug  7 14:30:53 2020
    # Generated by iptables-save v1.4.21 on Fri Aug  7 14:30:53 2020
    *filter   
    :INPUT ACCEPT [401:82988]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [68:6272]
    COMMIT
    # Completed on Fri Aug  7 14:30:53 2020
    ----------------------------------------------------------------------------------------
    ## 查看(不推荐,因为不显示规则作用于那张网络卡net interface)
    [root@yang1 ~]# iptables [-t tables] [-L] [-nv]
    ## -t  table表,默认是filter表,可以指定为nat表
    ## -L  列出目前的规则
    ## -n  ip与hostname的解释,会耗费时间,可以不加
    ## -v  显示每条规则的更多信息
    Chain INPUT (policy ACCEPT)  # ACCEPT-数据包通过  DROP-丢弃
    target     prot opt source               destination         
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination    
    
    
  • 删除规则

    ----------------------------------------------------------------------------------------
    ## 删除规则,但不会影响默认策略(default policy)
    [root@yang1 ~]# iptables [-t table]  [-FXZ]
    -F: 清除已订规则
    -X: 杀掉所有自定义table
    -Z: 将chain的统计清空
    
  • 修改

    ## 修改filter默认策略
     iptables -P [INPUT,OUTPUT,FORWARD] [DROP,ACCEPT]
     -P: Policy 策略
     DROP: 封包丢弃
     ACCEPT: 允许通过
    ----------------------------------------------------------------------------------------
    
    
  • 创建规则

    ## 通过规则 不仅仅是tcp和udp
    iptables [-AI chain] [-io 网络接口] [-p protocal]
    				 [-s srcIP/domain] [-d dstIP/domain] -j [ACCEPT|DROP|REJECT|LOG]
    				 
    -AI : A-append 累计追加,在指定的chain的尾巴追加一条规则,e.g nat INPUT前面后4条,-A后则变成第5条
    			I-insert 插入,在指定的chain的头上插入一条规则,则封包比对规则的时候这条规则就是第一条比对
    -io : i-input 网络接口的输入端, 网络接口指的是[eth,lo(local本地回环测试接口)等]
    			o-output 网络接口的输出端
    -p : p-protocal 协议,tcp,udp,icmp,all等
    -s : s-source 源,包括IP(192.168.1.10)和网段(192.168.1.0/24 或 192.168.1.0/255.255.255.0)
    									-s !192.168.1.10 表示除了192.168.1.10的地址,感叹号表示去反
    -d : d-dist 目标,同src			
    -j : j-jump 跳入目中后续动作,
    
    练习1:设定来自lo(localLoopStack)网络接口的封包都可以进入系统(本地回环测试的数据都能进入系统)
    iptables -A INPUT -i lo -j ACCEPT
    
    常规错误: 数据包进入chain的判断是串行判断的,一旦符合某一条规则,就停止
    示例: 本地回环封包通过,192.168.1.0/24网络封包通过,192.168.1.100主机的封包拒绝
    错误设置: -A INPUT -s  192.168.1.0/24 -i lo -j ACCEPT ## 本地回环地址的数据包通过
    				-A INPUT -s  192.168.1.0/24 -i eth0 -j ACCEPT ## 该网段的数据包通过,那么来自100主机的数据也是符合该规则的,数据也会通过,下面这条规则就永远不会进行判断
    				-A INPUT -s  192.168.1.100 -i eth0 -j DROP
    
    
    ## tcp和udp的端口限制
    iptables [-AI chain] [-io 网络接口] [-p tcp|udp] 
    				 [-s srcIP/domain] 【--sport srcPort】 ## 也可以使用端口范围 21:1024
             [-d dstIP/domain] 【--dport dstPort】
             -j [ACCEPT|DROP|REJECT|LOG]
             
    ## 限制mac地址 (通过外置审核模块 -m module)
    iptables -I INPUT -m mac --mac-srouce 具体mac地址 -j DROP
    
    ## 按封包状态进行过滤 (通过外置模块 -m state --state [INVALID,ESTABLISHED,NEW,RELATED])
    ## 将ESTABLISHED和RELATED(本机发出的请求的响应包)通过
    iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    
             
    
  • 保存规则到文件

    ## iptables命令添加的规则及时有效,但是在内存中,需要使用save刷新到磁盘文件中
    iptables -save
    

Firewall

CentOS 7.0默认使用的是firewall作为防火墙,使用时需要配置iptables

  • 防火墙 开关

    systemctl start firewalld #开启防火墙
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    systemctl enable firewalld # 设置开机启动
    firewall-cmd --reload #重启防火墙
    
  • 防火墙 状态

    systemctl status firewalld
    
  • 设置 iptables service

    yum -y install iptables-services
    
  • 端口 查看所有打开的端口

    iptables -nvL
    firewall-cmd --list-ports  ## 查看开放的端口
    
  • 端口 拦截

    ## -A 添加IO规则
    ## -p 指定端口 
    iptables -A INPUT -p tcp --drop 端口号 -j DROP
    iptables -A OUTPUT -p tcp --dport 端口号 -j DROP
    
  • 端口 添加与关闭

    ## 端口添加后需要重启防火墙
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    ## 端口关闭
    firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    
    iptables -A INPUT -p tcp --dport  端口号 -j ACCEPT
    
  • 日志???

    将某些规则的包 log 到/var/log/message 中
    iptables -I {position} INPUT -J log --prefix "xxx"
    
  • iptables配置

    image-20200407165518699

IP设置

  1. 查看ip

    centos不使用ifconfig命令,而是 ip addr, 网卡名是ens开头的信息。

  2. 动态获取IP

    vi /etc/sysconfig/network-scripts/ifcfg-ens[系统特征的数字,e.g32] ,修改到下图的配置,重启服务

    systemctl restart network

    image-20200301123149678

  3. 静态设置IP,重启服务。systemctl restart network

    image-20200301123827755

  4. 此时重新查看ip,已经有inet ipv4地址了,ping 一下宿主机也是成功的

    image-20200301124217102

jdk安装

1 创建一个文件夹用来存放jdk压缩文件

mkdir -p /home/test/tar

2 把下载好的jdk压缩文件上传到linux对应目录

3 创建jdk解压目录

mkdir /usr/local/jdk

4 解压文件

tar -zxvf /home/jdk-8u201-linux-x64.tar.gz -C /usr/local/jdk

5 切换root用户

6 修改/etc/profile

vim /etc/profile

添加

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

7 重新加载/etc/profile

source /etc/profile

8 检查jdk版本

java -version

image-20200407160634409

Tomcat 命令

1. 解压
tar -zxvf /home/test/tar/apache-tomcat-8.5.55.tar.gz -C /usr/local/

2. 进入bin目录启动
sh ./startup.sh

Redis安装

https://www.cnblogs.com/chengxs/p/9833911.html
https://www.cnblogs.com/happywish/p/10944253.html

## 安装
yum install redis 
yum install epel-release

## 开机自启动
chkconfig redis on
或
systemctl enable redis.service

## 修改默认密码
vim /etc/redis.conf
查找 requirepass foobared 将foobared改为自定义密码

auth password 验证进入

## 重启
ps -ef | grep redis
kill -9 XXX
redis-server /etc/redis.conf & ## 使用这个配置后台启动
或
service redis stop 
service redis start
或
systemctl start redis.service

## 测试
redis-cli -h 127.0.0.1 -p 6379
插入字符串: SET ylj redis
获取: GET ylj


## 端口开放
# 开启6379
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
# 开启6380
/sbin/iptables -I INPUT -p tcp --dport 6380 -j ACCEPT
# 保存
/etc/rc.d/init.d/iptables save
# centos 7下执行
service iptables save
## 命令
# 启动redis
service redis start
# 停止redis
service redis stop
# 查看redis运行状态
service redis status
# 查看redis进程
ps -ef | grep redis

nginx安装

一. gcc 安装
yum install -y gcc-c++

二. PCRE pcre-devel 安装
yum install -y pcre pcre-devel
三. zlib 安装
yum install -y zlib zlib-devel

四. OpenSSL 安装
yum install -y openssl openssl-devel

五.nginx安装
https://blog.csdn.net/fukai8350/article/details/80634566
0. cd /usr/local/src
1. wget -c https://nginx.org/download/nginx-1.15.0.tar.gz
   解压tar -zxvf nginx-1.15.0.tar.gz
   cd nginx-1.15.0
2. 配置默认参数 ./configure
		(此处若要开启ssl功能,则
		./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
)
3. 编译 make && make install

六.开机自启动
vim /etc/rc.local
添加一行: /usr/local/nginx/sbin/nginx
加权限: chmod 755 /etc/rc.local

nginx配置ssl

查询nginx是否开启了ssl模块
/usr/local/nginx/sbin/nginx -V
NOTE:
编译时需要打开ssl模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
https://help.aliyun.com/document_detail/98728.html?spm=5176.2020520163.0.0.723a56a7Q5Vrc2
常用命令
nginx -s quit         优雅停止nginx,有连接时会等连接请求完成再杀死worker进程  
nginx -s reload     优雅重启,并重新载入配置文件nginx.conf
nginx -s reopen     重新打开日志文件,一般用于切割日志
nginx -v            查看版本  
nginx -t            检查nginx的配置文件
nginx -h            查看帮助信息
nginx -V       详细版本信息,包括编译参数 
nginx -c filename  指定配置文件

nginx问题

问题 HTTP 413 POST 文件上传过大报错
报错信息: <span style="color:#ff0000;">Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)</span>
解决: 在nginx.conf输入
 client_max_body_size 8M;(配置请求体缓存区大小, 不配的话) 
 client_body_buffer_size 128k;(设置客户端请求体最大值) 
 fastcgi_intercept_errors on;
 重启nginx: service nginx restart

nginx命令

nginx 常用命令
nginx -s quit //优雅停止nginx,有连接时会等连接请求完成再杀死worker进程

nginx -s reload //优雅重启,并重新载入配置文件nginx.conf

nginx -s reopen //重新打开日志文件,一般用于切割日志

nginx -v //查看版本

nginx -t //检查nginx的配置文件

nginx -h //查看帮助信息

nginx -V //详细版本信息,包括编译参数

nginx -c filename //指定配置文件

注:后来发现使配置文件生效不需要重启系统

只需要输入 source /etc/profile //让配置文件重新生效一下即可

nginx 跨域
//直接请求nginx也是会报跨域错误的这里设置允许跨域;
如果代理地址已经允许跨域则不需要这些, 否则报错(虽然这样nginx跨域就没意义了)

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

定位nginx执行的配置文件

image-20200611094739169

mysql安装

https://www.linuxidc.com/Linux/2016-09/135288.htm
https://www.linuxidc.com/Linux/2016-09/135288.htm

1. 下载mysql5.7 rpm包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

2. 本地安装 rpm包(noarch.rpm只是一些脚本,写入了mysql的yum源,在/yum/repo.d/下,没有二进制软件包)
yum localinstall mysql57-community-release-el7-8.noarch.rpm

3. 查看mysql的yum源是否安装上
ll /etc/yum.repos.d
yum repolist enabled | grep "mysql.*-community.*"

4. 


一.开放root远程连接
1.mysql -u root -p;     // 登录mysql, 并输入密码
2.use mysql;             // 打开 mysql 数据库
3.update user set host='%' where user='root' and host='localhost';//允许远程登录
update user set host='localhost' where user='root';  //禁止远程登录
4. flush privileges;    //刷新权限表,使配置生效
5. service mysqld restart  // 重启mysql服务
       
二.配置默认编码为utf-8
配置文件地址: /etc/my.cnf
添加配置项
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
重启服务 systemctl restart mysqld

show variables like '%character%';

硬盘挂载

https://help.aliyun.com/document_detail/25426.html?spm=a2c4g.11186623.2.28.483e7d56T6YKVi#concept-jl1-qzd-wdb

测试

wget --no-check-certificate 'https://www.kernel.org/pub/software/scm/git/git-2.0.5.tar.gz'
posted @ 2020-12-16 21:33  ylj-2021  阅读(177)  评论(0编辑  收藏  举报