duzhuo's-blog

学无止境

防火墙 - Firewalld

一、firewalld 服务命令

systemctl enable firewalld.service  # 开启服务(开机自动启动服务)
systemctl disable firewalld.service # 关闭服务(开机不会自动启动服务)
systemctl start firewalld.service   # 启动服务
systemctl stop firewalld.service    # 停止服务
systemctl restart firewalld.service # 重启服务
systemctl reload firewalld.service  # 重新载入配置
systemctl status firewalld.service  # 查看服务状态

二、firewall-cmd 命令

firewall-cmd 命令用于配置防火墙。

firewall-cmd --version                    # 查看版本
firewall-cmd --help                       # 查看帮助
firewall-cmd --state                      # 显示状态
firewall-cmd --reload                     # 更新防火墙规则
firewall-cmd --get-active-zones           # 查看区域信息
firewall-cmd --get-zone-of-interface=eth0 # 查看指定接口所属区域
firewall-cmd --panic-on                   # 拒绝所有包
firewall-cmd --panic-off                  # 取消拒绝状态
firewall-cmd --query-panic                # 查看是否拒绝

firewall-cmd --zone=public --list-ports   # 查看所有打开的端口
firewall-cmd --zone=public --query-port=80/tcp # 查看是否有开放的 80 TCP 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent # 添加开放端口(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 永久删除开放的 80 TCP 端口

参考资料

Iptables 应用

iptables 是一个配置 Linux 内核 防火墙 的命令行工具,是 netfilter 项目的一部分。 可以直接配置,也可以通过许多前端和图形界面配置。

iptables 也经常代指该内核级防火墙。iptables 用于 ipv4ip6tables 用于 ipv6

nftables 已经包含在 Linux kernel 3.13 中,以后会取代 iptables 成为主要的 Linux 防火墙工具。

环境:CentOS7

1. 简介

iptables 可以检测、修改、转发、重定向和丢弃 IPv4 数据包

过滤 IPv4 数据包的代码已经内置于内核中,并且按照不同的目的被组织成 的集合。 由一组预先定义的 组成,包含遍历顺序规则。每一条规则包含一个谓词的潜在匹配和相应的动作(称为 目标),如果谓词为真,该动作会被执行。也就是说条件匹配。

2. 安装 iptables

(1)禁用 firewalld

CentOS 7 上默认安装了 firewalld 作为防火墙,使用 iptables 建议关闭并禁用 firewalld。

systemctl stop firewalld
systemctl disable firewalld

(2)安装 iptables

阅读全文 »

Linux 文件目录管理

关键词:cd, ls, pwd, mkdir, rmdir, tree, touch, ln, rename, stat, file, chmod, chown, locate, find, cp, scp, mv, rm

1. Linux 文件目录工作机制

1.1. Linux 目录结构

linux 目录结构是树形结构,其根目录是 / 。一张思维导图说明各个目录的作用:

img

1.2. Linux 文件属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:

$ ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot

实例中,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

阅读全文 »

Linux 文件压缩和解压

关键词:tar, gzip, zip, unzip

1. Linux 文件压缩和解压要点

  • 压缩和解压 tar 文件 - 使用 tar
  • 压缩和解压 gz 文件 - 使用 gzip
  • 压缩和解压 zip 文件 - 分别使用 zipunzip

2. 命令常见用法

2.1. tar

tar 命令可以为 linux 的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

参考:http://man.linuxde.net/tar

示例:

tar -cvf log.tar log2012.log            # 仅打包,不压缩
tar -zcvf log.tar.gz log2012.log        # 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log       # 打包后,以 bzip2 压缩

tar -ztvf log.tar.gz                    # 查阅上述 tar 包内有哪些文件
tar -zxvf log.tar.gz                    # 将 tar 包解压缩
tar -zxvf log30.tar.gz log2013.log      # 只将 tar 内的部分文件解压出来

2.2. gzip

阅读全文 »

Linux 文件内容查看编辑

关键词:cat, head, tail, more, less, sed, vi, grep

1. Linux 文件内容查看编辑要点

  • 连接文件并打印到标准输出设备 - 使用 cat
  • 显示指定文件的开头若干行 - 使用 head
  • 显示指定文件的末尾若干行,常用于实时打印日志文件内容 - 使用 tail
  • 显示文件内容,每次显示一屏 - 使用 more
  • 显示文件内容,每次显示一屏 - 使用 less
  • 自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等 - 使用 sed
  • 文本编辑器 - 使用 vi
  • 使用正则表达式搜索文本,并把匹配的行打印出来 - 使用 grep

2. 命令常见用法

2.1. cat

cat 命令用于连接文件并打印到标准输出设备上。

参考:http://man.linuxde.net/cat

示例:

cat m1              # 在屏幕上显示文件 ml 的内容
cat m1 m2           # 同时显示文件 ml 和 m2 的内容
cat m1 m2 > file    # 将文件 ml 和 m2 合并后放入文件 file 中

2.2. head

阅读全文 »

Linux 硬件管理

关键词:df, du, top, free, iotop

1. Linux 硬件管理要点

  • 查看磁盘空间 - 使用 df
  • 查看文件或目录的磁盘空间 - 使用 du
  • 实时查看系统整体运行状态(如:CPU、内存) - 使用 top
  • 查看已使用和未使用的内存 - 使用 free
  • 查看磁盘 I/O 使用状况 - 使用 iotop

2. 命令常见用法

2.1. df

df 命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为 KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

参考:http://man.linuxde.net/df

示例:

# 查看系统磁盘设备,默认是 KB 为单位
[root@LinServ-1 ~]# df
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda2            146294492  28244432 110498708  21% /
/dev/sda1              1019208     62360    904240   7% /boot
tmpfs                  1032204         0   1032204   0% /dev/shm
/dev/sdb1            2884284108 218826068 2518944764   8% /data1

# 使用 -h 选项以 KB 以上的单位来显示,可读性高
[root@LinServ-1 ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda2             140G   27G  106G  21% /
/dev/sda1             996M   61M  884M   7% /boot
tmpfs                1009M     0 1009M   0% /dev/shm
/dev/sdb1             2.7T  209G  2.4T   8% /data1

# 查看全部文件系统
[root@LinServ-1 ~]# df -a
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda2            146294492  28244432 110498708  21% /
proc                         0         0         0   -  /proc
sysfs                        0         0         0   -  /sys
devpts                       0         0         0   -  /dev/pts
/dev/sda1              1019208     62360    904240   7% /boot
tmpfs                  1032204         0   1032204   0% /dev/shm
/dev/sdb1            2884284108 218826068 2518944764   8% /data1
none                         0         0         0   -  /proc/sys/fs/binfmt_misc

2.2. du

阅读全文 »

查看 Linux 命令帮助信息

Linux 中有非常多的命令,想全部背下来是很困难的事。所以,我认为学习 Linux 的第一步,就是了解如何快速检索命令说明。

关键词:help, whatis, info, which, whereis, man

1. 查看 Linux 命令帮助信息的要点

  • 查看 Shell 内部命令的帮助信息 - 使用 help
  • 查看命令的简要说明 - 使用 whatis
  • 查看命令的详细说明 - 使用 info
  • 查看命令的位置 - 使用 which
  • 定位指令的二进制程序、源代码文件和 man 手册页等相关文件的路径 - 使用 whereis
  • 查看命令的帮助手册(包含说明、用法等信息) - 使用 man
  • 只记得部分命令关键字 - 使用 man -k

注:推荐一些 Linux 命令中文手册:

2. 命令常见用法

2.1. help

help 命令用于查看 Shell 内部命令的帮助信息。而对于外部命令的帮助信息只能使用 man 或者 info 命令查看。

参考:http://man.linuxde.net/help

2.2. whatis

whatis 用于查询一个命令执行什么功能。

参考:http://man.linuxde.net/whatis

阅读全文 »

Linux 网络管理

关键词:curl, wget, telnet, ip, hostname, ifconfig, route, ssh, ssh-keygen, firewalld, iptables, host, nslookup, nc/netcat, ping, traceroute, netstat

1. Linux 网络应用要点

  • 下载文件 - 使用 curlwget
  • telnet 方式登录远程主机,对远程主机进行管理 - 使用 telnet
  • 查看或操纵 Linux 主机的路由、网络设备、策略路由和隧道 - 使用 ip
  • 查看和设置系统的主机名 - 使用 hostname
  • 查看和配置 Linux 内核中网络接口的网络参数 - 使用 ifconfig
  • 查看和设置 Linux 内核中的网络路由表 - 使用 route
  • ssh 方式连接远程主机 - 使用 ssh
  • 为 ssh 生成、管理和转换认证密钥 - 使用 ssh-keygen
  • 查看、设置防火墙(Centos7),使用 firewalld
  • 查看、设置防火墙(Centos7 以前),使用 iptables
  • 查看域名信息 - 使用 host, nslookup
  • 设置路由 - 使用 nc/netcat
  • 测试主机之间网络是否连通 - 使用 ping
  • 追踪数据在网络上的传输时的全部路径 - 使用 traceroute
  • 查看当前工作的端口信息 - 使用 netstat

2. 命令常见用法

2.1. curl

curl 命令是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。作为一款强力工具,curl 支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl 可以祝一臂之力。

参考:http://man.linuxde.net/curl

示例:

# 下载文件
$ curl http://man.linuxde.net/text.iso --silent

# 下载文件,指定下载路径,并查看进度
$ curl http://man.linuxde.net/test.iso -o filename.iso --progress
########################################## 100.0%

2.2. wget

阅读全文 »

Linux 软件管理

关键词:rpm, yum, apt-get

1. rpm

rpm 命令是 RPM 软件包的管理工具。rpm 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

参考:http://man.linuxde.net/rpm

示例:

(1)安装 rpm 包

rpm -ivh xxx.rpm

(2)安装.src.rpm 软件包

这类软件包是包含了源代码的 rpm 包,在安装时需要进行编译

rpm -i xxx.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp xxx.specs             #一个和你的软件包同名的specs文件
cd /usr/src/redhat/BUILD/xxx/      #一个和你的软件包同名的目录
./configure                        #这一步和编译普通的源码软件一样,可以加上参数
make
make install
阅读全文 »

Linux 系统管理

关键词:lsb_release, reboot, exit, shutdown, date, mount, umount, ps, kill, systemctl, service, crontab

1. Linux 系统管理要点

  • 查看 Linux 系统发行版本
    • 使用 lsb_release(此命令适用于所有的 Linux 发行版本)
    • 使用 cat /etc/redhat-release(此方法只适合 Redhat 系的 Linux)
  • 查看 CPU 信息 - 使用 cat /proc/cpuinfo
  • 重新启动 Linux 操作系统 - 使用 reboot
  • 退出 shell,并返回给定值 - 使用 exit
  • 关闭系统 - 使用 shutdown
  • 查看或设置系统时间与日期 - 使用 date
  • 挂载文件系统 - 使用 mount
  • 取消挂载文件系统 - 使用 umount
  • 查看系统当前进程状态 - 使用 ps
  • 删除当前正在运行的进程 - 使用 kill
  • 启动、停止、重启、关闭、显示系统服务(Centos7),使用 systemctl
  • 启动、停止、重启、关闭、显示系统服务(Centos7 以前),使用 service
  • 管理需要周期性执行的任务,使用 crontab

2. 命令常见用法

2.1. lsb_release

lsb_release 不是 bash 默认命令,如果要使用,需要先安装。

安装方法:

  1. 执行 yum provides lsb_release,查看支持 lsb_release 命令的包。
  2. 选择合适版本,执行类似这样的安装命令:yum install -y redhat-lsb-core-4.1-27.el7.centos.1.x86_64

2.2. reboot

阅读全文 »
0%