加密安全和时间同步服务、日志服务和网络共享服务、http协议和apache服务

### 1. OpenSSH服务安全加固与免密认证

#### 安全加固措施:
- **禁用root远程登录**:在`/etc/ssh/sshd_config`中设置`PermitRootLogin no`。
- **更改默认端口**:修改`Port`值为非标准端口。
- **使用强密码策略**:启用密码复杂度检查工具如`pam_cracklib`。
- **禁用空密码登录**:确保`PermitEmptyPasswords no`。
- **限制用户登录**:使用`AllowUsers`或`DenyUsers`指定允许或拒绝的用户。
- **启用公钥认证**:设置`PubkeyAuthentication yes`,同时可以禁用密码认证`PasswordAuthentication no`。
- **限制连接次数**:使用`MaxStartups`参数限制未认证连接的数量。
- **设置登录超时**:使用`LoginGraceTime`设置登录超时时间。
- **使用防火墙规则**:限制只有特定IP地址才能访问SSH服务。

#### 免密认证原理及实现过程:
- **原理**:基于非对称加密算法,客户端生成一对密钥(公钥和私钥),公钥放置在服务器上,私钥保留在客户端。当客户端尝试连接时,它会使用私钥进行身份验证。
- **实现过程**:
  - 在客户端生成密钥对:`ssh-keygen -t rsa`。
  - 将客户端的公钥复制到服务器:`ssh-copy-id user@server`。
  - 验证免密登录:`ssh user@server`。

### 2. Sudo配置文件格式与示例

#### 文件格式:
- 基本格式:`user_list host_list = (runas_list) tag_list command_list`
- `user_list`:用户名或用户组。
- `host_list`:主机名或IP地址。
- `runas_list`:运行命令的身份,默认为root。
- `tag_list`:可选标签,如NOPASSWD。
- `command_list`:允许执行的命令列表。

#### 示例:
- 允许用户`john`无需密码执行所有命令:`john ALL=(ALL) NOPASSWD: ALL`
- 允许用户组`admin`在服务器`server1`上执行备份命令:`%admin server1=(ALL) /usr/bin/backup`

### 3. 搭建时间同步服务器

#### 配置过程:
- 安装NTP服务:`yum install ntp` 或 `apt-get install ntp`。
- 编辑配置文件`/etc/ntp.conf`,添加上游时间服务器。
- 开启NTP服务并设置开机启动:`systemctl start ntpd` 和 `systemctl enable ntpd`。
- 配置防火墙允许NTP流量:`firewall-cmd --add-service=ntp --permanent` 和 `firewall-cmd --reload`。

### 4. 常见日志服务管理

#### 日志服务:
- **rsyslog**:系统日志处理工具,支持网络日志接收。
- **syslog-ng**:另一种高效的日志管理系统。
- **fluentd**:用于统一日志记录层的数据收集工具。

### 5. 日志分类与优先级

#### 分类:
- `authpriv`:安全或权限相关消息。
- `cron`:定时任务信息。
- `daemon`:守护进程信息。
- `kern`:内核信息。
- `mail`:邮件系统信息。
- `local0`至`local7`:用户定义的消息类别。

#### 优先级:
- `emerg`:系统不可用。
- `alert`:必须立即采取行动。
- `crit`:关键条件。
- `err`:错误条件。
- `warning`:警告条件。
- `notice`:正常但重要的情况。
- `info`:信息性消息。
- `debug`:调试级别的消息。

#### 应用发送日志流程图:
1. 应用程序调用日志函数,指定日志级别和分类。
2. 日志消息发送给本地或远程rsyslog服务。
3. rsyslog根据配置文件规则处理日志,可能转发、过滤或存储日志。

### 6. SSHD日志写入rsyslog

编辑`/etc/rsyslog.conf`或创建一个自定义配置文件,例如`/etc/rsyslog.d/50-default.conf`,添加如下行:
```
local6.* /var/log/ssh.log
```
重启rsyslog服务使配置生效。

### 7. 集中管理多台主机的SSH日志

在每台主机上配置rsyslog将日志发送到中央日志服务器:
```
*.* @central-log-server-ip:514
```
在中央日志服务器上,确保rsyslog接受远程日志,并添加规则将SSH日志写入特定文件:
```
if $programname == 'sshd' then /var/log/all-ssh.log
```

### 8. `/var/log/`目录下的常用日志文件

- `messages`:通用系统日志。
- `secure`:安全相关信息,包括用户登录尝试。
- `maillog`:邮件系统日志。
- `cron`:定时任务日志。
- `boot.log`:启动过程中的日志。

### 9. journalctl命令选项及示例

- `-u <unit>`:显示特定服务的日志。
- `-b`:显示自最后一次启动以来的日志。
- `-f`:实时跟踪日志输出。
- `--since`和`--until`:显示指定时间范围内的日志。
- 示例:`journalctl -u sshd.service --since "2024-10-01" --until "2024-10-07"`

### 10. 集中写入Nginx日志到MySQL

- 使用rsyslog模块`ommysql`将日志发送到MySQL数据库。
- 配置示例:
  ```
  module(load="ommysql")
  *.* :ommysql:dbhost,dbname,dbuser,dbpassword
  ```

### 11. 使用Logrotate服务切割Nginx日志

编辑或创建`/etc/logrotate.d/nginx`文件,添加以下内容:
```
cat  /var/log/nginx/*.log {
    daily
    rotate 90
    compress
    delaycompress
    missingok
    notifempty
    create 0640 www-data adm
    maxsize 3M
}
```
此配置将每天切割一次Nginx日志,保持最多90天的日志记录,日志大小超过3MB时也会触发切割,且旧日志会被压缩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值