2团
Published on 2024-08-15 / 12 Visits
0
0

服务器常规设置

1. 主机信息

server-info.png

主机信息如上所示。

2. 安装ntp

# 一般主机默认安装ntp
sudo apt isntall ntp
systemctl enable ntp
systemctl start ntp

3. 安装fail2ban

host-attack.png

上图是主机被尝试攻击的日志。

云主机暴露在网上,虽然密码强度足够且经常更换密码,但是还是存在一定的风险。

因此还是需要安装fail2ban进行保护(刚开始选择denyhosts,但是似乎不再维护)。

sudo apt install fail2ban
sudo systemctl enable fail2ban.service
sudo systemctl start fail2ban.service

通过fail2ban-client,可以查看封禁的具体信息。

fail2ban-status.png

4 Openresty代理

代理设置:

worker_processes  4;
error_log  logs/error.log  info;

pid        logs/nginx.pid;
worker_rlimit_nofile 8192;

events {
    worker_connections  4096;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;

    sendfile        on;
    tcp_nopush      on;

    keepalive_timeout  65;

    gzip  on;

    upstream halo {
	    server 127.0.0.1:8090;
    }

    server {
        listen       443 ssl reuseport;
        server_name  www.2tuan.site;
	    client_max_body_size 4m;
	    client_body_buffer_size 1m;
	    proxy_buffers 16 64k;
	    proxy_buffer_size 64k;

        ssl_certificate      2tuan.site_bundle.crt;
        ssl_certificate_key  2tuan.site.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

	    ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers  on;

	    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
		    proxy_pass http://halo;
		    expires 30d;
		    access_log off;
	    }

	    location ~ .*\.(js|css)?$ {
		    proxy_pass http://halo;
		    expires 7d;
		    access_log off;
	    }

	    location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) {
		    deny all;
	    }

        location / {
		    proxy_set_header HOST $host;
		    proxy_set_header X-Forwarded-Proto $scheme;
		    proxy_set_header X-Real-IP $remote_addr;
		    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		    proxy_pass http://halo;
	   }	
    }

    server {
	    listen 80 reuseport;
	    server_name www.2tuan.site;
	    return 301 https://$host$request_uri;
    }
}

Openretsy的代理配置,基本参照Halo官方文档给出的示例,仅对缓存进行了部分修改,原因如下所示:

buffer_exceed.png

Openresty在代理后端的图片文件,以及js文件时,因为代理缓冲区设置较小(代理数据不会直接下发),导致代理数据只能缓存至磁盘上,进而降低了系统的整体表现。

因此,针对性的调整了proxy_buffers以及proxy_buffer_size两个参数,重启Openresty服务配置即生效。

5. 修改ssh登录端口

需要注意,以下的修改方式仅适用于sshd.service。

如果不清楚当前systemd使用的是sshd.service还是sshd.socket,可以按照如下方式查看(红框部分):

sshd-service-or-sshd-socket.png

修改如下文件:

vim /etc/ssh/sshd_config

文件中将Port行注释解除,端口号设置为自己喜欢的端口。

此外,需要将防火墙设置进行修改:

# 下行中的***请替换为实际使用的端口
ufw allow ***
# 需要注意,删除22很有可能不生效
ufw delete allow ssh

6. Docker日志大小设置

配置添加于:/etc/docker/daemon.json,具体内容如下所示:

{
   "registry-mirrors": [
        "https://mirror.ccs.tencentyun.com"
    ],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    }
}

设置后重启docker服务,新增的docker服务即会遵循日志设置。


Comment