背景: 一般为提升项目部署服务的安全性,避免客户对产品漏扫造成不必要的麻烦,对外项目部署时必须开启防火墙。
- 服务器SSHD默认22端口修改为其他自定义端口(自定义端口设置时尽量向后定义);
a) 执行 vim /etc/ssh/sshd_config
b) 修改#Prot 22 为 Prot xxxx;:wq保存并退出。
c) 执行 /etc/init.d/sshd restart 重启sshd服务
d) 测试:使用ssh工具连接该端口
2. 开启防火墙并设置开机自启防火墙;
[root@xdja ~]systemctl start firewalld.service #开启防火墙
[root@xdja ~]systemctl enable firewalld.service #设置开机自启防火墙
3. 将所有业务服务端口、服务器SSHD端口添加防火墙白名单;
例: 将8080端口加到白名单
[root@xdja ~] firewall-cmd --permanent --add-port=8080/tcp #8080端口加到白名单
[root@xdja ~] firewall-cmd --reload #生效规则
[root@xdja ~] firewall-cmd --list-ports #查看防火墙端口白名单
[root@xdja ~] firewall-cmd --zone=public --remove-port=8080/tcp –permanent #删除白名单
执行:
4. 配置rich-rule规则实现部分端口的访问ip控制。例如常用的mysql服务如果非仅本机访问需要设置访问机器IP,如涉及主从同步,需额外增加从数据库IP访问。
例指定192.168.241.10/32能访问mysql 3306端口:
[root@xdja ~] firewall-cmd --zone=public --permanent --add-rich-rule="rule family="ipv4" source address="192.168.241.10/32" port protocol="tcp" port="3306" accept" #指定访问
[root@xdja ~] firewall-cmd --reload #生效规则
[root@xdja ~] firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.241.10/32" port protocol="tcp" port="3306" accept" #删除访问源控制
执行
补充:
firewalld的基本使用
- 启动: systemctl start firewalld
- 查看状态: systemctl status firewalld || systemctl status firewalld.service || firewall-cmd --state
- 停止: systemctl disable firewalld
- 禁用: systemctl stop firewalld
使用防火墙策略限制访问必须保证firewalld.service服务是正常运行的。
新年新气象,2021冲冲冲!!!