一、防火墙管理
1.selinux 命令
SELinux(Security-Enhanced Linux)是 Linux 内核中的一种安全模块,提供强制访问控制(MAC)。以下是一些常用的 SELinux 命令和基本操作:
1. 查看 SELinux 状态
sestatus
# 此命令显示 SELinux 当前的状态(如启用、禁用或处于宽容模式)。
2. 临时禁用 SELinux
# 要临时禁用 SELinux(直到下次重启):
setenforce 0
# 要重新启用 SELinux:
setenforce 1
3. 修改配置文件
# 要永久禁用 SELinux,需要编辑配置文件 /etc/selinux/config:
nano /etc/selinux/config
# 将 SELINUX 的值更改为 disabled、permissive 或 enforcing,然后保存文件。
4. 查看 SELinux 策略和上下文
# 查看某个文件的 SELinux 上下文:
ls -Z /path/to/file
# 查看当前进程的 SELinux 上下文:
ps -Z
5. 改变文件的 SELinux 上下文
# 使用 chcon 命令可以改变文件的 SELinux 上下文:
chcon -t httpd_sys_content_t /var/www/html/index.html
6. 生成 SELinux 策略
# 如果你在操作中遇到 SELinux 拒绝的情况,可以使用 audit2allow 工具生成允许访问的策略:
grep denied /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp
7. 查看拒绝日志
# 查看 SELinux 拒绝的日志信息:
cat /var/log/audit/audit.log | grep denied
8. 重新加载 SELinux 策略
# 在更改 SELinux 策略后,可以使用以下命令重新加载:
semodule -R
2.firewalld防火墙
firewalld 是一种动态管理防火墙的工具,提供了一种简化的方式来管理 Linux 系统的网络安全。以下是一些常用的 firewalld 命令:
启动与停止
#启动 firewalld:
sudo systemctl start firewalld
# 停止 firewalld:
sudo systemctl stop firewalld
# 设置开机自启:
sudo systemctl enable firewalld
# 禁用开机自启:
sudo systemctl disable firewalld
查看状态
# 查看 firewalld 状态:
sudo systemctl status firewalld
# 查看当前的防火墙规则:
sudo firewall-cmd --list-all
添加与删除规则
# 允许特定服务(例如 HTTP):
sudo firewall-cmd --add-service=http --permanent
# 允许特定端口(例如 8080):
sudo firewall-cmd --add-port=8080/tcp --permanent
# 删除服务规则:
sudo firewall-cmd --remove-service=http --permanent
# 删除端口规则:
sudo firewall-cmd --remove-port=8080/tcp --permanent
重新加载与生效
# 重新加载防火墙配置:
sudo firewall-cmd --reload
# 临时允许某个服务(重启后失效):
sudo firewall-cmd --add-service=http
切换区域
# 查看所有区域:
sudo firewall-cmd --get-zones
# 设置默认区域:
sudo firewall-cmd --set-default-zone=public
3.iptables网络防火墙
iptables 是 Linux 系统中用于设置、维护和检查网络流量过滤规则的工具。以下是一些常用的 iptables 命令和基本用法:
基本命令
# 查看当前规则:
sudo iptables -L -v -n
# 清空所有规则:
sudo iptables -F
# 清空所有链(包括自定义链):
sudo iptables -F
sudo iptables -X
添加规则
# 允许某个端口的入站流量(例如 80 端口):
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许某个 IP 的入站流量(例如 192.168.1.100):
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
# 允许所有的出站流量:
sudo iptables -A OUTPUT -j ACCEPT
# 拒绝某个 IP 的入站流量(例如 192.168.1.200):
sudo iptables -A INPUT -s 192.168.1.200 -j DROP
删除规则
# 删除特定规则(需要先查看规则并找到对应的行号):
sudo iptables -D INPUT <line_number>
# 删除允许 80 端口的规则:
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
保存和恢复规则
# 保存当前规则(Debian/Ubuntu):
sudo iptables-save > /etc/iptables/rules.v4
# 保存当前规则(CentOS/RHEL):
sudo service iptables save
# 恢复规则:
sudo iptables-restore < /etc/iptables/rules.v4
其他常用选项
# 查看 NAT 表:
sudo iptables -t nat -L -v -n
# 查看状态(确认服务状态):
sudo systemctl status iptables
4. ufw防火墙
UFW(Uncomplicated Firewall)是一个用于管理 Linux 防火墙的工具,旨在简化 iptables 的配置。以下是一些常用的 ufw 命令和基本用法。
启用与禁用
# 启用 UFW:
sudo ufw enable
# 禁用 UFW:
sudo ufw disable
# 查看 UFW 状态:
sudo ufw status
添加与删除规则
# 允许某个服务(例如 HTTP):
sudo ufw allow http
# 允许某个端口(例如 8080):
sudo ufw allow 8080/tcp
# 拒绝某个服务(例如 FTP):
sudo ufw deny ftp
# 删除规则(例如删除允许 80 端口的规则):
sudo ufw delete allow 80/tcp
其他常用命令
# 查看详细状态:
sudo ufw status verbose
# 查看日志:
sudo ufw log
# 设置默认策略(例如默认拒绝所有入站流量):
sudo ufw default deny incoming
# 允许所有出站流量:
sudo ufw default allow outgoing
高级用法
# 允许某个 IP 的入站流量:
sudo ufw allow from 192.168.1.100
# 限制某个端口的连接数(例如 SSH 限制为 5 个连接):
sudo ufw limit ssh
# 允许特定 IP 和端口的组合:
sudo ufw allow from 192.168.1.100 to any port 8080
二、磁盘管理
1.查看磁盘lsblk
lsblk 命令用于列出系统中的块设备,帮助你查看存储设备的结构和状态。下面是一些常见用法和输出示例:
基本用法
# 列出所有块设备:
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 100G 0 part /
├─sda2 8:2 0 365G 0 part /home
└─sda3 8:3 0 500M 0 part /boot
# 显示详细信息:
lsblk -f
输出示例:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 3b123456-78e0-4f29-8f4b-8b6d1e123456 /
├─sda2 ext4 2a123456-78e0-4f29-8f4b-8b6d1e123456 /home
└─sda3 ext4 1b123456-78e0-4f29-8f4b-8b6d1e123456 /boot
# 以树状结构显示:
lsblk -t
# 人类可读格式:
lsblk -h
常用选项
-a:列出所有设备,包括未挂载的设备。
-o:自定义输出列,如 NAME,SIZE,TYPE,MOUNTPOINT。
2.fdesk
fdisk 是一个用于管理磁盘分区的命令行工具,常用于 Linux 和 Unix 系统。以下是 fdisk 的一些基本用法和功能:
基本用法
# 列出所有磁盘及其分区:
sudo fdisk -l
# 这将显示所有磁盘及其分区的信息,包括设备名称、大小、类型和挂载点。
对特定磁盘进行操作:
#例如,要操作 /dev/sda,可以输入:
sudo fdisk /dev/sda
这将进入交互模式,允许你进行分区管理。
常用命令
# 在 fdisk 的交互模式下,你可以使用以下命令:
m:显示帮助菜单。
p:打印当前分区表。
n:创建新分区。
d:删除分区。
t:更改分区类型。
w:写入更改并退出。
q:不保存更改退出。
注意事项
备份数据:在修改分区时,务必备份重要数据,以避免意外丢失。
谨慎操作:fdisk 操作会直接影响磁盘分区,使用时请确保知道自己在做什么。
3. mkfs格式化磁盘
使用 mkfs 命令格式化分区。以下是一些常用的文件系统格式化命令:
# 格式化为 ext4:
sudo mkfs.ext4 /dev/sdXn
# 格式化为 ext3:
sudo mkfs.ext3 /dev/sdXn
# 格式化为 FAT32:
sudo mkfs.vfat /dev/sdXn
# 格式化为 NTFS:
sudo mkfs.ntfs /dev/sdXn
4. mount命令
mount 命令用于在 Linux 系统中挂载文件系统,使得文件系统中的文件和目录可以被访问。以下是 mount 命令的基本用法和常见选项:
基本用法
# 挂载文件系统:
sudo mount /dev/sdXn /mnt/point
# 这里,/dev/sdXn 是要挂载的设备(如 /dev/sda1),/mnt/point 是挂载点(即你希望访问该文件系统的目录)。
# 查看当前挂载的文件系统:
mount
# 或者使用:
df -h
# 这会列出所有当前挂载的文件系统及其使用情况。
常见选项
# 指定文件系统类型:
# 如果需要指定文件系统类型,可以使用 -t 选项。例如,挂载一个 ext4 文件系统:
sudo mount -t ext4 /dev/sdXn /mnt/point
# 只读挂载:
# 如果你希望以只读模式挂载,可以使用 -o ro 选项:
sudo mount -o ro /dev/sdXn /mnt/point
挂载所有文件系统:
# 如果 /etc/fstab 中配置了文件系统,可以使用以下命令挂载所有文件系统:
sudo mount -a
# 卸载文件系统
# 使用 umount 命令卸载已挂载的文件系统:
sudo umount /mnt/point
注意事项
# 挂载点目录:确保挂载点目录已经存在。如果不存在,可以使用 mkdir 创建:
sudo mkdir /mnt/point
# 权限:通常需要超级用户权限来挂载和卸载文件系统。
5. /etc/fstab配置文件
/etc/fstab 文件是 Linux 系统中一个重要的配置文件,用于定义系统启动时自动挂载的文件系统。它包含了文件系统的设备信息、挂载点、文件系统类型以及挂载选项等。以下是 /etc/fstab 文件的基本结构和用法。
/etc/fstab 文件格式
/etc/fstab 文件的每一行代表一个文件系统,通常包含以下六个字段:
设备 挂载点 文件系统类型 挂载选项 转储 自检
字段详解
设备:可以是设备文件(如 /dev/sda1),也可以是 UUID(使用 blkid 命令查看)或标签(如 LABEL=MyDisk)。
挂载点:挂载该文件系统的目录(如 /mnt/data)。
文件系统类型:文件系统的类型(如 ext4, ntfs, vfat 等)。
挂载选项:可以是多个选项的组合,如 defaults、ro(只读)等。例如:
defaults:默认选项
noatime:不更新访问时间
nosuid:不允许设置用户 ID 位
转储:用于 dump 命令的备份工具,通常设置为 0(不备份)或 1(备份)。
自检:系统启动时用来确定检查文件系统的顺序,根文件系统通常为 1,其他文件系统为 2,或者 0 表示不检查。
三、常见操作
1.修改ssh远程端口(见专栏文档)
2.修改网卡配置文件
3.查看ssh登录记录
4.设置ssh登录权限
5.host文件配置
6.定时任务配置
7.shell文件编写(较多后面专门出专题)