网络安全与主机基本防护:
限制端口, 网络升级与 SELinux
?预设的 Linux 防火墙就有两个机制,这两个机制都是独立存在的,因此我们预设就有两层防火墙喔。第一层是封包过滤式的 netfilter 防火墙,另一个则是透过软件控管的 TCP Wrappers 防火墙。
防火墙参考:https://blog.csdn.net/lm19770429/article/details/105820687
Linux:进程管理与 SELinux:https://blog.csdn.net/lm19770429/article/details/106058821
Linux:Apache应用设置,SELinux:https://blog.csdn.net/lm19770429/article/details/105843472
封包过滤防火墙: IP Filtering 或 Net Filter要进入 Linux 本机的封包都会先通过 Linux 核心的预设防火墙,就是称为 netfilter ,简单的说,就是 iptables 这个软件所提供的防火墙功能。主要是分析 TCP/IP 的封包表头来进行过滤的机制,主要分析的是 OSI 的第二、三、四层,主要控制的就是 MAC, IP, ICMP, TCP 与 UDP 的埠口与状态 (SYN, ACK...) 等。
第二层防火墙: TCP Wrappers通过 netfilter 之后,网络封包会开始接受 Super daemons 及 TCP_Wrappers 的检验,就是 /etc/hosts.allow与 /etc/hosts.deny 的配置文件功能, 这个功能也是针对 TCP 的Header 进行再次的分析,同样你可以设定一些机制来抵制某些 IP 或Port ,好让来源端的封包被丢弃或通过检验;
/var/log/messages 与 /var/log/secure,登录文件记录的功能,为了记录历史历程
?yum 的使用:
[root@www ~]# yum [option] [查询的工作项目] [相关参数]
选项与参数:
option:主要的参数,包括有:
-y :当 yum 询问使用者的意见时,主动回答 yes 而不需要由键盘输入;
[查询的工作项目]:由于不同的使用条件,而有一些选择的项目,包括:
install :指定安装的软件名称,所以后面需接『 软件名称 』
update :进行整体升级的行为;当然也可以接某个软件,仅升级一个软件;
remove :移除某个软件,后面需接软件名称;
search :搜寻某个软件或者是重要关键字;
list :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa;
info :同上,不过有点类似 rpm -qai 的执行结果;
clean :下载的档案被放到 /var/cache/yum ,可使用 clean 将他移除,
可清除的项目: packages | headers | metadata | cache 等;
在[查询的工作项目]部分还可以具有整个群组软件的安装方式,如下所示:
grouplist :列出所有可使用的『软件群组』,例如 Development Tools之类的;
groupinfo :后面接 group_name,则可了解该 group 内含的所有软件名;
groupinstall:这个好用!可以安装一整组的软件群组,相当的不错用!
更常与 --installroot=/some/path 共享来安装新系统
groupremove :移除某个软件群组;
范例一:搜寻 CentOS 官网提供的软件名称是否有与 RAID 有关的?
[root@www ~]# yum search raid
范例二:上述输出结果中, mdadm 的功能为何?
[root@www ~]# yum info mdadm
查询系统有的软件群组有多少个?
[root@www ~]# LANG=C yum grouplist
Desktop Platform 内含多少个 RPM 软件呢?
[root@www ~]# yum groupinfo "Desktop Platform"
[root@www ~]# yum groupinstall "Desktop Platform"
CentOS 可以每天自动更新系统:
可以使用『 crontab -e 』,也可以编辑『 vim /etc/crontab 』来实现
使用 vim /etc/crontab 来进行指令的说明。其实内容很简单:
40 5 * * * root yum -y update && yum clean packages
这样就可以自动更新了,时间订在每天的凌晨 5:40 。
[root@www ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[base]:
代表容器的名字!中刮号一定要存在,里面的名称则可以随意取。但是不能有两个相同的容器名称,否则 yum 会不晓得该到哪里去找容器相关软件列表档案。
baseurl=:
这个最重要,因为后面接的就是容器的实际网址! mirrorlist 是由 yum 程序自行, baseurl 则是指定固定的一个容器网址!
enable=1:
就是让这个容器被启动。
[root@www ~]# yum clean all <==改过配置文件,最好清除既有清单
范例:列出目前 yum server 所使用的容器有哪些?
[root@www ~]# yum repolist all
清除掉本机上面的旧数据,在/var/cache/yum 里面,使得本机的列表与 yum 服务器的列表同步
[root@www ~]# yum clean [packages|headers|all]
选项与参数:
packages:将已下载的软件档案删除
headers :将下载的软件文件头删除
all :将所有容器数据都删除
限制联机 (port)
由于 port 的启动与服务有关,那么『服务』跟『 port 』对应的档案是『 /etc/services 』!
列出在监听的网络服务:
[root@www ~]# netstat -tunl
列出已联机的网络联机状态:
[root@www ~]# netstat -tun
同时扫瞄本机的 TCP/UDP 埠口
[root@www ~]# nmap -sTU localhost
透过 ICMP 封包的检测,分析区网内有几部主机是启动的
[root@www ~]# nmap -sP 192.168.1.0/24
关闭端口步骤:
先找到port信息,获得进程号
[root@www ~]# netstat -tnlp | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 990/rpcbind
tcp 0 0 :::111 :::* LISTEN 990/rpcbind
# 原来用的是 rpcbind 这个服务程序!
[root@www ~]# which rpcbind
/sbin/rpcbind
# 找到档案后,再以 rpm 处理处理
[root@www ~]# rpm -qf /sbin/rpcbind
rpcbind-0.2.0-8.el6.x86_64
# 找到了!就是这个软件!所以将他关闭的方法可能就是:
[root@www ~]# rpm -qc rpcbind | grep init
/etc/rc.d/init.d/rpcbind
[root@www ~]# /etc/init.d/rpcbind stop
|