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
  1. 查找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區),爲了避免不必要的安全策略影響系統服務的性能,可以關閉系統這些安全設置。

  1. 關閉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
    
  2. 關閉臨時SElinux

    [root@localhost ~]# getenforce  #查看當前狀態
    Enforcing
    [root@localhost ~]# setenforce 0 && getenforce #關閉臨時SElinux並查看狀態
    Permissive
    
  3. 關閉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)
    
  4. 設置系統字符集

    # 設置系統中文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

參考
Changing The Time Zone In Linux (Command Line)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章