iptables防御DDOS攻击的设置
防止syn攻击(DDOOS攻击的一种)
iptables -I INPUT -p tcp –syn –m limit --limit 1/s -j ACCEPT
iptables -I FORWARD –p tcp --syn –m limit --limit 1/s –j ACCEPT
防止各种端口扫描
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
linux中预防SYN_RECV(转)
攻击的形式多种多样,我们这里只介绍最为常见的SYN_RECV,遇到攻击的不要着急,小量的SYN_RECV很容易防止的
1.对于大量的 SYN_RECV
若怀疑是SYN Flood攻击,有以下建议:
这个攻击的解决方法如下:
1,增加未完成连接队列(q0)的最大长度。
echo 1280>/proc/sys/net/ipv4/tcp_max_syn_backlog
2, 启动SYN_cookie。
echo 1>/proc/sys/net/ipv4/tcp_syncookies
这些是被动的方法,治标不治本。而且加大了服务器的负担,但是可以避免被拒绝攻击(只是减缓)
治本的方法是在防火墙上做手脚。但是现在能在一定程度上防住syn flood攻击的防火墙都不便宜。并且把这个命令加入"/etc/rc.d/rc.local"文件中
2. iptables的设置,引用自CU
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
也有人写作
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
--limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改
防止各种端口扫描
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
这条代码就是如果收到的数据包没有tcp标示的那么就丢弃它们。
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
这条代码就是如果收到的SYN数据包长时间占用服务器资源,就会自动结束掉他。
仅开放某个端口:
iptables -A INPUT -p tcp -m tcp --dport 需要开放的端口 -j ACCEPT
开放指定的端口
#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT (注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A FORWARD -j REJECT
屏蔽IP
#如果只是想屏蔽IP的话“3、开放指定的端口”可以直接跳过。
#屏蔽单个IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP
查看已添加的iptables规则
iptables -L -n
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示IP地址和端口号,不将ip解析为域名
删除已添加的iptables规则
将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
iptables的开机启动及规则保存
CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行一下:
chkconfig --level 345 iptables on
将其加入开机启动。
CentOS上可以执行:service iptables save保存规则。
另外更需要注意的是Debian/Ubuntu上iptables是不会保存规则的。
需要按如下步骤进行,让网卡关闭是保存iptables规则,启动时加载iptables规则:
创建/etc/network/if-post-down.d/iptables文件,添加如下内容:
#!/bin/bash
iptables-save > /etc/iptables.rules
执行:chmod +x /etc/network/if-post-down.d/iptables添加执行权限。
创建/etc/network/if-pre-up.d/iptables文件,添加如下内容:
#!/bin/bash
iptables-restore < /etc/iptables.rules
执行:chmod +x /etc/network/if-pre-up.d/iptables添加执行权限。
示例2:
centos防火墙基本操作
#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
然后保存:
#/etc/rc.d/init.d/iptables save
查看打开的端口:
# /etc/init.d/iptables status
关闭端口
iptables -I INPUT -i eth0 -p tcp --dport 81 -j DROP
配置filter表防火墙
#清除预设表filter中的所有规则链的规则
iptables -F
#清除预设表filter中使用者自定链中的规则
iptables -X
#保存iptables配置
service iptables save
#重启iptables服务
service iptables restart
#查看iptables规则
iptables -L -n
#查看iptables规则文件
cat /etc/sysconfig/iptables
#设定预设规则
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#开启22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#如果OUTPUT设置成DROP需要添加 iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#关闭22端口 iptables -D INPUT -p tcp --dport 22 -j ACCEPT
#开启常用端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT
#iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p udp --dport 53 -j ACCEPT
#允许ping
iptables -A INPUT -p icmp -j ACCEPT
#如果OUTPUT设置成DROP需要添加 iptables -A OUTPUT -p icmp -j ACCEPT
#允许loopback
iptables -A INPUT -i lo -p all -j ACCEPT
#如果OUTPUT设置成DROP需要添加 iptables -A OUTPUT -o lo -p all -j ACCEPT
#屏蔽指定ip
#iptables -A INPUT -p tcp -s 192.168.10.1 -j DROP
#减少不安全的端口连接
#iptables -A OUTPUT -p tcp --sport 31337 -j DROP
#iptables -A OUTPUT -p tcp --dport 31337 -j DROP
#允许某个IP远程连接
#iptables -A INPUT -s 192.168.10.1 -p tcp --dport 22 -j ACCEPT
#允许某个网段的IP远程连接
iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
#允许指定网段通过、指定网口通过SSH连接本机
#iptables -A INPUT -i eth0 -p tcp -s 192.168.10.0/24 --dport 22 -m state --state NEW,ESTABLESHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s 192.168.10.0/24 --dport 22 -m state --state ESTABLESHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#开启转发功能
#iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT
#丢弃坏的TCP包
#iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
#处理IP碎片数量,防止攻击,允许每秒100个
#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包
#iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
#丢弃非法连接
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#允许所有已经建立的和相关的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
配置NAT表防火墙
#查看NAT表规则
iptables -t nat -L
#清除NAT规则
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
#防止外网用内网IP欺骗
#iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
#iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
#iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
#禁止与某个IP的所有连接
#iptables -t nat -A PREROUTING -d 192.168.10.1 -j DROP
#禁用80端口
#iptables -t nat -A PREROUTING -p tcp --dport 80 -j DROP
#禁用某个IP的80端口
#iptables -t nat -A PREROUTING -p tcp --dport 21 -d 192.168.10.1 -j DROP
保存iptables文件,重启服务
#保存iptables规则
service iptables save
#重启iptables服务
service iptables restart
#关闭防火墙
/etc/init.d/iptables stop
service iptables stop # 停止服务
#查看防火墙信息
/etc/init.d/iptables status
#开放端口:8080
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
#重启防火墙以便改动生效:(或者直接重启系统)
/etc/init.d/iptables restart
#将更改进行保存
/etc/rc.d/init.d/iptables save
另外直接在/etc/sysconfig/iptables中增加一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
26、firewalld防御DDOS 攻击的设置
在/proc/sys/net/ipv4下,有很多相关的设置。这些设置不仅仅是针对centos7以上的。
1.TCP keepalive TCP连接保鲜设置
keepalive是TCP保鲜定时器。当网络两端建立了TCP连接之后,闲置idle(双方没有任何数据流发送往来)了tcp_keepalive_time后,服务器内核就会尝试向客户端发送侦测包,来判断TCP连接状况(有可能客户端崩溃、强制关闭了应用、主机不可达等等)。如果没有收到对方的回答(ack包),则会在tcp_keepalive_intvl后再次尝试发送侦测包,直到收到对对方的ack,如果一直没有收到对方的ack,一共会尝试tcp_keepalive_probes次,每次的间隔时间在这里分别是15s, 30s, 45s, 60s, 75s。如果尝试tcp_keepalive_probes,依然没有收到对方的ack包,则会丢弃该TCP连接。
2. syn cookies设置
在CentOS5.3中,该选项默认值是1,即启用syn cookies功能。我们建议先关闭,直到确定受到syn flood攻击的时候再开启syn cookies功能,有效地防止syn flood攻击。也可以通过iptables规则拒绝syn flood攻击。
3.TCP 连接建立设置
tcp_max_syn_backlog SYN队列的长度,时常称之为未建立连接队列。系统内核维护着这样的一个队列,用于容纳状态为SYN_RESC的TCP连接(half-open connection),即那些依然尚未得到客户端确认(ack)的TCP连接请求。加大该值,可以容纳更多的等待连接的网络连接数。
tcp_syn_retries 新建TCP连接请求,需要发送一个SYN包,该值决定内核需要尝试发送多少次syn连接请求才决定放弃建立连接。默认值是5. 对于高负责且通信良好的物理网络而言,调整为2
tcp_synack_retries 对于远端SYN连接请求,内核会发送SYN+ACK数据包来确认收到了上一个SYN连接请求包,然后等待远端的确认(ack数据包)。该值则指定了内核会向远端发送tcp_synack_retires次SYN+ACK数据包。默认设定值是5,可以调整为2
4. TCP 连接断开相关设置
tcp_fin_timeout 对于由本端主动断开连接的TCP连接,本端会主动发送一个FIN数据报,在收到远端ACK后,且并没有收到远端FIN包之前,该TCP连接的状态是FIN_WAIT_2状态,此时当远端关闭了应用,网络不可达(拔网张),程序不可断僵死等等,本端会一直保留状态为FIN_WAIT_2状态的TCP连接,该值tcp_fin_timeout则指定了状态为FIN_WAIT_2的TCP连接保存多长时间,一个FIN_WAIT_2的TCP连接最多占1.5k内存。系统默认值是60秒,可以将此值调整为30秒,甚至10秒。
tcp_max_tw_buckets 系统同时处理TIME_WAIT sockets数目。如果一旦TIME_WAIT tcp连接数超过了这个数目,系统会强制清除并且显示警告消息。设立该限制,主要是防止那些简单的DoS攻击,加大该值有可能消耗更多的内存资源。如果TIME_WAIT socket过多,则有可能耗尽内存资源。默认值是18w,可以将此值设置为5000~30000 tcp_tw_resue 是否可以使用TIME_WAIT tcp连接用于建立新的tcp连接。
tcp_tw_recycle 是否开启快带回收TIME_WAIT tcp连接的功能。
5. tcp 内存资源使用相参数设定
rmem_max 定义了接收窗口可以使用的最大值,可以根据BDP值进行调节。
wmem_max 定义了发送窗口可以使用的最大值,可以根据BDP什值进行调整。
tcp_mem [low, pressure, high] TCP用这三个值来跟踪内存使用情况,来限定资源占用。通常情况下,在系统boot之时,内核会根据可用内存总数计算出这些值。如果出现了Out of socket memory,则可以试着修改这个参数。
1)low: 当TCP使用了低于该值的内存页面数时,TCP不会考滤释放内存。
2)pressure: 当TCP使用了超过该值的内存页面数量,TCP试图稳定其对内存的占用,进入pressure模式,直到内存消耗达于low值,退出该模式。
3)hight:允许所有tcp sockets用于排队缓冲数据报的内存页数。
tcp_rmem [min, default, max]
1)min 为每个TCP连接(tcp socket)预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP socket都至少会有这么多数量的内存用于接收缓冲。
2)default 为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的 rmem_default的值,所以有可能被rmem_default覆盖。
3)max 该值为每个tcp连接(tcp socket)用于接收缓冲的内存最大值。该值不会影响wmem_max的值,设置了选项参数 SO_SNDBUF则不受该值影响。
tcp_wmem [min, default, max] 如上(tcp_rmen)只不过用于发送缓存。
6.Firewalld的常用命令设置:
- [root]# firewall-cmd --permanent --zone=external --change-interface=eno16777728
- [root]# firewall-cmd --get-zone-of-interface=ens33
- [root]# firewall-cmd --zone=public --query-service=ssh
- [root]# firewall-cmd --zone=public --add-port=8080-8081/tcp
centos7修改ssh端口记得添加防火墙规则
1.向防火墙中添加端口的命令为:
- firewall-cmd --zone=public --add-port=/tcp --permanent
查看端口是否添加成功:
- firewall-cmd --zone=public --query-port=/tcp
2.开机启动相关
- systemctl start firewalld
- systemctl enable firewalld
3.与状态相关的firewalld命令
- firewall-cmd --state ##查看火墙的状态(运行/停止)
- firewall-cmd --get-active-zones ##查看正在使用域的情况
- firewall-cmd --get-default-zone ##查看默认使用的域
- firewall-cmd --get-zones ##查看能使用的所有域
- firewall-cmd --zone=public --list-all
- firewall-cmd --get-services ##显示直接可以在火墙中写的服务
- firewall-cmd --list-all-zones ##查看所有域
- firewall-cmd --list-all ##默认查看正在使用的域
- firewall-cmd --set-default-zone=public ##修改默认域
- firewalld中服务的添加与删除
(1)地址源的添加与删除
- firewall-cmd [--permanent] --add-source=172.25.254.31 --zone=trusted ##添加来源
- firewall-cmd [--permanent] --remove-source=172.25.254.31 --zone=trusted
(2)接口的添加与删除、改变
- firewall-cmd [--permanent] --remove-interface=eth1 --zone=public
- firewall-cmd [--permanent] --add-interface=eth1 --zone=trusted ##在某域中添加接口
- firewall-cmd --list-all --zone=trusted
- firewall-cmd [--permanent] --chang-interface=eth1 --zone=public ##改变接口
(3)端口的添加与删除
- firewall-cmd [--permanent] --add-port=/tcp
- firewall-cmd [--permanent] --remove-port=/tcp
(4)服务的添加与删除
- firewall-cmd [--permanent] --add-service=http
- firewall-cmd [--permanent] --remove-service=ssh ##永久删除
- firewall-cmd --remove-service=ssh ##临时删除,reload后会继续生效
(5)加载
- firewall-cmd --reload ##加载使生效,不会断开已经连接的客户端
- firewall-cmd --complete-reload ##加载使生效,断开所有客户端的连接
5.firewalld相关设定文件
- cd /etc/firewalld/zones ##火墙设定目录
- cd /lib/firewalld/services/ ##服务相关文件(函数)
6.防火墙中规则的设定
- firewall-cmd --remove-service=ssh
- firewall-cmd --direct --add-rule ipv4 filter INPUT -s 172.25.254.31 -p tcp --dport -j ACCEPT
- firewall-cmd --direct --get-all-rules ##查看所有规则
- -s 来源 -p 协议 --dport 目标端口 -j 动作
示例:
- firewall-cmd --direct --add-rule ipv4 filter INPUT ! -s 172.25.254.31 -p tcp --dport -j ACCEPT ##除该主机外所有主机走该规则(可以使用ssh)
7.地址伪装
- sysctl -a | grep ip_forward
- vim /etc/sysctl.conf
- net.ipv4.ip_forward=
- firewall-cmd --permanent --add-masquerade ##打开伪装功能
- firewall-cmd --reload
8.端口转发
- firewall-cmd --add-forward-port=port=:proto=tcp:toport=:toaddr=1.1.1.231
端口转发设置的删除
- firewall-cmd --remove-forward-port=port=:proto=tcp:toport=:toaddr=1.1.1.231
把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:
流量转发命令格式为firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的。
- [root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/" service name="ssh" reject"
启用SNAT:在firewall-config中Masquerading,并选中Masquerade zone复选框,就自动开启了SNAT技术。
9.服务的访问控制列表
TCP Wrappers是RHEL 7系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作。换句话说,Linux系统中其实有两个层面的防火墙,第一种是前面讲到的基于TCP/IP协议的流量过滤工具,而TCP Wrappers服务则是能允许或禁止Linux系统提供服务的防火墙,从而在更高层面保护了Linux系统的安全运行。
在配置TCP Wrappers服务时需要遵循两个原则:
编写拒绝策略规则时,填写的是服务名称,而非协议名称;
建议先编写拒绝策略规则,再编写允许策略规则,以便直观地看到相应的效果。
- [root@linuxprobe ~]# vim /etc/hosts.deny
- sshd:*
- [root@linuxprobe ~]# vim /etc/hosts.allow
- sshd:192.168..
TCP Wrappers服务的控制列表文件中常用的参数
- 客户端类型 示例 满足示例的客户端列表
- 单一主机 192.168.10.10 IP地址为192.168.10.10的主机
- 指定网段 192.168.. IP段为192.168.10./24的主机
- 指定网段 192.168.10.0/255.255.255.0 IP段为192.168.10./24的主机
- 指定DNS后缀 .linuxprobe.com 所有DNS后缀为.linuxprobe.com的主机
- 指定主机名称 www.linuxprobe.com 主机名称为www.linuxprobe.com的主机
- 指定所有客户端 ALL 所有主机全部包括在内
Linux防DDOS攻击脚本:
- */ * * * * /usr/local/nginx/var/log/drop.sh
- #!/bin/sh
- cd /usr/local/nginx/var/log
- tail access.log -n |grep vote.php | |sort |uniq -c |sort -nr |awk '{if ($2!=null && $1>50)}' > drop_ip.txt
- for i in `cat drop_ip.txt`
- do
- #/sbin/iptables -I INPUT -s $i -j DROP;
- firewall-cmd --add-source=192.168.5.6 --zone=drop
- done
查看与80端口建立的链接
- netstat -an | grep ":80" | grep ESTABLISHED
7.Firewalld预防DDOS攻击的设置
DDOS 是十分常见的攻击,即使是一般使用者,下载一套 DDOS 软件,或者直接安装 kali linux, 便可以很简单发动 DDOS 攻击,除了遇到 DDOS 攻击才采取拦截外,也可以透过一些 Linux 设定来预防 DDOS 攻击,以下会列出一些预防 DDOS 的设定及 Firewalld 规则。
Firewalld 限制每个 IP 连线数量
以下会设定 Firewalld 限制每个 IP 在 60 秒内, 只可以建立 30 个 HTTP (port 80) 连线, 以下两个参数可以根据自己的需要作出调整。
先建立档案 /etc/modprobe.d/xt.conf:
vi /etc/modprobe.d/xt.conf
加入以下内容:
options xt_recent ip_pkt_list_tot=30
在 vi 储存盘案及离开:
:wq
然后加载 xt_recent 模组:
# modprobe xt_recent
然后执行以下 firewall 指令:
# /bin/firewall-cmd –permanent –direct –add-rule ipv4 filter INPUT_direct \
0 -p tcp –dport 80 -m state –state NEW -m recent –set
# /bin/firewall-cmd –permanent –direct –add-rule ipv4 filter INPUT_direct \
1 -p tcp –dport 80 -m state –state NEW -m recent –update \
–seconds 60 –hitcount 30 -j REJECT –reject-with tcp-reset
# firewall-cmd –reload
设定好后, 可以检视一下 firewalld 规则是否加入成功:
# firewall-cmd –permanent –direct –get-all-rules
Linux Kernel
透过修改 Linux Kernel 的设定,同样可以有效减低 DDOS 的威胁,RHEL 7 及 CentOS 7 支援 SYNPROXY 设定,以下会以 CentOS 7 为例,透过修改 Kernel 的参数来减低 DDOS 的威胁。
开
25、共享核查命令
用showmount –e,但需要nfs server的支持,需要安装nfs server。
26、单用户模式的口令设置
Linux单用户模式+Linux引导系统简介+设置装载口令
Linux单用户模式
重启Linux系统
shutdown -r 0
reboot
重启后,在读秒时按下小e,进入菜单的编辑模式
再次按e进入
选择第二个菜单,再次按e进入
管理员权限
修改管理员密码
passwd root
重启系统
reboot
重新登录后会进入图形界面,此时就可以用新的密码登录系统了。
引导系统
选择操作系统
文件位置:/etc/grub.conf
实例代码
使用ls -l查看文件的真实路径
使用vim编辑器打开/boot/grub/grub.conf文件(打开真实文件,有语法酌色)
grup是系统文件,必须使用超级管理员root账号
vim /boot/grub/grub.conf
第10行:系统启动后默认进入索引为0的第一个操作系统
第11行:系统默认数秒时间,默认5秒
第12行:启动时系统的背景图
第13行:隐藏操作系统菜单
第14-17行:第一个操作系统的相关信息
文件颜色普及
黑色文件:代表普通文件
深蓝色文件:带表文件夹
浅蓝色文件:软连接文件(如Windows系统上的快捷方式)
设置装载口令
我们在安装Linux操作系统时,一定要给Linux系统设置一个装载口令。防止普通用户**Linux操作系统的密码。
设置明文密码
但是明文密码容易泄露,建议使用md5加密(同一个密码,两次加密后的值也是不同的)
按小e,效果如下所示(需要输入装载口令)