运维题目(三)

1、LINUX系统软件安装和卸载的常见方法

安装: 1.yum安装  2.编译安装 3.二进制包安装  4.rmp包

删除:1.yum -remove    2.rpm -e  3.rm -fr 对应的软件解压路径

2、Windows和LINUX常用的远程连接工具有那些

mstsc/ssh/telnet/vnc/ftp/sftp

3、如何修改LINUX的IP地址、网关和主机名

vim /etc/sysconfig/network-scripts/ifcfg-网卡名
vim /etc/sysconfig/network

4、编写脚本实现以下功能

  • 每天早上5点开始做备份
  • 要备份的是/var/mylog里所有文件和目录可以压缩进行备份
  • 备份可以保存到别一台器上192、168、1、2 FTP帐号 aaa 密码 bbb
  • 要示每天
  • 的备份文件要带有当天的日期标记
#!/bin/bash
bakdir=mylog
date=`date +%F`
cd /var
tar zcf ${bakdir}_${date}.tar.gz ${bakdir}
sleep 1
ftp -n <<- EOF
open 192.168.142.129    #远程ftp服务器IP
user aaa bbb
put mylog_*.tar.gz
bye
EOF  

#添加crontab:
crontab -e
00 05 * * * /bin/bash /root/mylogbak.sh     #每天早上5点开始执行备份脚本

5、IPTABLES相关的命令iptables

6、mysql相关的题

  1.新安装MYSQL后怎样提升MYSQL的安全级别

  2.MYSQL的主从原理,怎么配置文件

  3.为MYSQL添加一个用户

题1:

1、避免从互联网访问MySQL数据库,确保特定主机才拥有访问特权

  直接通过本地网络之外的计算机改变生产环境中的数据库是异常危险的。有时,管理员会打开主机对数据库的访问:

  > GRANT ALL ON *.* TO ‘root‘@‘%‘;

  这其实是完全放开了对root的访问。所以,把重要的操作限制给特定主机非常重要:

  > GRANT ALL ON *.* TO ‘root‘@‘localhost‘;

  > GRANT ALL ON *.* TO ‘root‘@‘myip.athome‘

  > FLUSH PRIVILEGES

  此时,你仍有完全的访问,但只有指定的IP(不管其是否静态)可以访问。

2、定期备份数据库

  任何系统都有可能发生灾难。服务器、MySQL也会崩溃,也有可能遭受入侵,数据有可能被删除。只有为最糟糕的情况做好了充分的准备,才能够在事后快速地从灾难中恢复。企业最好把备份过程作为服务器的一项日常工作。

3、禁用或限制远程访问

  前面说过,如果使用了远程访问,要确保只有定义的主机才可以访问服务器。这一般是通过TCP wrappers、iptables或任何其它的防火墙软件或硬件实现的。

  为限制打开网络socket,管理员应当在my.cnf或my.ini的[mysqld]部分增加下面的参数:

  skip-networking

  这些文件位于windows的C:\Program Files\MySQL\MySQL Server 5.1文件夹中,或在Linux中,my.cnf位于/etc/,或位于/etc/mysql/。这行命令在MySQL启动期间,禁用了网络连接的初始化。请注意,在这里仍可以建立与MySQL服务器的本地连接。

  另一个可行的方案是,强迫MySQL仅监听本机,方法是在my.cnf的[mysqld]部分增加下面一行:

  bind-address=127.0.0.1

  如果企业的用户从自己的机器连接到服务器或安装到另一台机器上的web服务器,你可能不太愿意禁用网络访问。此时,不妨考虑下面的有限许可访问:

  mysql> GRANT SELECT, INSERT ON mydb.* TO ‘someuser‘@‘somehost‘;

  这里,你要把someuser换成用户名,把somehost换成相应的主机。

4、设置root用户的口令并改变其登录名

  在linux中,root用户拥有对所有数据库的完全访问权。因而,在Linux的安装过程中,一定要设置root口令。当然,要改变默认的空口令,其方法如下:

  Access MySQL控制台:$ mysql -u root -p

  在MySQL控制台中执行:

  > SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘new_password‘);

  在实际操作中,只需将上面一行的new_password换成实际的口令即可。

  在Linux控制台中更改root口令的另一种方法是使用mysqladmin工具:

  $ mysqladmin -u root password new_password

  此时,也是将上面一行的new_password换成实际的口令即可。

  当然,这是需要使用强口令来避免强力攻击。

  为了更有效地改进root用户的安全性,另一种好方法是为其改名。为此,你必须更新表用户中的mySQL数据库。在MySQL控制台中进行操作:

  > USE mysql;

  > UPDATE user SET user="another_username" WHERE user="root";

  > FLUSH PRIVILEGES;

  然后,通过Linux访问MySQL控制台就要使用新用户名了:

  $ mysql -u another_username -p

5、移除测试(test)数据库

  在默认安装的MySQL中,匿名用户可以访问test数据库。我们可以移除任何无用的数据库,以避免在不可预料的情况下访问了数据库。因而,在MySQL控制台中,执行:

  > DROP DATABASE test;

6、禁用LOCAL INFILE

  另一项改变是禁用”LOAD DATA LOCAL INFILE”命令,这有助于防止非授权用户访问本地文件。在PHP应用程序中发现有新的SQL注入漏洞时,这样做尤其重要。

  此外,在某些情况下,LOCAL INFILE命令可被用于访问操作系统上的其它文件(如/etc/passwd),应使用下现的命令:

  mysql> LOAD DATA LOCAL INFILE ‘/etc/passwd‘ INTO TABLE table1

  更简单的方法是:

  mysql> SELECT load_file("/etc/passwd")

  为禁用LOCAL INFILE命令,应当在MySQL配置文件的[mysqld]部分增加下面的参数:

  set-variable=local-infile=0

7、移除匿名账户和废弃的账户

  有些MySQL数据库的匿名用户的口令为空。因而,任何人都可以连接到这些数据库。可以用下面的命令进行检查:

  mysql> select * from mysql.user where user="";

  在安全的系统中,不会返回什么信息。另一种方法是:

  mysql> SHOW GRANTS FOR ‘‘@‘localhost‘;

  mysql> SHOW GRANTS FOR ‘‘@‘myhost‘;

  如果grants存在,那么任何人都可以访问数据库,至少可以使用默认的数据库“test”。其检查方法如下:

  shell> mysql -u blablabla

  如果要移除账户,则执行命令:

  mysql> DROP USER "";

  从MySQL的5.0版开始支持DROP USER命令。如果你使用的老版本的MySQL,你可以像下面这样移除账户:

  mysql> use mysql;

  mysql> DELETE FROM user WHERE user="";

  mysql> flush privileges;

8、降低系统特权

  常见的数据库安全建议都有“降低给各方的特权”这一说法。对于MySQL也是如此。一般情况下,开发人员会使用最大的许可,不像安全管理一样考虑许可原则,而这样做会将数据库暴露在巨大的风险中。

  为保护数据库,务必保证真正存储MySQL数据库的文件目录是由”mysql” 用户和” mysql”组所拥有的。

  shell>ls -l /var/lib/mysql

  此外,还要确保仅有用户”mysql”和root用户可以访问/var/lib/mysql目录。

  Mysql的二进制文件存在于/usr/bin/目录中,它应当由root用户或特定的”mysql”用户所拥有。对这些文件,其它用户不应当拥有“写”的访问权:

  shell>ls -l /usr/bin/my*

9、降低用户的数据库特权

  有些应用程序是通过一个特定数据库表的用户名和口令连接到MySQL的,安全人员不应当给予这个用户完全的访问权。

  如果攻击者获得了这个拥有完全访问权的用户,他也就拥有了所有的数据库。查看一个用户许可的方法是在MySQL控制台中使用命令SHOW GRANT

  >SHOW GRANTS FOR ‘user‘@‘localhost‘;

  为定义用户的访问权,使用GRANT命令。在下面的例子中,user1仅能从dianshang数据库的billing表中选择:

  > GRANT SELECT ON billing.dianshang TO ‘user1‘@‘localhost‘;

  > FLUSH PRIVILEGES;

  如此一来,user1用户就无法改变数据库中这个表和其它表的任何数据。

  另一方面,如果你要从一个用户移除访问权,就应使用一个与GRANT命令类似的REVOKE命令:

  > REVOKE SELECT ON billing.ecommerce FROM ‘user1‘@‘localhost‘;

  > FLUSH PRIVILEGES;

10、移除和禁用.mysql_history文件

  在用户访问MySQL控制台时,所有的命令历史都被记录在~/.mysql_history中。如果攻击者访问这个文件,他就可以知道数据库的结构。

  $ cat ~/.mysql_history

  为了移除和禁用这个文件,应将日志发送到/dev/null。

  $export MYSQL_HISTFILE=/dev/null

  上述命令使所有的日志文件都定向到/dev/null,你应当从home文件夹移除.mysql_history:$ rm ~/.mysql_history,并创建一个到/dev/null的符号链接。

11、安全补丁

  务必保持数据库为最新版本。因为攻击者可以利用上一个版本的已知漏洞来访问企业的数据库。

12、启用日志

  如果你的数据库服务器并不执行任何查询,建议你启用跟踪记录,你可以通过在/etc/my.cnf文件的[Mysql]部分添加:log =/var/log/mylogfile。

  对于生产环境中任务繁重的MySQL数据库,因为这会引起服务器的高昂成本。

  此外,还要保证只有root和mysql可以访问这些日志文件。

  错误日志

  务必确保只有root和mysql可以访问hostname.err日志文件。该文件存放在mysql数据历史中。该文件包含着非常敏感的信息,如口令、地址、表名、存储过程名、代码等,它可被用于信息收集,并且在某些情况下,还可以向攻击者提供利用数据库漏洞的信息。攻击者还可以知道安装数据库的机器或内部的数据。

  MySQL日志

  确保只有root和mysql可以访问logfileXY日志文件,此文件存放在mysql的历史目录中。

13、改变root目录

  Unix操作系统中的chroot可以改变当前正在运行的进程及其子进程的root目录。重新获得另一个目录root权限的程序无法访问或命名此目录之外的文件,此目录被称为“chroot监狱”。

  通过利用chroot环境,你可以限制MySQL进程及其子进程的写操作,增加服务器的安全性。

  你要保证chroot环境的一个专用目录,如/chroot/mysql。此外,为了方便利用数据库的管理工具,你可以在MySQL配置文件的[client]部分改变下面的参数:

  [client]

  socket = /chroot/mysql/tmp/mysql.sock

14、禁用LOCAL INFILE命令

  LOAD DATA LOCAL INFILE可以从文件系统中读取文件,并显示在屏幕中或保存在数据库中。如果攻击者能够从应用程序找到SQL注入漏洞,这个命令就相当危险了。下面的命令可以从MySQL控制台进行操作:

  > SELECT LOAD_FILE("/etc/passwd");

  该命令列示了所有的用户。解决此问题的最佳方法是在MySQL配置中禁用它,在CentOS中找到/etc/my.cnf或在Ubuntu中找到/etc/mysql/my.cnf,在[mysqld]部分增加下面一行:set-variable=local-infile=0。搞定。

  当然,唇亡齿寒,保护服务器的安全对于保障MySQL数据库的安全也是至关重要的。服务器的安全对于数据库来说可谓生死攸关。

题2:

从库生成两个线程,一个I/O线程,一个SQL线程;

i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;

主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;

SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;

题3:

CREATE USER ‘user1‘@‘%‘ IDENTIFIED BY ‘yourpasswd‘;

原文地址:https://www.cnblogs.com/benjamin77/p/8445541.html

时间: 2024-07-31 07:09:01

运维题目(三)的相关文章

Linux运维 第三阶段 (七) NFS

Linux运维 第三阶段 (七) NFS配置 1,服务器端软件:安装nfs-utils和portmap(rpcbind)nfs-utils: 提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的套件 portmap: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM,都要做好PORT的对应工作,而且这样的任务就是由PORTMAP来完成的.通俗的说PortMap就是用来做PORT的mapping 的.NFS需要

Linux运维 第三阶段 (十七) memcached

一.相关概念: memcached.org(live journal站点贡献的),很多流行站点都在用,如wikipedia.twitter.youtube.mixi等,memcached是非常流行的缓存服务,众多的应用程序开发基本都支持memcached缓存(C有C库,C++有C++库,php有php库,开发时都可直接调用memcached功能,若某个应用程序开发时不用memcached,它就不能往memcached中缓存数据,缓存数据与否取决于app自身,由app决定缓不缓存用不用它) mem

Linux运维 第三阶段 (二十) tomcat

一.相关概念(1.编程语言:2.servlet.jsp:3.tomcat): tomcat(app-server server) 为提高tomcat工作性能,前端要引入很多组件(如cache server(varnish)同样对它生效) 1.编程语言: php相关框架.网站程序设计涉及到的基本内容: php: 开发语言,脚本语言,动态语言: 安装的php是个运行环境: 用php开发语言开发网站程序,这个程序在运行环境中解释执行,若每条指令都解释执行.每个用户请求的动态内容都解释执行这将非常慢:在

Linux运维 第三阶段 (十九) varnish(1)

Linux运维 第三阶段 (十九) varnish 一.相关概念: http/1.0-->http/1.1(重大改进:对缓存功能实现了更精细化的设计) RFC(request file comment,每一种协议都有请求注解文档,讲协议规范) http页面由众多的web object组成,有些是静态,有些是通过程序执行后生成的:为加速web的访问,browser中引入了缓存机制,能将访问的静态内容或可缓存的动态内容缓存到本地,而后client再次到原始server上请求之前相同的内容时,如果原始

Linux运维 第三阶段 (六) 搭建LAMP环境

Linux运维 第三阶段(六) 搭建LAMP环境 环境:RHEL6 X386或X86_64,其中64位在此文中已用()标明注意事项. 一.准备工作 1.安装编译工具gcc.gcc-c++ 注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源-- # yum -y install gcc # yum -y install gcc-c++ 2.关闭系统RPM安装包的Apache.MySQL的服务 关闭启动的服务httpd.mysqld #service httpd stop #

Linux运维 第三阶段 (十二)tcp wrapper

Linux运维第三阶段(十二)tcp wrapper tcp wrapper tcp wrapper(工作在TCP层的访问控制工具,通常只对TCP协议的应用做控制,它本身只是个库文件libwrap.so(由glibc提供)) 当来自客户端的请求访问本机服务时,请求先到达本机网卡,再到内核TCP/IP协议栈,路由发现是访问本机的,转至用户空间服务所监听的套接字上,服务响应送至内核TCP/IP协议栈,再通过路由经网卡返回至客户端:有了tcp wrapper后,在这过程当中附加了一层访问控制机制,由t

Linux运维 第三阶段 (十三)nss&pam

Linux运维第三阶段(十三)nss&pam 一.nss(network service switch网络服务转换) authentication(认证,决定用户的用户名和密码是否能通过检验) authorization(授权,决定用户是否能访问某服务) audition(审计) username-->UID groupname-->GID http-->80port FQDN-->IP(hosts文件,DNS,mysql,NIS(networkinformation se

Linux运维 第三阶段 (十一)iptables

Linux运维第三阶段(十一)iptables iptables linux防火墙:netfilter(框架framework):iptables(生成防火墙规则并将其附加在netfilter上,真正实现数据报文过滤.NAT.mangle等规则生成的工具):真正起作用的是规则,规则放在netfilter上才能生效 网络防火墙的功能根据TCP/IP首部实现的 IP报文(见文末附图): fragment ID(段标识) MF(more fragment) DF(don't fragment,单个报文

运维题目

你用过那些LVS ,并讲述LVS各个模式的特点和区别?   [送二分] dr模式用得比较多吧,这个模式效率最好.因为他的原理是把收到的包改了下hw地址就丢给交换机了 这样就造成两个大缺点 1是所有负载机器都要在同一个ip段才能响应,所以在idc上架的时候,为了方便扩容一开始就要预留好同ip段的ip,留ip是要钱的 2所有用户发过来的包交换机都要处理2次,加大了前端交换机的压力 3这种模式对收包少,回包多的应用(http常规应用)非常有效,但是如果是注册.登录之类(post大数据)的应用服务器,由

Linux运维 第三阶段 (三) vsftpd服务

Linux运维 第三阶段 (二) vsftpd服务 1.FTP(filetransfer protocol),以TCP数据包的模式进行服务器与客户端之间的文件传输: 数据连接:TCP20,用于上传下载数据:TCP21,用于发送FTP命令信息: 数据连接的建立类型:主动模式(服务端从20端口主动向客户端发起连接):被动模式(服务端在指定范围内某个端口被动等待客户端连接): FTP的用户类型:匿名用户(anonymous或ftp):本地用户(账号密码等信息保存在/etc/passwd./etc/sh