1 centOS 7 与 centOS 6 区别
后台开发常用到的区别:
- 1 加入了
systemctl
这一神器 - 2 防火墙设置不同
- 3 加入了更高级别的安全设置(SELinux)
centOS 7 与 centOS 6 区别可参考:
Linux学习总结(29)——CentOS 6和CentOS 7区别总结
2 防火墙设置
centOS 7 开始防火墙使用 firewalld
代替了 iptables
firewalld 简单使用:
开机启动 | 开机不启动 | 启动 | 停止 | 重启 | 查询状态 firewalld
防火墙服务
sudo systemctl enable|disable|start|stop|restart|status firewalld
永久(--permanent
) 开放(--zone=public
) 某一个端口:
sudo firewall-cmd --add-port=666/tcp --zone=public --permanent
同时永久(--permanent
) 开放(--zone=public
) 多个(包括连续的和不连续的)端口:
sudo firewall-cmd --add-port=667/tcp --add-port=888-890/tcp --zone=public --permanent
永久(--permanent
) 移除(remove
) 一个或多个开放的(--zone=public
)端口:
firewall-cmd --remove-port=6666/tcp --zone=public --permanent
查询开放的端口:
firewall-cmd --list-port
刷新/重新载入 防火墙:
sudo firewall-cmd --reload
在每一次更新防火墙规则(包括更新端口、添加屏蔽 ip 等操作) 之后都必须重新载入才会生效
关于 firewalld 参考资料:
What is the difference between iptables and uncomplicated firewall(UFW) in Linux?
How to Set Up a Firewall with FirewallD on CentOS 7
3 引入 SELinux
什么是 SELinux ? 其全名是: Security Enhanced Linux,简单来讲就是更高级别的安全设置(这玩意儿的戏特别多,一不小心就会被它坑了)
有些时候,当你以为使用 firewalld
开放了防火墙端口就万事大吉的时候,说不定你的服务就被这玩意给拦截了
SELinux
端口管理简单使用:
安装 SELinux
管理工具 semanage
:
yum install policycoreutils-python
查看某一项服务(如 http
) 相关的端口:
semanage port -l | grep http
向 SELinux
中添加一项服务(如 xxx
服务)的开放端口
semanage port -a -t xxx_port_t -p tcp 2333
将 SELinux
中的端口移除:
semanage port --delete -t http_port_t -p tcp 8899-8902
重启 SELinux
服务:
systemctl restart sshd.service
关于 SELinux 参考资料:
An Introduction to SELinux on CentOS 7
How to Disable SELinux on CentOS 7
Use SELinux Port Labeling To Allow Services To Use Non-Standard Ports
4 Nginx 端口转发 502
你绝对想不到当你按照 Nginx 官网教程来安装使用 Nginx 的时候,竟然也会报错,而罪魁祸首就是 SELinux
关于 Nginx 参考资料:
官方文档 Installing NGINX Open Source
官方文档 Controlling NGINX Processes at Runtime
官方文档 Creating NGINX Plus and NGINX Configuration Files
How to Remove / Uninstall Nginx on CentOS 7 / RHEL 7 / Oracle Linux 7
Linux下使用Nginx端口转发出现502错误的一种解决办法
CentOS 7中nginx反向代理因为selinux出现错误的解决办法
5 使用 systemctl 命令实现服务开机启动
systemctl 这一命令工具堪称神器,设置开机启动只是其功能的一项牛刀小试
思路:
- 1 将某一个程序(包含程序运行参数)设置为服务
- 2 执行
systemctl enable xxx.service
即可实现开机启动 - 3 执行
systemctl disable xxx.service
关闭开机启动 - 4 如果某一个程序安装之后本身就会注册成为服务(如mysql 安装之后其服务名称为
mysqld
),则跳过第 1 步
个人公众号:404Code,分享半个互联网人的技术与思考,感兴趣的可以关注.