17. Gerenciamento básico do Mysql no Linux
1. Mariadb no linux:
arquitetura de página web comum: LAMP (linux, Apache, Mysql, perl / python) / LNMP (linux, nginx, Mysql, perl / php);
mariadb é um ramo do mysql;
dnf install mariadb-server.x86_64 -y #mariadb的安装;
mariadb.service ##服务名称;
3306 ##默认端口号;
/etc/my.cnf.d/mariadb-server.cnf ##主配置文件;
/var/lib/mysql ##数据目录,当需要重新安装mariadb时需要清理此目录或备份;
2. Inicialização segura do mariadb:
2-1: Por padrão, após abrir o mariadb, você pode fazer login diretamente com o comando mysql; na
primeira vez que usar mariadb, você pode usar o comando mysql_secure_installation para inicialização segura: (você pode definir uma senha, etc .;)
2-2: feche a porta aberta do banco de dados:
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
skip-networking=1
systemctl restart mariadb
netstat -antlupe | grep mysql #此命令查询不到端口,表示关闭成功
Por padrão, a porta remota está aberta, há um grande risco de segurança, você precisa desligá-la:
3. Gerenciamento básico do banco de dados (adição, exclusão, modificação e investigação):
1.查看
SHOW DATABASES; ##显示库名称
USE mysql; ##进入mysql库
SHOW TABLES; ##显示库中的所有表
SELECT * FROM user; ##查询user表中的所有数据
SELECT Host,User,Password FROM user; ##查询user表中的指定字段
2.新建
CREATE DATABASE westos; ##新建库
CREATE TABLE linux (
username varchar(6) not null,
password varchar(30) not null
); ##新建表
DESC linux; ##显示表结构
INSERT INTO linux VALUES ('user1','123'); #插入数据
FLUSH PRIVILEGES; #刷新数据库
3.更改
ALTER TABLE redhat RENAME linux; #表的重命名
ALTER TABLE linux ADD age varchar(4) AFTER password; #更改表的结构,在password字段后添加age字段
ALTER TABLE linux DROP age; #删除表中的age字段
UPDATE linux SET sex='g' WHERE username='user2'; #更改linux表中,user2 的sex字段的值
4.删除
DELETE from linux where username='user2' and age='18';
DROP TABLE linux;
DROP DATABASE westos;
Conforme mostrado na figura: crie uma tabela chamada heihei e insira as informações correspondentes:
4. Backup do banco de dados:
mysqldump -uroot -p123 --all-database >/mnt/westos.sql #全部备份
mysqldump -uroot -p123 --all-database --no-data >/mnt/westos.sql #只备份表格,不备份数据
mysqldump -uroot -p123 westos >/mnt/westos.sql #备份westos库
mysqldump -uroot -p123 westos > /mnt/westos.sql
恢复方式1:
mysql -uroot -p123 -e "create database westos;"
mysql -uroot -p123 westos < /mnt/westos.sql
恢复方式2:
vim /mnt/westos.sql
CREATE DATABASE westos;
USE westos;
mysql -uroot -p123 < /mnt/westos.sql
5. Gerenciamento de senha de dados:
5-1: Alteração da senha do banco de dados:
mysqladmin -uroot -plee password westos
mysqladmin -uroot -p password westos 输入原密码后更改;
5-2: Quebra de senha do banco de dados:
systemctl stop mariadb
mysqld_safe --skip-grant-tables & #跳过授权表
UPDATE mysql.user set authentication_string=password('lee') WHERE User='root'; #更改mysql.user表中的用户认证信息
flush privileges;
ps aux | grep mysql
kill -9 mysql的所有进程
systemctl start mariadb
6. Autorização de usuários no banco de dados:
CREATE USER lee@localhost identified by 'lee'; ##建立lee用户,只能用localhost登陆(本机使用)
CREATE USER lee@'%' identified by 'lee'; ##建立lee用户,可以通过网络或localhost登陆
GRANT INSERT,SELECT ON westos.* TO lee@localhost; ##使lee用户在westos库中拥有insert,select权力
SHOW GRANTS for lee@localhost; ##查看lee用户的授权信息
REVOKE SELECT ON westos.* FROM lee@localhost; ##收回lee用户在westos库中的select权限;
DROP user lee@localhost; ##删掉lee用户;
7. Forma web de construção de banco de dados (phpmyadmin):
dnf install httpd php php-mysqlnd -y
systemctl enable --now httpd
systemctl stop firewalld
cp phpMyAdmin-3.4.0-all-languages.tar.gz /var/www/html/
cd /var/www/html/
tar zxf phpMyAdmin-3.4.0-all-languages.tar.gz
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
cd mysqladmin
cp config.sample.inc.php config.inc.php
systemctl restart httpd
firefox http://192.168.0.12/mysqladmin
Gerenciamento de firewall aprimorado em nível de kernel Selinux:
1. A função após o selinux ser ligada
: o impacto sobre os arquivos:
quando o selinux é ligado, o kernel carrega
tags para cada arquivo e cada programa aberto.O contexto de segurança (contexto) do programa e arquivo é registrado na tag ;
Impacto na função do programa:
Quando o selinux está ligado, ele carrega a função do interruptor do programa e define o estado deste interruptor para desligado.
Quando esta função é necessária, o interruptor da função deve ser ligado manualmente.
Este interruptor é denominado sebool;
Se o sistema ler o arquivo /.autorelabel durante a inicialização, o selinux será reinicializado;
2. Status e gerenciamento do Selinux:
selinux的开启
vim /etc/selinux/config
SELINUX=disabled #selinux关闭
SELINUX=enforcing #selinux开机设定为强制状态此状态为selinux开启,强制状态不可继续访问
SELINUX=permissive #selinux开机设定为警告状态此状态为selinux开启,警告状态可以继续访问
"selinux开启或关闭需要重启系统"
enforcing:
不符合条件一定不能被允许,并会收到警告信息
permissive:
不符合条件被允许,并会收到警告信息
selinux状态的查看:
getenforce
selinux开启后强制和警告级别的转换
setenforce 0 ##警告
setenforce 1 ##强制
selinux日志位置:
/var/log/audit/audit.log
3. Contexto de segurança da Selinux:
#临时修改
#此方式更改的安全上下文在selinux重启后会还原
chcon -t 标签 文件|目录
chcon -t public_content_t /var/ftp/westosfile1
chcon -Rt public_content_t /westosdir #修改目录及目录中的所有子文件的安全上下文
#永久修改安全上下文
#如果需要特殊指定安全上下文需要修改内核安全上下文列表
semanage fcontext -l ##查看内核安全上下文列表
semanage fcontext -a -t public_content_t '/westosdir(/.*)?' ##添加安全上下文,下次重启selinux后会更改,
restorecon -RvvF /westosdir/ ##显示/westos安全上下文的详细信息
touch /.autorelabel ##重启系统时selinux初始化文件标签开关文件
4. SEBOOL:
getsebool -a ##显示服务的bool值
setsebool -P ftpd_anon_write on ##更改服务的bool值
5. Restrições Selinux nas portas de serviço (modificação das portas):
semanage port -l | grep ssh ##查看服务允许使用的端口
semanage port -a -t ssh_port_t -p tcp 1111 ##添加端口
semanage port -a -t ssh_port_t -p tcp 1111 ##删除端口
netstat -antlupe | grep httpd ##查看服务使用的端口
Quando o selinux é ativado, o serviço precisa ter o contexto de segurança correto no sistema de arquivos e a chave sebool correspondente para concluir a operação correspondente;
6. Setrouble service:
/var/log/audit/audit.log ##selinux警告信息
/var/log/messages ##selinux问题解决方案
setroubleshoot-server ##此软件功能是采集警告信息并分析得到解决方案存放到message中,只提供解决方案,不考虑安全性