加固系统,从端口做起

(1)、

 每多开放一个端口就多一份危险,这是肯定的。所以在系统里,一切不必要的端口都得关闭!

查看端口使用情况
# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:33936 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 10.0.0.22:33831 207.46.107.42:1863 ESTABLISHED
tcp 0 0 10.0.0.22:43127 219.133.60.250:80 ESTABLISHED
tcp 0 0 10.0.0.22:42904 58.60.14.191:8000 ESTABLISHED
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
---------------------------------------------------------------------------------------------

那么就从最小的开始吧~
80是我开的,不理它

111呢,不了解~ 好,那就打开/etc/services看下~
sunrpc rpcbind 111/tcp portmapper rpcbind # RPC 4.0 portmapper TCP
sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper UDP
第一列是服务名,第二列是端口号和协议类型,第三列是别名,第四列,也是就最后一列是注释来的~

到了这里,我假定你和我一样不懂英文。那么我们可以求助,但不是跑到门外大叫一场~
通过google得知,这个端口是RPC(Remote Procedure Call)服务开放的。像我这样用电脑,都是不会或极少(少到什么程序?可能到下次重装系统还是没用到两次)用到的,那不好意思,我得把你给关了

(2)、

通过services文件里的内容,我得到了三个关键字:portmapper,rpcbind,RPC
那就到services里找找看~
只找到了个rpcbind,先停了看看情况~

# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:33936 0.0.0.0:* LISTEN
tcp 0 0 10.0.0.22:33831 207.46.107.42:1863 ESTABLISHED
tcp 0 0 10.0.0.22:43127 219.133.60.250:80 ESTABLISHED
tcp 0 0 10.0.0.22:42904 58.60.14.191:8000 ESTABLISHED
tcp 0 0 :::80 :::* LISTEN

OK,确定111端口是由rpcbind服务打开的,禁了就行~
---------------------------------------------------------------------------------------------
3306是mysql的端口,跳过~

33936端口无法在/etc/services中查不到任何信息,那么这个端口就有可能是随机产生的了~
那就看下这个端口是由什么进程使用的,还有就是进程的其它信息,然后顺藤摸瓜,找到“犯人”,达到我们的目的

#netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:33936 0.0.0.0:* LISTEN 1829/rpc.statd
......

得到的信息太少了,得换一个工具才行~

# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpc.statd 1829 rpcuser 6u IPv4 7003 0t0 UDP *:733
rpc.statd 1829 rpcuser 8u IPv4 7010 0t0 UDP *:58417

(3)、

rpc.statd 1829 rpcuser 9u IPv4 7013 0t0 TCP *:33936 (LISTEN)
......

通过"lsof -i"命令,又了解到了这个进程是由rpcuser用户启动的~

那好,我们现在得去看下"rpcuser"这个用户的信息了~
#vim /etc/passwd
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

这就可以肯定它与nfs有关系,那我也不会用到,那就把nfs相关的服务都关了吧~(不知道哪些是?google!! )
通过多次的试验,这个是nfslock使用的端口,并且是动态的,也验证了前面的猜想~

小结:
关闭一个使用固定端口的服务,我们可以通过/etc/services(在win下也有services:X:/windows/system32/dirvers/etc/services)查找相关的信息,然后直接关闭服务就行了~

而对于一个使用动态端口的服务,在不了解服务的情况下,我们最先得知的是端口,然后通过了解这个端口是由哪个进程打开的,进一步了解进程的信息,包括进程名,由哪个用户启动的等等,然后顺着这些信息去确定这是一个什么服务。一但确定下来,我们的目的也就达到了

### Redis 集群搭建与配置教程 #### 一、概述 Redis 集群是一种分布式架构,允许将数据分布在多个节点上。这种设计不仅提高了系统的可用性和可靠性,还能显著增强性能和可扩展性[^1]。 --- #### 二、环境准备 要搭建一个完整的 Redis 集群,通常需要至少三个主节点和对应的从节点(总共六个节点),以确保高可用性。以下是具体的准备工作: - **服务器数量**:推荐使用六台物理机或虚拟机作为节点,如果只是测试用途,可以将这些节点部署在同一台机器的不同端口上[^3]。 - **软件安装**: - 下载最新版本的 Redis 源码包并解压。 - 使用 `make` 命令编译源码。 - 创建必要的工作目录,例如 `/data/redis-cluster/{node-port}`[^4]。 --- #### 三、配置文件设置 每个 Redis 节点都需要单独的配置文件,下面是一个典型的配置模板: ```conf port 6379 bind 0.0.0.0 daemonize yes pidfile /var/run/redis_6379.pid logfile /var/log/redis/redis_6379.log dir /var/redis/6379 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 5000 appendonly yes ``` - 修改以上配置中的 `port` 字段为对应节点的实际监听端口号。 - 如果是单机模拟多实例,则需调整 `dir`, `pidfile`, 和 `logfile` 参数以避免冲突[^3]。 --- #### 四、启动 Redis 节点 依次启动所有的 Redis 实例。假设已经准备好六个配置文件分别命名为 `redis6379.conf`, `redis6380.conf` 等,可以通过以下命令逐一启动: ```bash redis-server /path/to/redis6379.conf redis-server /path/to/redis6380.conf ... ``` 确认各进程正常运行后即可进入下一步。 --- #### 五、创建集群 使用 Redis 自带工具 `redis-cli --cluster create` 来初始化集群拓扑结构。具体语法如下所示: ```bash redis-cli --cluster create \ {ip}:6379 {ip}:6380 ... {ip}:{last_port} \ --cluster-replicas 1 ``` 其中 `{ip}` 替换为目标主机地址,最后附加参数 `--cluster-replicas 1` 表示每个主节点分配一名副本[^2]。 > 注意事项:此阶段会自动检测各个节点间连通状况,并完成 slot 分配任务。务必保证所有参与成员均处于在线状态。 --- #### 六、验证集群状态 登录任意一台节点执行以下指令查看健康情况: ```bash redis-cli -c -h {host_ip} -p {port} CLUSTER INFO CLUSTER NODES ``` 上述两条命令能够展示当前集群基本信息以及详细组成列表。 --- #### 七、常见问题排查 1. **节点无法加入集群** 可能原因包括防火墙阻止端口通讯或者 IP 地址绑定错误等问题。请仔细核对网络可达性及配置准确性[^3]。 2. **slot分布不均匀** 手动重新平衡负载可通过 `redis-cli --cluster rebalance` 工具辅助完成[^4]。 3. **主从切换异常** 检查是否有足够的存活哨兵监视目标分片组动态变化过程。 --- ### 总结 通过上述步骤便可以顺利建立起一套基础版 Redis 集群系统。当然,在生产环境下还需要考虑更多因素诸如安全加固、监控报警机制建设等方面内容[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值