17. Gestión básica de Mysql en Linux
1. Mariadb en linux:
arquitectura de páginas web común: LAMP (linux, Apache, Mysql, perl / python) / LNMP (linux, nginx, Mysql, perl / php),
mariadb es una rama de mysql;
dnf install mariadb-server.x86_64 -y #mariadb的安装;
mariadb.service ##服务名称;
3306 ##默认端口号;
/etc/my.cnf.d/mariadb-server.cnf ##主配置文件;
/var/lib/mysql ##数据目录,当需要重新安装mariadb时需要清理此目录或备份;
2. Inicialización segura de mariadb:
2-1: De forma predeterminada, después de abrir mariadb, puede iniciar sesión directamente con el comando mysql; la
primera vez que usa mariadb, puede usar el comando mysql_secure_installation para una inicialización segura: (puede establecer una contraseña, etc .;)
2-2: cerrar el puerto abierto de la base de datos:
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
skip-networking=1
systemctl restart mariadb
netstat -antlupe | grep mysql #此命令查询不到端口,表示关闭成功
De forma predeterminada, el puerto remoto está abierto, existe un gran riesgo de seguridad, debe apagarlo:
3. Gestión básica de la base de datos (incorporación, borrado, modificación e investigación):
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;
Como se muestra en la figura: cree una tabla llamada heihei e inserte la información correspondiente:
4. Copia de seguridad de la base de datos:
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. Gestión de contraseñas de datos:
5-1: Cambio de contraseña de la base de datos:
mysqladmin -uroot -plee password westos
mysqladmin -uroot -p password westos 输入原密码后更改;
5-2: Craqueo de contraseñas de bases de datos:
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. Autorización de usuarios en la base de datos:
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. Formulario web de construcción de bases de datos (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
Gestión de firewall mejorada a nivel de kernel de Selinux:
1. El rol después de que selinux está activado
: el impacto en los archivos:
cuando selinux está activado, el kernel cargará
etiquetas para cada archivo y cada programa abierto El contexto de seguridad (contexto) del programa y el archivo se registra en la etiqueta ;
Impacto en las funciones del programa:
cuando selinux está activado, el interruptor de carga de funciones del programa se configurará y el estado de este interruptor se desactivará.
Cuando se necesite esta función, el interruptor de función debe
activarse manualmente. Este interruptor se llama sebool;
Si el sistema lee el archivo /.autorelabel al arrancar, selinux se reinicializará;
2.Estado y gestión de 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. El contexto de seguridad de 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. Restricciones de Selinux sobre puertos de servicio (modificación de puertos):
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 ##查看服务使用的端口
Cuando selinux está activado, si el servicio desea completar con éxito la operación correspondiente, debe tener el contexto de seguridad correcto en el sistema de archivos y también debe activar el interruptor sebool correspondiente;
6. Servicio Setrouble:
/var/log/audit/audit.log ##selinux警告信息
/var/log/messages ##selinux问题解决方案
setroubleshoot-server ##此软件功能是采集警告信息并分析得到解决方案存放到message中,只提供解决方案,不考虑安全性