linux命令
linux命令--find
Linux find命令用来在指定目录下查找文件。
命令组成:find [搜索目录] [参数] [文件属性]
参数说明:
-name:文件名称符合 name 的文件。-iname 会忽略大小写
举例说明:
a. 搜索范围从根目录开始,搜索文件1.txt:find / -name 1.txt
b. 搜索范围从home目录开始,搜索文件1.txt:find /home -name 1.txt
c. 搜索范围从当前目录开始,搜索文件1.txt: find . -name 1.txt
d. 搜索范围从home目录开始,搜索以 .txt 结尾的文件: find /home -name *.txt
iptables
一、在服务器上打开 22、80、9011端口:
iptables -A INPUT -p tcp --dport 9011 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 9011 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
二:关闭所有其他的端口:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
三:查看iptables:
iptables -L -n --line-number
---------------------------------
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:9011
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:80
四:删除第三条规则:
iptables -D INPUT 3
iptables -D OUTPUT 3
1 位置
使用vim /usr/sysconfig/iptables
2 启动、关闭、保存
- service iptables stop
- service iptables start
- service iptables restart
- service iptables save
3 结构
iptables –> tables –> chains –>rules
3.1 iptables的表与链
iptables具有Filter,NAT,Mangle,Raw四种内建表
3.1.1 Filter表
filter表示iptables的默认表,它具有三种内建链:
- input chain - 处理来之外部的数据
- output chain - 处理向外发送的数据
-
forward chain- 将数据转发到本机的其它网卡上
3.1.2 NAT表
NAT有三种内建的链:
- prerouting - 处理刚到达本机并在路由转发前的数据包,它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
- postrouting - 处理即将离开本机数据包,它会转换数据包中的源目标IP地址(source ip address),通常SNAT(source NAT)
- output - 处理本机产生的数据包
3.1.3 Mangle表
Mangle表用于指定如何处理数据包,它能改变TCP头中的Qos位,Mangle表具有5个内建链
- prerouting
- output
- forward
- input
- postrouting
3.1.4 Raw表
raw表用户处理异常,它具有2个内建链
- prerouting chain
- output chain
3.2 Iptables规则(Rules)
- rules包括一个条件和一个目标(target)
- 如果满足条件就执行目标target中规则或者特定值
- 如果不满足条件,就判断下一条Rules
3.2.1 目标值
- accept - 允许防火墙接收数据包
- drop - 防火墙丢弃数据包
- queue - 防火墙将数据包移交到用户空间
- return - 防火墙停止执行当前链中的后续rules规则,并返回到调用链(the calling chain)
4 命令
#iptables -t filter -L 查看filter表
#iptables -t nat -L 查看nat表
#iptables -t mangel -L 查看mangel表
#iptables -t raw -L 查看Raw表
例如 以下例子表明在filter表的input链, forward链, output链中存在规则:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# iptables --list Chain INPUT (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0 /0 0.0.0.0 /0 Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0 /0 0.0.0.0 /0 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0 /0 0.0.0.0 /0 2 ACCEPT icmp -- 0.0.0.0 /0 0.0.0.0 /0 icmp type 255 3 ACCEPT esp -- 0.0.0.0 /0 0.0.0.0 /0 4 ACCEPT ah -- 0.0.0.0 /0 0.0.0.0 /0 5 ACCEPT udp -- 0.0.0.0 /0 224.0.0.251 udp dpt:5353 6 ACCEPT udp -- 0.0.0.0 /0 0.0.0.0 /0 udp dpt:631 7 ACCEPT tcp -- 0.0.0.0 /0 0.0.0.0 /0 tcp dpt:631 8 ACCEPT all -- 0.0.0.0 /0 0.0.0.0 /0 state RELATED,ESTABLISHED 9 ACCEPT tcp -- 0.0.0.0 /0 0.0.0.0 /0 state NEW tcp dpt:22 10 REJECT all -- 0.0.0.0 /0 0.0.0.0 /0 reject-with icmp-host-prohibited |
字段说明
num:编号
target:目标
prot:协议
source:数据包的源IP地址
destination:数据包的目标地址
4.1 清空所有的规则
#iptables –flush
4.2 追加命令
iptables -A命令追加新规则,其中-A表示append,一般而言最后一条规则用于丢弃(drop)所有数据包,并且使用-A参数添加新规则,那么就是无用的。
4.2.1 语法
iptables –A chain firewall-rule
- -A chain 指定要追加的规则的链
- firewall-rule 具体规则的参数
4.2.2 基本参数
用于描述数据包的协议,源地址、目的地址、允许经过的网络接口,以及如何处理这些数据包。
- 协议 –p (protocol)
如tcp,udp,icmp等,可以使用all来指定所有协议
不指定-p参数,默认值是all,
可以使用协议名(tcp,udp),或者协议值(6代表tcp),映射关系可以查看/etc/protocols - 源地址 –s (source)
指定数据包的源地址,参数可以使用IP地址、网络地址、主机名,不指定-s参数,就是代表所有地址。
例如:-s 192.168.1.101 具体的IP地址
例如:-s 192.168.1.10/24 指定网络地址 - 目的地址 –d (destination)
指定目的地址,参数和-s相同 - 执行目标 –j (jump to target)
-j代表了当与规则(Rule)匹配时如何处理数据包,可能的值是accept、drop、queue、return,还可以指定其他链(chain)作为目标 - 输入接口 –i (input interface)
指定了要处理来自哪个接口的数据包,这些数据包进入input、forward、prepoute链,不指定将处理进入所有接口的数据包
例如:-i eth0 指定了要处理eth0进入的数据
可以取反 !-i eth0,指eth0以外。
可以匹配 -i eth+ 指以eth开头的 - 输出接口 –o (out interface)
数据包有那个接口输出,类似于 –i - 源端口 –sport
例如 –sport 22
例如 –sport 22:100指定端口范围 - 目的端口 –dport
类似于-sport - TCP标志
- ICMP类型
5 实例分析
例如:接收目标端口为22的数据包
iptables –A INPUT –i etho –p tcp –dprot 22 –j ACCEPT
例如:拒绝所有其他数据包
iptables –A INPUT –j DROP
6 修改默认策略
上例仅对接收的数据包进行过滤,而对于要发出的数据包却没有任何限制。
使用iptables –L查看防火墙配置时,发现所有的链旁边都有(policy ACCEPT)标注,这表明当前链的默认策略为ACCEPT
2
3
4
5
6
7
8
9
10
11
12
|
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt: ssh DROP all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination<br> |
这种情况下,如果没有明确添加DROP规则,那么默认情况下采用ACCEPT策略进行过滤。
6.1 添加DROP规则
iptables –A INPUT –j DROP
iptables –A OUTPUT –j DROP
iptables –A FORWARD –j DROP
6.2 SSH
允许接收远程主机的SSH请求
2
|
iptables –A INPUT –i eth0 –p tcp –dport 22 –m state --state NEW,ESTABLISHED –j ACCEPT |
允许发送本地主机的SSH响应
2
|
iptables –A OUTPUT –o eth0 –p tcp –sport 22 –m state --state ESTABLISHED –j ACCEPT |
注意这几个参数
- -m state:启用状态匹配模块(state matching module)
- -- state:状态匹配模块的参数,当ssh客户端第一个数据包到达服务器时,状态字段为NEW,建立连接后数据包的状态字段都是ESTABLISHED
6.3 HTTP
允许接收远程主机的http请求
2
|
iptables –A INPUT –i eth0 –p tcp --dport 80 –m state --state NEW ,ESTABLISHED –j ACCPET |
允许发送本地主机的Http响应
2
|
iptables –A OUTPUT –i eth0 –p tcp -- sport 80 –m state --state ESTABLISHED -j ACCPET |
6.4 完成的配置步骤
6.4.1 删除现有的规则
2
|
iptables -F |
6.4.2 配置默认策略
2
3
4
5
6
|
iptables –P INPUT DROP iptables –P FORWARD DROP iptables –P OUTPUT DROP |
6.4.3 允许远程主机进行SSH连接
2
3
|
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT |
6.4.4 允许本地主机进行SSH连接
2
3
|
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT |
6.4.5允许http请求
2
3
|
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT |
4.netstat -nlpt|grep 80 查看端口号有没有被占用;
5.ps -ef|grep mysql ps -ef查找进程 grep 显示文件中的匹配行;ps -ef|grep httpd |grep -v "grep" -v 是指把grep进程排除掉;ps是瞬时的,top是动态的
Linux查看系统配置常用命令
系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量 资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载 磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况 网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息 进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态 用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务 服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务 程序
# rpm -qa # 查看所有安装的软件包