Linux系统安装后的优化配置
一、常用系统工具包
工具包名称 | 包含的核心命令 | 备注 |
---|---|---|
tree | tree,以树形结构层级显示文件和目录 | 目录间的关系 |
nmap | nmap ,端口扫描的工具 | 扫描指定域名或主机的端口等 |
lrzsz | 包括上传(rz)、下载(sz)文件的工具 | |
nc | 文件传输、端口检查工具 | |
lsof | 反查端口进程,以及服务开发文件工具 | |
wget | 网络下载工具 | 类似下载工具 |
tcpdump | 网络抓包、监听,排错工具 | |
htop | 系统进程相关信息查看 | |
iftop | 查看主机网卡带宽信息 | |
sysstat | sar、iostat等系统性能分析工具 | 性能优化 |
nethogs | 显示进程的网络流量 | 进程流量分析 |
psmisc | 含有killall、pstree等 | 进程管理 |
net-tools | ifconfig、route、netstat、arp等命令 | 网络管理命令 |
bash-completion、bash-completion-extras | tab 补全工具 | bash的自动补全 |
vim-wnhanced | vim编辑器工具 | 支持vim |
- 查找killall 命令对应的工具包的方法
[root@localhost ~]# rpm -qf `which killall` psmisc-22.20-15.el7.x86_64
2.查找net-tools 工具包对应于那些命令:
rpm -ql net-tools
[root@localhost ~]# rpm -ql iproute | grep /[,s]bin/
/usr/sbin/arpd
/usr/sbin/bridge
/usr/sbin/cbq
/usr/sbin/ctstat
/usr/sbin/devlink
/usr/sbin/genl
/usr/sbin/ifcfg
/usr/sbin/ifstat
/usr/sbin/ip
二、系统基础优化:优化防火墙、SELinux
我们的服务器大多是处于内部局域网,互联网是无法正常访问和实施网络攻击,安全一般都交由专门的网络安全硬设备(网络防火墙、反向代理、DMZ区),为了避免不必要的安全策略影响系统服务的性能,可以关闭系统这些安全设置。
-
关闭SElinux:
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #修改SELINUX 配置文件 [root@localhost ~]# cat /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 - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
-
关闭临时SElinux
[root@localhost ~]# getenforce #查看当前状态 Enforcing [root@localhost ~]# setenforce 0 && getenforce #关闭临时SElinux并查看状态 Permissive
-
关闭firewall
[root@localhost ~]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@localhost ~]# systemctl stop firewalld.service # [root@localhost ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2020-03-23 20:41:58 CST; 13s ago Docs: man:firewalld(1)
-
设置系统字符集
# 设置系统中文UTF8 字符集 [root@localhost ~]# cat /etc/locale.conf LANG="en_US.UTF-8" [root@localhost etc]# localectl set-locale LANG="zh_CN.UTF-8" # 设置字符集
三、提升命令行操作安全性
[root@localhost etc]# echo 'export TMOUT=300' >> /etc/profile
[root@localhost etc]# echo 'export HISTSIZE=5' >> /etc/profile
[root@localhost etc]# echo 'export HISTFILESIZE=5' >> /etc/profile
[root@localhost etc]# tail -3 /etc/profile
export TMOUT=300 #<== 设置会话超时时间为300秒
export HISTSIZE=5 #<== 命令行历史记录保留5个
export HISTFILESIZE=5 #<== 历史记录文件保留5个
四、调整文件描述符
程序的进程启动会占用服务器描述符,避免影响程序的启动。
ulimit -SHn xxx #临时加大文件描述符命令,重启系统或重新登录系统后需要重新设置
# 永久生效,需要重新进入系统查看配置文件是否生效
[root@localhost etc]# echo '* - nofile 65535'>>/etc/security/limits.conf
[root@localhost etc]# cat /etc/security/limits.conf
ulimit -SHn 65535
ulimit -n # 查看配置结果
[root@localhost etc]# ulimit -n 123456
[root@localhost etc]# ulimit -n
123456
五、优化系统内核
利用相应内核参数值的优化,从而影响系统的安全性、稳定性、高效性。
[root@localhost etc]# vim /etc/sysctl.conf
[root@localhost etc]# sysctl -p
net.ipv4.tcp_fin_timeout = 2 #表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_tw_reuse = 1 #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_tw_recycle = 1 #表示开启TCP连接中TIME-WAIT sockets的快速回收
net.ipv4.tcp_syncookies = 1 #当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击
sysctl: cannot stat /proc/sys/net/ipv4/tcp_kepalive_time: No such file or directory
net.ipv4.ip_local_port_range = 4000 65000 # 表示用于向外连接的端口范围
sysctl: cannot stat /proc/sys/net/ipv4/tcp_max_syn_baklog: No such file or directory
net.ipv4.tcp_max_tw_buckets = 3600 #表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1 对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃,不应该大于255,默认值是5,对应于180秒左右时间
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384 ##优化网络设备接收队列
net.ipv4.tcp_max_orphans = 16384
六、禁止用户ping 服务器
[root@localhost ~]# echo "net.ipv4.icmp_echo_ignore_all=1" >>/etc/sysctl.conf
[root@localhost ~]# sysctl -p
七、锁定关键系统文件优化
对系统账号文件、启动文件添加隐藏权限防止用户篡改;
[root@localhost ~]# chattr +i /etc/{passwd,shadow,group}
[root@localhost ~]# lsattr /etc/{passwd,shadow,group}
----i----------- /etc/passwd
----i----------- /etc/shadow
----i----------- /etc/group
[root@localhost ~]# chattr +i /etc/{inittab,fstab,sudoers}
[root@localhost ~]# lsattr /etc/{inittab,fstab,sudoers}
----i----------- /etc/inittab
----i----------- /etc/fstab
----i----------- /etc/sudoers
八、为GRUB增加密码
默认,用户可以随意进入GRUB引导界面,会给系统安全带来隐患;如用户通过grub引导进入单用户模式,进行root密码破解,为防止隐患,可以为grub增加GRUB密码,提高系统的安全性。
[root@localhost ~]# grub2-setpassword
Enter password:
Confirm password:
[root@localhost ~]# cat /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.1050FACC778B4BFA4F15B160CDBD51C0EAF679E6B502B46F1478E5B776E764E64F7DB1C9FBAC0BEF9689DAFF8C1B898A62CEF3FAB7298BA315CC696EDD96511E.94981DFB19B5F087515B19F155F73E0D7200F9CF7FA6AA491C2B9595616DA0B3AC9587EC0A421CA5BEE54A7141FE486EACB36E47962E14D9492E084E021404B9
九、修改时区
[root@docker ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@docker ~]# date
Sat May 20 04:48:58 CST 2020
[root@docker ~]# date -s '2020-06-19 17:10'
Fri May 19 17:10:00 CST 2020
[root@docker ~]# date
Fri May 19 17:10:02 CST 2020