【Linux】Linux(CentOS 7)安全策略设置

Posted by 西维蜀黍 on 2017-09-27, Last Modified on 2021-09-21

1 开启防火墙

注: RedHat RHEL7系统后已经用firewalld服务代替了iptables服务,新的防火墙服务管理命令为firewall-cmd(图形化管理工具firewall-config)。

(1)启动防火墙

$ sudo systemctl start firewalld.service

(2)开机自启动防火墙

$ sudo systemctl enable firewalld.service

(3)检查防火墙状态

$ sudo systemctl status firewalld.service

未启动:

启动后:

拒绝一切端口后开启相应端口(iptables先拒绝然后开启对应端口,如80for http,443for https) 检查防火墙是否开启

(4)重启防火墙

$ sudo systemctl restart firewalld.service

(5)【重要】只放行需对外开放的端口

当防火墙开启后,检查当前可直接被访问的端口:

$ firewall-cmd --zone=public --list-port

只放行需要对外开放的端口(如HTTP的80,HTTPS的443…)。

永久开放80端口:

$ firewall-cmd --zone=public --add-port=80/tcp --permanent

Note: --zone=public这里涉及防火墙的网络区域概念


示例,开放36582端口作为ssh服务:

$ firewall-cmd --zone=public --add-port=36582/tcp --permanent


以上设置完成后,重启防火墙以使设置立即生效:

$ firewall-cmd --reload

2 配置ssh

a 修改默认的ssh端口

默认的ssh端口为22,建议修改为一个未被其他服务占用的随机端口,如12315,25126…。

$ sudo vim /etc/ssh/sshd_config

Port 26942:设置ssh的端口为26942


b 禁止Root通过SSH远程登录

$ sudo vim /etc/ssh/sshd_config

PermitRootLogin yes修改为PermitRootLogin no

c 重启sshd服务

重启sshd服务,已使以上设置生效

$ sudo systemctl restart sshd

2 使用一个普通权限的用户

进行ssh远程管理时,使用普通用户userSW登录。登陆后,当需要root权限以执行命令时, su root 切换到root用户。

添加一个拥有普通权限的新用户

$ useradd userSW

为该新用户设置密码

$ passwd userSW

3【可选】限制可使用SSH登录的IP

a 设置禁止所有 IP 连接服务器的SSH

$ vim /etc/hosts.deny

设置sshd:all:deny

b 设置允许指定 IP 连接服务器的SSH

$ vim /etc/hosts.allow

设置sshd:192.168.1.106:allow(192.168.1.106为允许访问的IP)。

c 重启SSH服务

重启SSH服务,并通过登录进行验证

$ sudo systemctl restart sshd.service