使用 centOS 7 注意事项(踩过的坑)



1 centOS 7 与 centOS 6 区别

后台开发常用到的区别:

  • 1 加入了 systemctl 这一神器
  • 2 防火墙设置不同
  • 3 加入了更高级别的安全设置(SELinux)

centOS 7 与 centOS 6 区别可参考:

Linux学习总结(29)——CentOS 6和CentOS 7区别总结

【Linux】CentOS6与CentOS7区别

CentOS7与CentOS6区别

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?

IPTABLES VS FIREWALLD

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

CentOS 7 在SELinux保护下安全打开端口

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,分享半个互联网人的技术与思考,感兴趣的可以关注.
404Code

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值