版本维护周期

周期表查询:ubuntun版本维护周期表

1.Ubuntu网络配置

ubuntu 17版本开始已经废弃了网络配置文件: /etc/network/interface, 目前选用的是/etc/netplan/网卡名称

并且网卡配置文件已经改成最新的yml格式

  1. network:
  2. ethernets:
  3. enp0s3:
  4. dhcp4: true
  5. version: 2

多网卡复制此文件修改为对应的网卡名称即可

  1. $ sudo vim /etc/netplan/00-install-config.yaml
  2. network:
  3. ethernets:
  4. enp0s8:
  5. dhcp4: true
  6. version: 2
  7. # 加载最新配置
  8. $ sudo netplan apply

2.镜像源配置

默认进行源配置路径在/etc/apt/resource.list文件,此文件中记录了,软件源地址,可以根据需求进行添加或者修改,ubuntu有一个特殊的地方: 不同版本有一个命名

  1. Release Desktop Server Installation Guide
  2. Ubuntu 22.04 LTS (Jammy Jellyfish) HTML HTML and PDF unpublished
  3. Ubuntu 21.10 (Impish Indri) HTML unpublished unpublished
  4. Ubuntu 20.04 LTS (Focal Fossa) HTML HTML and PDF per architecture
  5. Ubuntu 18.04 LTS (Bionic Beaver) HTML HTML and PDF per architecture

更新源

  1. $ sudo vim /etc/apt/resource.list # 写入或追加如下镜像源 更新即可
  2. $ sudo apt-get update
  3. $ sudo apt-get upgrade
  1. 其他几份国内源如下:
  2. 阿里源
  3. deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
  4. deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
  5. deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
  6. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
  7. deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
  8. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
  9. deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
  10. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
  11. deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
  12. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
  13. 中科大源
  14. deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
  15. deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
  16. deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
  17. deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
  18. deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
  19. deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
  20. deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
  21. deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
  22. deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
  23. deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
  24. 网易163
  25. deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
  26. deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
  27. deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
  28. deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
  29. deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
  30. deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
  31. deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
  32. deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
  33. deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
  34. deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse

3.防火墙与安全配置

ubuntu默认不允许root登录,此配置基于sshd服务进行,配置文件/etc/ssh/sshd_config

  1. # 建议优化项
  2. $ sudo vim /etc/ssh/sshd_config
  3. UseDNS on
  4. # ssh安全日志
  5. # 登录日志
  6. $ cat /var/log/auth.log
  7. # 系统启动停止日志
  8. $ sudo last -f /var/log/wtmp
  9. # 登录尝试日志
  10. $ sudo last -f /var/log/btmp
  11. # 当前登录日志
  12. $ sudo last -f /var/log/utmp

iptables和selinux

  1. # 基于四表五链的内核管理方式
  2. 表名包括:
  3. raw :高级功能,如:网址过滤。
  4. mangle :数据包修改(QOS),用于实现服务质量。
  5. nat :地址转换,用于网关路由器。
  6. filter :包过滤,用于防火墙规则。
  7. 动作包括:
  8. ACCEPT :接收数据包。
  9. DROP :丢弃数据包。
  10. REDIRECT :重定向、映射、透明代理。
  11. SNAT :源地址转换。
  12. DNAT :目标地址转换。
  13. MASQUERADE IP伪装(NAT),用于ADSL
  14. LOG :日志记录。
  15. SEMARK : 添加SEMARK标记以供网域内强制访问控制(MAC
  16. 规则链名包括(也被称为五个钩子函数(hook functions)):
  17. INPUT :处理输入数据包。
  18. OUTPUT :处理输出数据包。
  19. FORWARD :处理转发数据包。
  20. PREROUTING :用于目标地址转换(DNAT)。
  21. POSTOUTING :用于源地址转换(SNAT)。
  22. # iptables 基本参数
  23. 参数 作用
  24. -P 设置默认策略:iptables -P INPUT (DROP
  25. -F 清空规则链
  26. -L 查看规则链
  27. -A 在规则链的末尾加入新规则
  28. -I num 在规则链的头部加入新规则
  29. -D num 删除某一条规则
  30. -s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。
  31. -d 匹配目标地址
  32. -i 网卡名称 匹配从这块网卡流入的数据
  33. -o 网卡名称 匹配从这块网卡流出的数据
  34. -p 匹配协议,如tcp,udp,icmp
  35. --dport num 匹配目标端口号
  36. --sport num 匹配来源端口号
  37. # 查看规则,运行22端口连接
  38. $ iptables -L
  39. $ iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
  40. # 允许本地回环地址可以正常使用
  41. $ iptables -A INPUT -i lo -j ACCEPT
  42. # 本地圆环地址就是那个127.0.0.1,是本机上使用的,它进与出都设置为允许
  43. $ iptables -A OUTPUT -o lo -j ACCEPT
  44. # 设置默认的规则
  45. $ iptables -P INPUT DROP # 配置默认的不让进
  46. $ iptables -P FORWARD DROP # 默认的不允许转发
  47. $ iptables -P OUTPUT ACCEPT # 默认的可以出去
  48. # 配置白名单
  49. $ iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT # 允许机房内网机器可以访问
  50. $ iptables -A INPUT -p all -s 192.168.140.0/24 -j ACCEPT # 允许机房内网机器可以访问
  51. $ iptables -A INPUT -p tcp -s 183.121.3.7 --dport 3380 -j ACCEPT # 允许183.121.3.7访问本机的3380端口
  52. # 开启相应的服务端口
  53. $ iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 开启80端口,因为web对外都是这个端口
  54. $ iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # 允许被ping
  55. $ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 已经建立的连接得让它进来
  56. # 改动同步至配置文件中
  57. $ cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改动之前先备份,请保持这一优秀的习惯
  58. $ iptables-save > /etc/sysconfig/iptables
  59. $ cat /etc/sysconfig/iptables
  60. # 开放指定的端口
  61. $ iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允许本地回环接口(即运行本机访问本机)
  62. $ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已建立的或相关连的通行
  63. $ iptables -A OUTPUT -j ACCEPT #允许所有本机向外的访问
  64. $ iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许访问22端口
  65. $ iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许访问80端口
  66. $ iptables -A INPUT -p tcp --dport 21 -j ACCEPT #允许ftp服务的21端口
  67. $ iptables -A INPUT -p tcp --dport 20 -j ACCEPT #允许FTP服务的20端口
  68. $ iptables -A INPUT -j reject #禁止其他未允许的规则访问
  69. $ iptables -A FORWARD -j REJECT #禁止其他未允许的规则访问
  70. # 屏蔽IP
  71. $ iptables -A INPUT -p tcp -m tcp -s 192.168.0.8 -j DROP # 屏蔽恶意主机(比如,192.168.0.8
  72. $ iptables -I INPUT -s 123.45.6.7 -j DROP #屏蔽单个IP的命令
  73. $ iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令
  74. $ iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令
  75. $ iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令是
  76. # 指定数据包出去的网络接口
  77. # 只对 OUTPUT,FORWARD,POSTROUTING 三个链起作用。
  78. $ iptables -A FORWARD -o eth0
  79. # 查看已添加的规则
  80. $ iptables -L -n -v
  81. # 启动网络转发规则
  82. # 公网210.14.67.7让内网192.168.188.0/24上网
  83. $ iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -j SNAT --to-source 210.14.67.127
  84. # 端口映射
  85. # 本机的 2222 端口映射到内网 虚拟机的22 端口
  86. $ iptables -t nat -A PREROUTING -d 210.14.67.127 -p tcp --dport 2222 -j DNAT --to-dest 192.168.188.115:22
  87. # 字符串匹配
  88. # 比如,我们要过滤所有TCP连接中的字符串test,一旦出现它我们就终止这个连接,我们可以这么做:
  89. # iptables -A INPUT -p tcp -m string --algo kmp --string "test" -j REJECT --reject-with tcp-reset
  90. # iptables -L

iptables 安全配置

  1. # 阻止Windows蠕虫的攻击
  2. $ iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --algo kmp --string "cmd.exe"
  3. # 防止SYN洪水攻击
  4. $ iptables -A INPUT -p tcp --syn -m limit --limit 5/second -j ACCEPT
  5. # 防CC攻击
  6. $ iptables -L -F -A -D # list flush append delete
  7. # 场景一
  8. $ iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 允许 tcp 80 端口
  9. $ iptables -I INPUT -p tcp --dport 10:22 -j ACCEPT # 允许 tcp 10-22 端口
  10. $ iptables -I INPUT -p icmp -j ACCEPT # 允许 icmp
  11. $ iptables -A INPUT -j REJECT # 添加一条规则, 不允许所有
  12. # 优化场景一
  13. $ iptables -I INPUT -i lo -j ACCEPT # 允许本机访问
  14. $ iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许访问外网
  15. $ iptables -I INPUT -p tcp --dport 80 -s 10.10.188.233 -j ACCEPT # 只允许固定ip访问80
  16. # 还可以使用 iptables 模块追踪来自动开发对应的端口
  17. # 场景三
  18. $ iptables -I INPUT -i lo -j ACCEPT # 允许本机访问
  19. $ iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许访问外网
  20. $ iptables -I INPUT -s 10.10.155.0/24 -j ACCEPT # 允许内网访问
  21. $ iptables -I INPUT -p tcp -m multiport --dports 80,1723 -j ACCEPT # 允许端口, 80 -> http, 1723 -> vpn
  22. $ iptables -A INPUT -j REJECT # 添加一条规则, 不允许所有
  23. $ iptables-save # 保存设置到配置文件
  24. # 场景四
  25. $ iptables -t nat -L # 查看 nat 配置
  26. $ iptables -t nat -A POST_ROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232 # SNAT
  27. $ sudo vim /etc/sysconfig/network # 配置网关
  28. $ iptables -t nat -A POST_ROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.232:80 # DNAT
  29. #场景五
  30. $ iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT # 限制并发连接访问数
  31. $ iptables -I INPUT -m limit --limit 3/hour --limit-burst 10 -j ACCEPT # limit模块; --limit-burst 默认为5