centos 删除端口(centos如何安装软件)
这篇文章给大家聊聊关于centos 删除端口,以及centos如何安装软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
CentOS上的安全防护软件Selinux详解
selinux简介
SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux默认安装在Fedora和Red Hat Enterprise Linux上,也可以作为其他发行版上容易安装的包得到,2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中
DAC:Discretionary Access Control自由访问控制
MAC:Mandatory Access Control强制访问控制
DAC环境下进程是无束缚的
MAC环境下策略的规则决定控制的严格程度
MAC环境下进程可以被限制的
策略被用来定义被限制的进程能够使用那些资源(文件和端口)
默认情况下,没有被明确允许的行为将被拒绝
selinux的工作类型
selinux一共有四种工作类型
strict:每个进程都受到selinux的控制
targeted:用来保护常见的网络服务,仅有限进程受到selinux控制,系统当中默认设置类型
minimum:这个模式在centos7上,是targeted的修改版,只对选择的网络服务,仅对选中的进程生效
mls:提供mls机制的安全性,国防级别的
selinux安全上下文
传统的linux,一切皆文件,由用户、组、权限来进行访问控制,这当中有很多的缺陷
在selinux中,一切皆对象(进程),有存放在inode的扩展属性域的安全元素所控制其访问
所有文件和端口资源和进程都具备安全标签,这就是安全上下文
安全上下文有五个元素组成
system_u:object_r:admin_home_t:s0
user:role:type:sensitivity:category
user:指示登录系统的用户类型,如root,user_u,system_u,多数本地进程都属于自由进程
role:定义文件,进程和用户的用途,文件:object_r,进程和用户:system_r
type:指定数据类型,规则重定义何种进程类型访问何种文件,target策略基于type实现,多服务功用,public_content_t
sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,一个对象有且只有一个sensitivity,分0-15个级别,s0最低,target策略默认使用是s0
category:对于特定组织划分不分层的分类,如FBI secret,NSA secret,一个对象可以有多个category,c0-c1023共1024个分类,target策略不适用category
查看安全上下文
ls Z; ps-Z
期望(默认)上下文:存放在二进制的selinux策略库中
semanage fcontext l查看系统中的默认安全上下文
@font-face{
font-family:宋体;
}@font-face{
font-family: Cambria Math;
}@font-face{
font-family: Calibri;
}@font-face{
font-family:@宋体;
}p.MsoNormal, li.MsoNormal, div.MsoNormal{ margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: Calibri,sans-serif;}.MsoChpDefault{ font-family: Calibri,sans-serif;}div.WordSection1{}
selinux策略
对象(object):所有可以读取的对象,包括文件、目录和进程,端口等
主体:进程称为主题(subject)
selinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain标签。domain标签能够执行的操作由安全策略里定义
当一个subject视图访问一个object,kernel中的粗略执行服务器将检查AVC,在AVC中,subject和object的权限被缓存,查找应用+文件的安全环境,然后根据查询结果允许或拒绝访问
安全策略:定义主体读取对象的规则数据库,规则中记录了那个类型的主体使用了那个方法读取哪一个对象是允许还是拒绝的,并且定义了那种行为是允许或拒绝
设置selinux
配置selinux
selinux是否启用
给文件重新打安全标签
给端口设置安全标签
设定某些操作的布尔型开关
selinux的日志管理
selinux的状态
enforcing:强制,每个受限的进程都必然受限
permissive:允许;每个受限的进程违规操作不会被禁止,但会被记录与审计日志
disabled:禁用,允许任何操作
getenforce:获取selinux当前状态
sestatus:查看selinux状态
setenforce 0|1
0:设置为permissive
1:设置为enforcing
配置文件
/etc/sysconfig/selinux链接文件链接到/etc/selinux/config
/etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing SELinux security policy is enforced.
# permissive SELinux prints warnings instead of enforcing.
# disabled SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted Only targeted network daemons are protected.
# strict Full SELinux protection.
SELINUXTYPE=targeted
SELINUX=enforcing设置selinux的状态
SELINUXTYPE=targeted设置selinux的工作类型
设置selinux也可以在开机的时候设定,在/boot/grub/grub.conf文件内核那一行后面设定selinux的状态selinux=0|1,只要配置文件或内核设定为禁用,最后selinux的状态为禁用
注意:在从disabled状态切换至enforcing或permissive状态需要重启系统,这时候系统会对每一个文件一一重打标签,需要花费一定的时间。
修改selinux的安全标签
给文件重新打安全标签
chcon [OPTION] [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE..
chcon [OPTION] reference=RFILE FILE..
-R:递归打标,对目录而言
例如我想给自己定义的web文档根目录自定义为/htdocs
chcon-R httpd_sys_content_t/htdocs
恢复目录或文件默认的安全上下文
resotrecon [-R]/path/to/somewhere
例如:我又将web的文档根目录改为原来的目录,这时候自定义的目录的标签需要还原
restorecon-R/htdocs
恢复是根据策略库当中的策略进行还原
默认安全上下文查询与修改
semanage来自policycoreutils-python包,有些系统默认没有安装,安装次包即可使用semanage命令
查看默认的安全上下文
semanage fcontext l
添加安全上下文
semanage fcontext-a t httpd_sys_content_t/home/hadoop(/.*)?
restorecon Rv/home/hadoop此步骤一定不能忘记,它从策略库进行还原安全上下文,执行此命令才会生效
删除安全上下文
semanage fcontext d t httpd_sys_content_t/home/hadoop(/.*)?
selinux端口标签
查看端口标签
semanage port-l
添加端口
semanage port-a-t port_label p tcp|udp port
semanage port a-t htt_port_t-p tcp 8080
删除端口
semanage port-d-t port_label-p tcp|udp port
semanage port-d-t htt_port_t-p tcp 8080
修改现有(已存在)端口为新标签
semanage port-m t port_label p tcp|udp port
semanage port m t ssh_port_t p tcp 8080将ssh服务的端口改为8080
selinux布尔值
查看布尔值命令
getsebool [-a] [boolean]
semanage boolean l-C查看修改过的布尔值
设置bool值命令
setsebool [-P] boolean value(on|off|1|0)
setsebool httpd_enable_homedirs on|1开启httpd家目录访问,但不会写入策略库中
setsebool-P httpd_enable_homedirs on|1
修改bool值时后面的值可以对布尔值类型后跟=加值的设置方法
setsebool httpd_enable_homedirs=on
selinux的日志管理
需要安装settroublesshoot*安装此包需要重启系统才能生效,它会将错误日志记录到/var/log/message
grep setroubleshoot/var/log/message
sealer-l UUID
查看安全事件日志说明
sealert-a/var/log/audit/audit.log
扫描并分析日志
yum-y install selinux-policy-devel(centos7)
yum y install selinux-policy-doc(centos6)
mandb| makewhatis需要更新man帮助的数据才能查询
man-k _selinux
例如man httpd_selinux
总结:selinux在安全防护上确实起到了一定的作用,它是在内核层面来工作,往往有许多的漏洞,一旦黑客利用漏洞入侵系统后果不堪设想,还有其操作的繁琐和稳定性的欠缺的导致很多企业不愿意用到selinux,一般都会使用硬件的安全防护设备,所以我们只需要作为了解,知道有这么个东西,如何开关闭及一些简单的操作即可。
CentOS系统中怎么修改默认SSH端口
CentOS系统中怎么修改默认SSH端口?默认的centOS默认端口是22,时间久了你会找到很多日志文件,这是扫描攻击留下的错误日志。那么今天我们要做的就是改成只有自己知道的数字,这样降低了被扫描到的几率,也就等于提高了安全性。 1、登陆SSH修改配置文件,输入如下命令 vi/etc/ssh/sshd_config会出现如下提示,大家能够看到#port 22,代表默认端口22。按下键盘的a,vi命令中a是编辑,你按下a之后进入编辑状态,这时候可以用键盘的上下键移动绿色光标并用键盘的delete键删除前面的#号了。小提示:为什么要先把port 22前面的#去掉呢?因为在配置文件中,#是linux的注释,凡是#后的代码都不会执行。而SSH默认的端口为22,所以配置文件在默认的情况下以#出现。当你需要更改为其它端口或添加多端口同时SSH访问时,就要删掉注释符号,让程序能够执行你的命令。 2、如下图按回车另起一行手动添加12366端口(自定义端口建议选择5位数端口如:10000-65535之间),保留22是为了防止防火墙屏蔽了其它端口导致无法连接VPS,比如你注释了端口22,新添加的12366端口防火墙也没放行,那么恭喜你给自己挖坑了,可能下次你就无法通过SSH连接VPS了。为了防止这种尴尬的情况发生,就要给自己留条后路,等到新端口可以正常连接SSH了,再删除22端口也不迟。这时候按键盘的“ESC”键退出当前状态,再输入“:wq”命令保存退出。 3、以上修改完后,重启SSH服务,并退出当前连接的SSH端口。命令如下: service sshd restart 4、SSH软件里面把22端口改成12366端口再连接VPS试试看。在Xshell中点击文件,打开,弹出“会话”窗口,修改端口号为12366。然后保存、连接,这时候悲催的发现连不上VPS了,分析了一下是因为没有把12366端口添加到VPS的防火墙里面导致的,好在刚才给自己留了后门!所以再重复上面第四步把Xshell的端口号改回到22,登陆到VPS上面。 5、现在要做的是把12366端口添加到防火墙列表里面去。Vi编辑器打开防火墙列表的命令如下: vi/etc/sysconfig/iptables按下键盘的a,进入vi命令的编辑状态,回车另起一行使用上下键和delete键配合添加12366端口。不需要明白那些命令是什么意思,照着22端口原样输入一遍,只把端口从22改为12366就可以了,注意linux是区分大小写的。添加新端口之后,按下键盘的“ESC”退出当前状态,再输入:“:wq”命令保存退出。 6、修改了防火墙列表之后也得重启一下防火墙,命令如下: service iptables restart 7、现在输入防火墙状态查看命令如下 service iptables status如下图防火墙规则里面已经有12366端口了。 8、现在重复上面第4步里面的修改SSH软件端口的步骤,改为12366端口,连接VPS。弹出提示中选择“接受并保存”,以后再连接VPS就不会有这个提示了。当新端口能正常登陆后,重复上面第一步的操作,把刚才留的后门22端口删除掉。然后按照上面第三步的命令重启SSH。今天的主题是修改centOS的默认端口,但是涉及到的命令挺多,下面总结一下。 vi编辑器的简单应用,a是编辑,:wq是保存并退出,键盘“ESC”按键是退出当前状态。键盘的上下键和delete键删除添加。编辑SSH配置文件的命令:vi/etc/ssh/sshd_config重启SSH的命令:service sshd restart查看防火墙状态命令:service iptables status编辑防火墙列表的命令:vi/etc/sysconfig/iptables重启防火墙命令:service iptables restart在输入命令的时候需要注意linux是区分大小写的。魏艾斯博客希望大家通过本教程不但能掌握如何修改centOS端口的方法,还能了解一下相关的命令,同时熟悉linux中vi编辑器的简单命令。
Linux防火墙操作命令,开放或关闭端口
在外部访问 CentOS中部署应用时,需要通过防火墙管理软件进行端口管理。以下是 CentOS防火墙(firewalld)的常用命令和操作指南:
启动防火墙:systemctl start firewalld
查看防火墙状态:systemctl status firewalld
禁用防火墙,禁止开机启动:systemctl disable firewalld
停止防火墙运行:systemctl stop firewalld
使用 firewall-cmd命令配置防火墙:
开放端口:firewall-cmd--zone=public--add-port=80/tcp--permanent
查看已开放的端口:firewall-cmd--zone=public--list-ports
关闭端口:firewall-cmd--zone=public--remove-port=80/tcp--permanent
批量开放端口:firewall-cmd--zone=public--add-port=40000-45000/tcp--permanent
批量关闭端口:firewall-cmd--zone=public--remove-port=40000-45000/tcp--permanent
更新防火墙设置:firewall-cmd--reload
CentOS7防火墙操作命令:
安装防火墙:yum install firewalld
配置 firewall-cmd:
查看版本:firewall-cmd--version
查看帮助:firewall-cmd--help
显示状态:firewall-cmd--state
更新防火墙规则:firewall-cmd--reload
查看已激活的 Zone信息:firewall-cmd--get-active-zones
信任级别和 Zone的值指定:
drop:丢弃所有进入的包,而不给出任何响应
block:拒绝所有外部发起的连接,允许内部发起的连接
public:允许指定的进入连接
external:允许受限制的进入连接
dmz:允许受限制的进入连接
work:允许受信任的计算机被限制的进入连接
home:允许受信任的计算机被限制的进入连接
internal:允许受信任的计算机被限制的进入连接
trusted:信任所有连接
开启和关闭端口:
添加端口:firewall-cmd--zone=public--add-port=80/tcp--permanent
重新载入:firewall-cmd--reload
查看端口状态:firewall-cmd--zone=public--query-port=80/tcp
删除端口:firewall-cmd--zone=public--remove-port=80/tcp--permanent
管理服务:添加到 work zone
添加服务:firewall-cmd--zone=work--add-service=smtp
查看服务:firewall-cmd--zone=work--query-service=smtp
删除服务:firewall-cmd--zone=work--remove-service=smtp
配置 IP地址伪装:
查看伪装状态:firewall-cmd--zone=external--query-masquerade
打开伪装:firewall-cmd--zone=external--add-masquerade
关闭伪装:firewall-cmd--zone=external--remove-masquerade
端口转发:
打开端口转发:firewall-cmd--zone=external--add-masquerade
转发 tcp 22端口至 3753:firewall-cmd--zone=external--add-forward-port=22:porto=tcp:toport=3753
转发端口数据至另一个 IP的相同端口:firewall-cmd--zone=external--add-forward-port=22:porto=tcp:toaddr=192.168.1.112
转发端口数据至另一个 IP的 3753端口:firewall-cmd--zone=external--add-forward-port=22:porto=tcp:toport=3753:toaddr=192.168.1.112
使用 systemctl管理服务:
启动服务:systemctl start firewalld.service
关闭服务:systemctl stop firewalld.service
重启服务:systemctl restart firewalld.service
显示服务状态:systemctl status firewalld.service
在开机时启用服务:systemctl enable firewalld.service
在开机时禁用服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl--failed