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