走走停停,别忘记出发
LINUX随笔
linux属于操作系统内核,CentOS、Ubuntu都是基于linux内核的操作系统。
详细了解 传送门
安装
虚拟机安装
- vmware下载
- CentOS/Ubuntu镜像下载
- 安装步骤,网上一大堆。
真机安装
swap: 真实内存的两倍。大内存(>16G)不需要,一般2G
/boot: 启动分区,注意uefi模式。装双系统的1G,其他500M
/home: 家目录,设置硬盘的1/3
/ : 根目录,剩余硬盘全给
BIOSboot: 分区为GPT需要,mbr不需要。详细
使用
1.ulimit
控制shell程序的资源
-c 程序出错时,将程序在内存中的信息写入文件(内核文件)。限制每个内核文件最大容量
-n linux对程序和文件打开的上限限制
2.sysctl
运行时改变系统变量(sysctl.conf文件)
-w 临时改变指定参数的值
-a 显示多有系统参数
-p 从指定文件中加载系统参数(/etc/sysctl.conf)
3.systemctl
更新换代----systemctl命令取代chkconfig和service
是systemd工具,负责控制systemd系统和服务管理器
1)取代systemV初始进程。集中管理和配置类unix。常用:disable、enableg管理开机自启动。
2)控制、管理服务。启动(start)、停止(stop)、重启(restart)、检查(status)服务状态。
4.nmcli
监控管理网络设置的守护进程—WIFI
配置文件:/etc/sysconfig/network-scripts
-device: 接口,监控管理网络设备的接口。-d
-connection:连接,监控管理网络设备的连接。-c
1)使用网络配置# 连接wifi: nmcli dev wifi connect TPLINK123 password 123456
# 关闭wifi: nmcli dev wifi disconnect TPLINK123
# 配置生效i: nmcli down TPLINK123 nmcli up TPLINK123
2)配置文件
/etc/NetworkManager/NetworkManager.conf# 配置生效i: systemctl restart network nmcli con reload
3)wifi
扫描:nmcli dev wifi 开关无线网卡:nmcli r wifi off/on 查看所有连接: nmcli conn show
5.iptables
(一) linux防火墙通过netfilter框架实现
1)netfilter体系
- NF_IP_PRE_PROUTING::替换IP包目的地址,即DNAT
- NF_IP_LOCAL_IN:处理发送到本机的数据
- NF_IP_FORWARD: 处理非发送到本机的数据(丢弃)
- NF_IP_LOCAL_OUT:本机应用程序发出的包(路由)
- NF_IP_POST_PROUTING:数据包从本地发出,即SNAT
上述函数称为钩子函数
2)包过滤(过滤操作)
- NF_ACCEPT:继续正常传递
- NF_DROP:丢弃
- NF_STOLEN:已接管,不继续发送
- NF_QUEUE:排列包
- NF_REPEAT:再次使用钩子函数
iptables工具注册上述过滤规则;每种钩子函数按规则匹配后进行过滤
3)包选择
- filter表(过滤):作用,过滤包,不改变包
- mangle表:作用,改变包信息,与5个上述的钩子函数有关
- NAT表(网络地址转换):作用,网路过滤包
- NF_IP_PRE_PROUTING,目的地址转换
- NF_IP_POST_PROUTING,源地址转换
钩子函数的执行按表顺序调用。
以NF_IP_PRE_PROUTING为例:filter->> mangle->> NAT
(二) iptables工具配置修改防火墙规则
- 作用:设置、维护、检查Linux内核IP包过滤规则
- filter、mangle、NAT、raw表(table)包含多个链(chain),链上存多个规则(rule)
- iptables管理:表(table)、链(chain)、规则(rule)
1)五链(chain): 对应五个钩子函数
- INPUT
- FORWARD
- OUTPUT
- PREROUTING
- POSTROUTING
linux系统作为防火墙使用的前提:内核支持+网络转发;
开启网络转发:echo 1 > /proc/sys/net/ipv4/ip_forward # 系统启动时可将上述命令写入/etc/rc.d/rc.local
2)数据包过防火墙分三种情况:
(Ⅰ) 本地为目标、转发的包
数据包在链路传输
数据包进入网络接口(eth0)
mangle表PREROUTING链,对包改写(标记)
NAT表PREROUTING链,路由判断 (DNAT):
1) 发本地程序
- mangle表 INPUT链,路由后,发本地程序前,对包改写/标记
- filter表 INPUT链,以本地为目的包过滤规则设置
2)转发
- mangle表 FORWARD链,包继续发送到mangle表(特殊情况)
- filter表 FORWARD链,对转发包过滤
- mangle表 POSTROUTING链,更改包目的地址后执行(特殊情况)
- mangle表 POSTROUTING链,SNAT
离开网络接口(eth0)
链路传输
(Ⅱ)本地为源
- 本地程序(服务、客户端)
- 路由判断
- mangle表OUTPUT链,对包改写/标记
- NAT表OUTPUT 链,对发出包DNAT操作
- filter表OUTPUT 链,对发出包过滤
- mangle表POSTROUTING链,对包修改
- filter表POSTROUTING两,SNAT
- 离开网络接口(eth0)
- 链路传输
3)包过滤(常用)
- ACCEPT:满足条件,不在匹配当前chain或table中其他规则,仍然回去匹配其他table中的chain。
- DROP:满足条件,被丢弃,不返回任何消息
- REJECT:满足条件,与DROP一样,但返回错误信息
- RETURN:结束当前规则链中过滤规则,返回上一层主规则链继续过滤
- MARK:包被标记,提供后续规则判断条件,执行后继续匹配其他规则。
4)常用参数
- -t:指定表
- -n:使用数字显示
- -v:查看规则详细信息
- -L:显示表中规则
- -F:清空链(表)所有规则
- -N:新建自定义链
- -A:末尾添加规则
- -I:首行添加规则
- -D:按号码删除规则
- -X:删除指定表中用户自定义的规则链
- -j :执行参数(包过滤)
5)匹配标准
- 通用匹配
-s:指定作为源地址匹配(IP),可用 “!” 取反
-d:匹配目标地址
-p:匹配协议,TCP、UDP、ICMP
-i: 数据流入,后接指定网络接口 eth0、eth1-o:数据流出,后接指定网络接口 eth0、eth1INPUT | PREROUTING 链中设置
OUTPUT | POSTROUTING 链中设置
- 扩展匹配
<1>. 隐含扩展
–dport:指定目标端口 --dport 21 或 --dport 21-23
–sport:指定源端口
–tcp-flags:TCP标志位(SYN | ACK | FIN | PSH…)
<2>.显示扩展
-m multiport:启用多端口扩展6)-j ACTION
常用动作:DROP、REJECT、ACCEPT、DNAT、SNAT、MASQUERANDE、REDIRECT、MARK、RETURN
6.Linux信号
- Linux系统给利用信号与系统中进程通信
值表示 字符表示 说明 1 SIGHP 挂起进程 2 SIGINT 中止进程 3 SIGQUIT 停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 尽可能终止进程 17 SIGSTOP 无条件停止进程,非终止 18 SIGSTP 停止或暂停进程,但不终止 19 SIGCONT 继续运行停止的进程 - trap 命令:监视并拦截Linux信号
trap "command" SIGINT # 执行命令 拦截信号2 exit 0 # 正常运行程序并退出程序 exit 1 # 非正常运行导致退出程序
7.DNSmasq工具
- 简述:配置DNS和DHCP的工具
- Linux的DNS解析
- /etc/hosts文件
- /etc/resolv.conf文件查找
- DNSmasq工具配置文件:/etc/dnsmasq.conf
- DNSmasq工具配置参数:
参数 说明 resolv-file 获取上层dns地址,默认/etc/resolv.conf strict-order 按顺序解析DNS listen-address DNSmasq监听地址,默认本机所有网卡 address 启用泛域名解析,即自定义解析记录 server 指定DNS服务器 conf-dir 配置文件夹路径 bogus-nxdomain 禁止跳转到运营商广告站点
8.网络配置工具
(1)iproute2命令工具
- ip addr命令代替ifconfig
- ip route命令代替route
(2)tcpdump
-------studying-------
(3)iperf