Linux

发布于:2025-02-11 ⋅ 阅读:(82) ⋅ 点赞:(0)

Linux基础

防火墙命令

注意:在centos6和centos7中,命令上的区别

1.防火墙:6是iptables,7是firewalld
2.启动服务的命令:6是service 7是systemctl

iptables防火墙

iptables 防火墙分类

①过滤防火墙(pack filtering)在网络层对数据包进行选择过滤,采用访问控制列表(Access control table-ACL)检查数据流的源地址,目的地址,源和目的端口,IP等信息。
②代理服务器型防火墙

iptables 基础

①规则(rules):网络管理员预定义的条件
②链(chains): 是数据包传播的路径
③表(tables):内置3个表filter表,nat表,mangle表分别用于实现包过滤网络地址转换和包重构的功能
④filter表是系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
⑤nat表(网络地址转换),PREROUTING(修改即将到来的数据包),OUTPUT(修改在路由之前本地生成的数据包),POSTROUTING(修改即将出去的数据包)
⑥mangle表,PREROUTING,OUTPUT,FORWORD,POSTROUTING,INPUT

iptable 防火墙命令
  • 1.查看防火墙状态
service iptables status 
  • 2.关闭防火墙
# 临时关闭防火墙,重启linux后,防火墙会自动开启
service iptables stop
# 永久关闭防火墙
chkconfig iptables off

iptables如何添加端口

  • 格式
iptables [-t 表] -命令 匹配 操作 (大小写敏感)

动作选项
ACCEPT 接收数据包
DROP 丢弃数据包
REDIRECT 将数据包重新转向到本机或另一台主机的某一个端口,通常功能实现透明代理或对外开放内网的某些服务
SNAT 源地址转换
DNAT 目的地址转换
MASQUERADE IP伪装
LOG 日志功能

  • 查看ip端口
telnet localhost 35465
  • 开放的端口位于/etc/sysconfig/iptables
more /etc/sysconfig/iptables 

在这里插入图片描述

  • 开放端口
    • 通过vi /etc/sysconfig/iptables 进入编辑增添一条-A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT 即可
    • 执行 /etc/init.d/iptables restart 命令将iptables服务重启
    • 保存 /etc/rc.d/init.d/iptables save

注意:如若不想修改iptables表,可以直接输入下面命令: iptables -I INPUT -p tcp --dport 8889 -j ACCEPT

iptables规则定义

2、定义规则
①先拒绝所有的数据包,然后再允许需要的数据包
iptalbes -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
②查看nat表所有链的规则列表
iptables -t nat -L
③增加,插入,删除和替换规则
iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [–sport 源端口号] [-d 目的IP|目标子网] [–dport 目标端口号] [-j 动作]
参数:-A 增加
-I 插入
-D 删除
-R 替换

  • 案例:
①iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
禁止IP为192.168.1.5的主机从eth0访问本机
②iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport 80 -j DROP
禁止子网192.168.5.0访问web服务
③iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP
禁止IP为192.168.7.9访问FTP服务
④iptables -t filter -L INPUT
查看filter表中INPUT链的规则
⑤iptables -t nat -F
删除nat表中的所有规则
⑥iptables -I FORWARD -d wwww.playboy.com -j DROP
禁止访问 www.playboy.com网站
⑦iptables -I FORWARD -s 192.168.5.23 -j DROP
禁止192.168.5.23上网

firewalld防火墙介绍

防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别

  • drop: 丢弃所有进入的包,而不给出任何响应
  • block: 拒绝所有外部发起的连接,允许内部发起的连接
  • public: 允许指定的进入连接
  • external: 同上,对伪装的进入连接,一般用于路由转发
  • dmz: 允许受限制的进入连接
  • work: 允许受信任的计算机被限制的进入连接,类似 workgroup
  • home: 同上,类似 homegroup
  • internal: 同上,范围针对所有互联网用户
  • trusted: 信任所有连接
firewalld防火墙命令

centos从7开始默认使用的是firewalld,这个是基于iptables的,虽然有iptables的命令,但是iptables服务是没有安装的。所以你只要停止firewalld服务就可以了。

  • 如果你的系统上没有安装使用命令安装,安装firewalld 防火墙
yum install firewalld

# 如果需要图形化界面的话

yum install firewall-config
  • 开启服务
systemctl start firewalld.service
  • 关闭防火墙
systemctl stop firewalld.service
  • 开机自动启动
systemctl enable firewalld.service
  • 关闭开机制动启动
systemctl disable firewalld.service
使用firewall-cmd 命令
  • 查看状态
firewall-cmd --state //running 表示运行
  • 查看现有的规则
iptables -nL
  • 获取活动的区域
firewall-cmd --get-active-zones

这条命令将用以下格式输出每个区域所含接口:
<zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..
  • 获取所有支持的服务
firewall-cmd --get-service
  • 在不改变状态的条件下重新加载防火墙:
firewall-cmd --reload
  • 启用某个服务
firewall-cmd --zone=public --add-service=https //临时

firewall-cmd --permanent --zone=public --add-service=https //永久
  • 开启某个端口
# 添加单个端口
firewall-cmd --permanent --zone=public --add-port=81/tcp

# 添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久

firewall-cmd --zone=public --add-port=8080-8081/tcp //临时
  • 使用命令加载设置
firewall-cmd --reload
  • 查看开启的端口和服务
firewall-cmd --permanent --zone=public --list-services //服务空格隔开 例如 dhcpv6-client https ss

firewall-cmd --permanent --zone=public --list-ports //端口空格隔开 例如 8080-8081/tcp 8388/tcp 80/tcp
  • 设置某个ip 访问某个服务
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"

ip 192.168.0.4/24 访问 http
  • 设置某个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"

  • 删除上面设置的规则
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
  • 检查设定是否生效
 iptables -L -n | grep 21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:21 ctstate NEW
  • 执行命令firewall-cmd --list-all
显示:
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ftp ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:
  • 查询服务的启动状态
firewall-cmd --query-service ftp
yes
firewall-cmd --query-service ssh
yes
firewall-cmd --query-service samba
no
firewall-cmd --query-service http
no
  • 自行加入要开放的 Port
firewall-cmd --add-port=3128/tcp
firewall-cmd --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ftp ssh
  ports: 3128/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

selinux

centos7里面除了默认的firewall还有一个selinux会对开放端口有影响

永久关闭
修改selinux的配置文件,重启后生效。
打开 selinux 配置文件
[root@localhost ~]# vim /etc/selinux/config
修改 selinux 配置文件
将SELINUX=enforcing改为SELINUX=disabled,保存后退出
reboot #重启服务器

常用命令集锦

文件目录命令

查看文件及目录

  • ls命令

    ls(list)功能:列出目录内容
    格式:ls [参数] [文件或者目录]
    参数:
    -a或者-all:当前目录下的所有文件和目录。注意隐藏文件、特殊目录、.和…
    -l :使用详细格式列表 简化命令 ll
    -t: 用文件和目录的更改时间排序
    -r:方向排序
    –help:在线帮助
    ll /home:显示指定目录下的内容

  ls
  ls -a
  ls -all
  ls -al
  ls -l
  ll
  ls -t
  ls -r
  ls --help

root用户登陆,默认目录是/root下。其他用户登陆默认路径是/home/用户名下。

  • cd 命令
    cd (change directory)功能:改变当前目录
    格式:cd [目录]
    目录:
    ~:当前用户目录
    /:根目录
    -:上一次目录
    …:上一级目录
    : 缺省当前用户目录
cd ~
cd /
cd -
cd ..
cd 
  • pwd 命令
    pwd (print working directory)功能:显示当前目录
    格式:pwd
pwd
  • mkdir 命令
    mkdir (make directory)功能:创建目录
    格式:mkdir [参数] [目录]
    参数:
    -p:创建目录时,如果上级目录不存在,则自动创建上级目录
    -v:显示创建目录的详细信息
mkdir -pv ../abc/123

文件浏览

  • cat命令
    cat (concatenate)功能:显示文件内容
    cat [文件名]:显示指定文件的所有内容
cat install.log
  • more 命令
    more (more)功能:分页显示文件内容,还支持直接跳转行等功能
    more [文件名]:显示指定文件的内容,按空格键显示下一页,按回车键显示下一行,按q键退出
    more -n 10 install.log:显示指定文件的前10行内容
    Enter 键:显示下一行
    Space 键:显示下一页
    q 键:退出
    B键:显示上一页
more install.log
more -n 10 install.log
  • less 命令
    less (less)功能:分页显示文件内容,还支持直接跳转行等功能
    格式:less [参数] [文件名]
    -m 显示类似more命令的百分比
    -N 显示每行的行号

操作:

  1. 显示下一行:空格键
  2. 显示下一页:d
  3. 显示上一页:b
  4. 后退半页:u
  5. 显示上一行:回车键
  6. 后退一行:y
  7. 向上搜索: /字符串
  8. 向下搜索: ?字符串
  9. 进入编辑模式:v
  10. 水平滚动条:左右方向键
  11. 退出:q
less -mN install.log
  • tail 命令
    tail (tail)功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理
    tail [必要参数] [选择参数] [文件名]
    参数:
    -n 显示指定行数
    -f 持续显示文件内容,直到按Ctrl+C退出
    & 表示后台运行,否则占用终端
    Ctrl+C 退出
tail -n 10 install.log
tail -f install.log
tail -f -n 10 install.log &

文件操作

  • cp 命令
    cp (copy)功能:复制文件或目录
    cp [参数] [源文件] [目标文件]
    参数:
    -r:复制目录,包括目录下的所有文件和目录
    -v:显示复制操作的详细信息
cp -r /home/abc /home/abc1
cp -v install.log install.log1
  • mv 命令
    mv (move)功能:移动或重命名文件或目录
    格式:mv [参数] [源文件] [目标文件]
    参数:
    -v:显示移动操作的详细信息
    -f:强制覆盖
mv -v install.log install.log1
mv -f install.log1 install.log
mv -f /home/abc /home/abc1
  • rm 命令
    rm (remove)功能:删除文件或目录
    格式:rm [参数] [文件或目录]
    参数:
    -f:强制删除
    -r :删除目录,包括目录下的所有文件和目录
rm -f install.log
rm -r /home/abc
rm -rf /home/abc
  • find 命令

find (find)功能:查找文件或目录
格式:find [参数] [目录] [条件]
参数:
-name:根据文件名查找

find -name "*.log"

文档编辑

  • vi 命令
    vi (vi)功能:编辑文件
    格式:vi [文件名]
    vim 进入“一般模式”
    i 进入“插入模式” 在光标前插入
    shift+i 在光标后插入
    a 在光标后插入
    shift+a 在光标当前行末尾插入
    o 在光标当前行下一行插入新行
    shift+o 在光标当前行前一行插入新行
    yy 复制当前行 将光标移动道将要复制的行处
    nyy 复制当前行到指定行 将光标移动道将要复制的首行处
    p 粘贴 将光标移动道将要粘贴的行处
    gg 跳转到第一行
    shift+G 跳转到最后一行
    dd 删除当前行
    ndd 删除指定行到当前行

esc 退出
:q 退出,不保存
:w 保存不退出
:wq 保存并退出
:q! 退出,不保存

vim  install.log
i
esc键
:wq
:q!

管道 |

管道(Pipe)是两个命令之间连接的符号,通过管道可以将一个命令的输出作为另一个命令的输入。
管道命令格式:命令1 | 命令2

ls -l | more

grep 命令

grep (global regular expression print)功能:查找文件内容
格式:grep [参数] [内容] [文件]
参数:
-i 忽略大小写

grep -i "error" install.log

磁盘命令

  • ps 命令
    ps (process status)功能:显示进程状态
    ps [参数] [进程]
    参数:
    -e 显示所有进程
    -f 显示进程的详细信息
ps -ef | grep java
  • kill 命令
    kill (kill)功能:终止进程
    格式:kill [参数] [进程]
    参数:
    -9:强制终止进程
kill -9 1234
  • ifconfig 命令
    ifconfig (interface configuration)功能:显示网络接口信息
    ifconfig
ifconfig
  • ping 命令
    ping (ping)功能:测试网络连接
    ping [参数] [主机]
    参数:
    -c 次数:ping次数
    -i 间隔:ping间隔
    -t 测试时间:ping时间
ping -c 10 www.baidu.com
  • reboot 命令
    reboot (reboot)功能:重启计算机

  • halt 命令
    halt (halt)功能:关闭计算机

备份压缩

  • tar 命令
    tar (tar)功能:打包文件或目录
    格式:tar [参数] [文件]
    参数:
    -c:创建tar包
    -x :解压tar包
    -z :使用gzip压缩
    -v :显示打包或解压的详细信息
    -f :指定tar包名称
# 解压
tar -zxvf install.tar.gz
# 打包
tar -zcvf install.tar.gz install.log
文件权限
  • chmod 命令
    chmod (change mode)功能:修改文件权限
    chmod [权限] [文件]
    参数:
    u:用户
    g:组
    o:其他用户
    a:所有用户
    符号:
    +:增加权限
    -:减少权限
    权限:
    r:读,数字代号4
    w:写,数字代号2
    x:执行,数字代号1
    -:无,数字代号0
chmod u+x install.log
chmod u-x install.log
chmod g+x install.log
chmod ugo+x install.log
chmod 777 install.log

在这里插入图片描述

网络配置

  • 命令配置
    查看网卡配置
cat /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

rpm 包管理

二进制包以及源代码包两种。二进制包可以直接安装在计算机上,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用命令组合:

  • -ivh:安装显示安装进度 --install-verbose-hash
  • -Uvh:升级软件包 --Update
  • -qpl:列出RPM软件包内的文件信息[Query Package list]
  • -qpi:列出RPM软件包的描述信息[Query Package install package(s)]
  • -qf:查找指定文件属于哪个RPM软件包[Query File]
  • -Va:校验所有的RPM软件包,查找丢失的文件[View Lost]
  • -e:删除包
rpm -q samba //查询程序是否安装
rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.20-1.i386.rpm //按照路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-2.6.0-1.i386.rpm //安装指定目录
rpm -ivh --test gaim-2.6.0-1.i386.rpm //用来检查依赖关系,并不是真正的安装
rpm -Uvh --oldpackage gaim-2.6.0-1.i386.rpm //新版本降级为旧版本
rpm -qa | grep httpd // [搜索指定rpm是否安装]--all 搜索“httpd”
rpm -ql httpd // [查看rpm包]--list 所有文件安装目录
rpm -qpi Linux-1.4-6.i368.rpm // [查看rpm包]--query--package--install pageage信息
rpm -qpf Linux-1.4.6.i368.rpm // [查看rpm包]--file
rpm -qpR file.rpm // [查看rpm包]--依赖关系
rpm2cpio file.rpm | cpio -div // [抽出文件]
rpm -ivh file.rpm // [安装新的rpm]--install--verbose--hash
rpm -ivh [url]http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm[/url] 
rpm -Uvh file.rpm //[升级一个rpm] --upgrade
rpm -e file.rpm //[删除一个rpm] --erase

常用参数:

Install/Upgrade/Erase options:
-i, --install                     install package(s)
-v, --verbose                     provide more detailed output
-h, --hash                        print hash marks as package installs (good with -v)
-e, --erase                       erase (uninstall) package
-U, --upgrade=<packagefile>+      upgrade package(s)-replacepkge                    无论软件包是否已被安装,都强行安装软件包
--test                            安装测试,并不实际安装
--nodeps                          忽略软件包的依赖关系强行安装
--force                           忽略软件包及文件的冲突
Query options (with -q or --query):
-a, --all                         query/verify all packages
-p, --package                     query/verify a package file
-l, --list                        list files in package
-d, --docfiles                    list all documentation files
-f, --file                        query/verify package(s) owning file

rpm --recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:
rpm --rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm 的RPM软件包。
demo
[root@localhost src]# rpm -ivh awstats-6.8-1.noarch.rpm
error: Failed dependencies:
perl(LWP::UserAgent) is needed by awstats-6.8-1.noarch
[root@localhost src]#

使用rpm 属性相依套件的档案

[root@localhost src]# rpm -qpR awstats-6.8-1.noarch.rpm
/bin/sh
/usr/bin/perl
config(awstats) = 6.8-1
perl >= 0:5.005
perl(LWP::UserAgent)
perl(POSIX)
perl(Socket)
perl(Time::Local)
perl(strict)
perl(vars)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

另外:# rpm -ivh --aid samba*.rpm (一定要安装rpmdb后才可以用这种方式安装排除依赖关系)

网站公告

今日签到

点亮在社区的每一天
去签到