linux总结之基础知识

最近很久没用linux,很多知识点都不记得了,赶紧复习复习,顺便把笔记整理一下。

一.文件的类型与权限

1.文件类型

1.jpg

1).第一个字符
以 d 开头的是文档(目录);

  • 开头的是文件(例如 : .txt);

2).接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

r=4,w=2,x=1; 7=rwx 6=rw

文件的属性最高为666,文档的属性最高为777.(文件没有x可执行权限)

第一组为『文件拥有者的权限』,以-rw-, 该文件的拥有者可以读写,但不可执行;
第二组为『同群组的权限』;
第三组为『其他非本群组的权限』。

第七栏:如果档名之前多一个『 . 』,则代表这个文件为『隐藏档』

『ls』及『ls -a』、『ls -l』这两个指令的区别:
ls 显示当前下面的文件及文件夹
ls -a 显示当前目录下的所有文件及文件夹包括隐藏的.文件
ls -l 显示详细信息包括大小,属组,创建时间

2.png

2.umask

1).判断文件的权限

umask:权限掩码
控制用户的默认权限
当建立一个新的文件或目录时,它的默认属性是与umask有关的。

umask默认为022, umask指定的是该默认值需要减掉的权限。因为r/w/x分别是4/2/1,也就是说,当要去掉写权限时,就输入2,要去掉读权限时,就输入4,要去掉读和写的权限时,就输入6。

那么建立一个文件,文件的权限为666-022=644(-rw-r-r-)
文档的权限为777-022=755(drwxr-xr-x)

例:建立一文档

umask    //看看它的默认值,为022
mkdir text    //创建一个文档text
ls -l        //显示列表

如图:drwxr-xr-x ..... test
则text的权限为755(777-022)

3.png

建立一个文件    
 touch a.txt
ls -l  //缩写 ll 也可以

如图:-rw-r--r-- .... a.txt
文件的权限为644.

4.png

2).改变umask的值

将umask的值改为077

step1:输入: vi /etc/profile
step2:利用快捷键(shift+g)到最后一行,
i 然后进入编辑模式【INSERT】后:输入umask 077
按esc退出
再输入 :wq!保存并退出
step3:输入:source /etc/profile(重新加载)或者断开连接,重新连接

5.jpg

6.jpg

当umask的值变为077后,再建立文档或者文件的时候,文档的权限变成了700
文件的权限变成了600

7.jpg

3).umask的值不可以随便的更改!!

二 关键目录的权限

1.passwd(用户名)、shadow(密码)、group

目录:/etc/passwd /etc/shadow /etc/group
cd /etc //进入/etc目录
ls -l //查看以下三个文件的权限:
passwd 、shadow、group 用户文件
644 400 644
加固方法:chmod

chmod 644 etc/passwd

shadow文件默认只允许root账户读写,6即为 rw,如果设置为400,就只允许root读
(root的权限最大)

3.用户

uid=0 root(管理者)
gid=0
GID为GroupId,即组ID,用来标识用户组的唯一标识符
UID为UserId,即用户ID,用来标识每个用户的唯一标示符

su和sudo的区别:

su 切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。
su - 切换到root用户,并转到root用户的家目录下,即改变到了root用户的环境。
sudo,通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码(sudo用的不是root密码,而是当前用户密码),所以sudo相对于权限无限制性的su来说,还是比较安全的,所以sudo也能被称为受限制的su。

sudo时需要注意:

执行visudo之后,可以看见缺省只有一条配置:root ALL=(ALL) ALL
那么你就在下边再加一条配置:support ALL=(ALL) ALL
这样,普通用户support就能够执行root权限的所有命令
以普通用户登录之后,执行:sudo su -
然后输入普通用户自己的密码,就可以切换成root用户了

三 文件属性Chattr

不让用户修改、删除文件等,使用 chattr保护
i参数:系统的安全
-i 属性,设定文件不能被删除、改定、写入、设定连接。
chattr +i 文件名称 追加参数
chattr -i 文件名称 移除参数

四:ssh服务安全

1.ssh服务:ssh为远程登录回话和网络服务提供安全性的协议
ssh加密:对称加密 钥匙:非对称加密
ssh的 端口号:22

2.修改端口号:

step1:vi /etc/ssh/sshd_config
step2:修改port,把注释符#也去掉

3.修改登陆前后的banner
banner;登录的提示信息

修改登陆前的banner:

step1:touch /etc/ssh/ssh_banner
step2:在文件里写“Authority~
step3:vi /etc/ssh/sshd_config(配置文件)
加入: Banner /etc/ssh/ssh_banner(路径)
step4:service sshd restart(重启服务)

修改登陆后的banner:

step1:vi /etc/motd
内容;login success.~
step2:service sshd restart(重启服务)

4.网络限制

iptables是组成Linux平台下的包过滤防火墙,表(tables):提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。

规则表:

1)filter表——三个链:INPUT、FORWARD、OUTPUT

作用:过滤数据包 内核模块:iptables_filter.
规则链:
1)INPUT——进来的数据包应用此规则链中的策略
2)OUTPUT——外出的数据包应用此规则链中的策略
3)FORWARD——转发数据包时应用此规则链中的策略
白名单input(drop)

iptables -A INPUT -s 192.168.2.22(允许进入的地址) -p tcp --dport 
ACCEPT
iptables -P INPUT DROP

黑名单 input(accept)

iptables -A INPUT -s 192.168.2.22(允许进入的地址) -p tcp --dport 22 -j DROP
iptables -P INPUT ACCEPT

iptable 防火墙

 -F强制刷新
-L 显示
-P 更改默认规则accept、drop

5.配置保存

service iptables save

6.开机运行:
开机级别(开机默认为5多用户图画、企业多用3多用户纯命令)0~6
on /off

chkconfig --list | grep iptaples(显示1~6的状态)
控制:
chkconfig iptables (--level 1)on/ off (2~5)
开启自动启动:chkconfig iptables on
开启不自动启动:chkconfig iptabls off
(注意对iptables 的操作,切勿将自己拦在外面)

7.禁止root远程登录(xshell不可以远程连接)
step1: vi/etc/ssh/sshd_config
step2:找到 #PermitRootLogin yes
把注释符号去掉,把yes改为no
step3:重启启动

 service sshd restart;

参考文章:很详细

五 日志安全

远程日志存放
server的配置

step1:检查是否安装rsyslog
rpm -qa |grep rsyslog
step2:查看版本
rsyslogd -v
step3:没有请安装
Yun install rsylog
step4:vi /etc/rsyslog.conf
step5:使用udp协议传输(udp传输快,tcp稳定性好)
把udp下的两行的注释符号去掉
step6:编辑接受远程日志模板
$template IpTemplate,"/var/log/%FROMHOST-IP%.log" 
 *.* ?IpTemplate 
& ~ 
slave的配置:
把 所有的日志都发给server   
*.*@192.168.1.40:514   //udp
*.*@@192.168.1.40:514   //tcp
测试一下:
在 slave 端,进行事件触发
logger "log information test is nihao" 
在 sevier 端:
Tail -f 192.168.1.45.log 

日志配置还是不太懂

六 口令安全

1.口令配置;
口令的周期设置对root用户不生效,对已经存在的用户也不生效。
这里涉及到了四个部分,密码最长生存周期、密码最短生存周期、密码最短长度和密码失效
提醒;分别来解释一下;
密码最长生存周期(PASS_MAX_DAYS )就是密码最长你能使用的时间,默认为 99999 天,
就意味着账号没有限制,人也就能活 3 万多天。
密码最短生存周期(PASS_MIN_DAYS) 密码你最少使用的天数,如果你刚配置好密码,感
觉不合适,马上要改密码,是不行的,默认可以,值为 0
密码最短长度(PASS_MIN_LEN): 你的密码长度不能小于这个数
密码失效提醒(PASS_WARN_AGE): 密码在失效前几天进行提醒,默认是 7 天

加固配置:

Step1: vi /etc/login.defs 
Step2: 修改如下参数
PASS_MAX_DAYS 90 
PASS_MIN_DAYS 1 
PASS_MIN_LEN 8 
PASS_WARN_AGE 30 

2 口令复杂度配置
什么是口令的复杂度配置?针对口令的长度,是否使用数字、字母大小写和特殊字符,包括其
中三种的口令就是密码的复杂度配置。
配置:

step1:  vi /etc/pam.d/system-auth
step2:配置
在 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 选 3 种,追加到 password requisite 
pam_cracklib.so 后面,添加到配置文件中。 
例如:password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 
注:ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特殊字符个数

七 账号安全

1 UID 为 0 的用户(除了 root)
/etc/passwd 中除 root 所在行外所有行第二个与第三个冒号之间 UID 不应设置为 0

2 命令行界面超时退出
以 root 账户执行,vi /etc/profile,增加 export TMOUT=600(单位:秒,可根据具体情况设定
超时退出时间,要求不小于 600 秒),注销用户,再用该用户登录激活该功能
注意:需要使用 source /etc/profile 文件,立刻生效

3 系统登录限制

auth required pam_tally.so deny=5 unlock_time=600 no_lock_time 
account required pam_tally.so 

参数说明:
deny #连续认证失败次数超过的次数 unlock_time #锁定的时间,单位为秒

注意:本配置如果遇上弱口令的扫描,有可能把账号锁定,影响到正常的业务

八 其他安全
1 禁用 ctrl+alt+del
此组合键会导致服务器重启,比较危不小心按到会比较危险。

Step1: vi /etc/init/control-alt-delete.conf 
vim/etc/init/control-alt-delete.conf
Step2: 注释
#start on control-alt-delete
#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

2 历史命令行(上下键可以翻查历史输入)
历史命令行有可能会泄漏操作的敏感信息,比如 mysql 的用户名和密码,因此不能让命令行
记录太多。
修改历史命令条数:
编辑文件/etc/profile,
配置 HISTFILESIZE=5
3 指定用户使用 su
编辑 su 文件(vi /etc/pam.d/su),在开头添加下面两行:
auth sufficient /lib/security/pam_rootok.so 和
auth required /lib/security/pam_wheel.so group=wheel 这表明只有 wheel 组的成员可以使
用 su 命令成为 root 用户。
你可以把用户添加到 wheel 组,以使它可以使用 su 命令成为 root 用户。
添加方法为:usermod –G wheel username

4 引导密码
1.请确认系统引导器的类型为 grub,如果不为 grub,则忽略此检查点。
2.如果/boot/grub/menu.lst 文件存在,编辑/boot/grub/menu.lst 文件,设置 password=
需要设置的密码。
3.如果不存在,请检查 grub 是否正确安装,或/boot/grub/menu.lst 文件是否被更名。
注意:此检查项不建议配置,如果远程重启主机,没有人员在现场,服务器启动不起来。
5 snmp 的默认团体
编辑/etc/snmp/snmpd.conf,修改 public 默认团体字为用户自定以

标签: none

添加新评论