10月25日任务
10.11 Linux网络相关
10.12 firewalld和netfilter
10.13 netfilter5表5链介绍
10.14 iptables语法
Linux网络相关命令
查看网卡信息:ifconfig
安装:yum install -y net-tools
[root@centos7 ~]# ifconfig ens33: flags=4163mtu 1500 inet 192.168.65.130 netmask 255.255.255.0 broadcast 192.168.65.255 ...lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 ...
手动启动/关闭特定网卡
ifup/ifdown ens33
设置虚拟网卡
- 拷贝网卡文件为新文件
# 这里在命令行模式下要转义:即\:[root@centos7 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:1
- 修改新的网卡文件
[root@centos7 network-scripts]# vim ifcfg-ens33:1 # 其中只要修改IPADDR、DEVICE和NAME三列即可# 这里要删除UUID(唯一性),可以将DNS,GATEWAY行也删掉(可选)
- 重新启动ens33网卡,附带的新建的虚拟网卡也会重启生效
[root@centos7 network-scripts]# ifdown ens33 && ifup ens33成功断开设备 'ens33'。连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
- 使用ifconfig验证
[root@centos7 network-scripts]# ifconfigens33: flags=4163mtu 1500 inet 192.168.65.133 netmask 255.255.255.0 broadcast 192.168.65.255 ...ens33:1: flags=4163 mtu 1500 inet 192.168.65.143 netmask 255.255.255.0 broadcast 192.168.65.255 ether 00:0c:29:94:84:1f txqueuelen 1000 (Ethernet)lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 ...
在物理机测试ping可通,证明配置成功
C:\Users\18367>ping 192.168.65.143正在 Ping 192.168.65.143 具有 32 字节的数据:来自 192.168.65.143 的回复: 字节=32 时间<1ms TTL=64来自 192.168.65.143 的回复: 字节=32 时间<1ms TTL=64来自 192.168.65.143 的回复: 字节=32 时间<1ms TTL=64来自 192.168.65.143 的回复: 字节=32 时间<1ms TTL=64192.168.65.143 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms
查看网卡是否连接
mii-tool | ethtool
1. 可以使用mii-tool命令查看[root@centos7 network-scripts]# mii-tool ens33ens33: negotiated 1000baseT-FD flow-control, link ok2. 也可以使用ethtool命令查看[root@centos7 network-scripts]# ethtool ens33 | tail -n 1 Link detected: yes
更改主机名
下列命令只支持centos7.x
hostnamectl set-hostname HOST
上列的命令在当前终端下并不会立即生效,需要重启!
在/etc/hostname文件中可以查看系统主机的hostname。
主机host的配置文件为/etc/hosts
,修改其内容只在本机生效!
若存在多个ip指向同一个域名,只有最后一行的ip生效!即后面设置的同域名的ip将覆盖前面的ip!
此外同一个ip可以指向多个域名,在hosts文件内可以写在一行内即
192.168.1.110 www.123.com www.qq.com www.baidu.com
修改hosts文件,指定2个ip指向同一个域名[root@centos7 network-scripts]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.25 www.baidu.com192.168.1.35 www.baidu.com~
上述配置之后只有后一个ip192.168.1.35
生效;同样的指向同一个域名的多个ip,只有最后一个ip生效
[root@centos7 network-scripts]# ping www.baidu.comPING www.a.shifen.com (192.168.1.35) 56(84) bytes of data.64 bytes from 192.168.1.35 (192.168.1.35): icmp_seq=1 ttl=128 time=29.6 ms....
/etc/resolv.conf
文件存放系统的DNS,该DNS由网卡的配置文件中的DNS列定义产生。
netfilter(6.x) / firewalld(7.x)
selinux的关闭
配置时必须关闭selinux,否则防火墙无法正常运行
- 临时关闭:
setenforce 0
- 永久关闭: 修改/etc/selinux/config文件 ->
SELINUX=disabled
- 查看:
getenforce
启动iptables服务
- 关闭7.x版本默认的firewalld服务
disable禁止开机启动,stop关闭服务[root@centos7 network-scripts]# systemctl disable firewalldRemoved symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.[root@centos7 network-scripts]# systemctl stop firewalld
- 安装iptables服务
[root@centos7 network-scripts]# yum install -y iptables-services
- 设置开机启动iptables,并立即启动iptables
[root@centos7 network-scripts]# systemctl enable iptablesCreated symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.[root@centos7 network-scripts]# systemctl start iptables
- 查看当前规则
[root@centos7 network-scripts]# iptables -nvLChain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 28 1848 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 ...
netfilter 5表5链
!centos6中只有4个表(没有security);7.x版本有5个表(及其使用的链),如下:
- filter(多用于过滤包)
- INPUT
- FORWARD
- OUTPUT
- nat(用于网络地址转换)
- PREROUTING
- OUTPUT
- POSTROUTING
- mangle(标记数据包)
- raw(不追踪某些数据包)
- security(用于MAC的网络规则)
相关的有5个链
- PREROUTING
- INPUT
- OUTPUT
- FORWARD
- POSTROUTING
数据经过本机 PREROUTING -> FORWARD -> POSTROUTING
数据不经过本机 PREROUTING -> INPUT -> OUTPUT -> POSTROUTING
工作中主要使用的是filter和nat表,后3个表使用不多
iptables详解
iptables语法
iptables默认规则配置文件 /etc/sysconfig/iptables
- 查看规则:
iptables -nvL
- 清空规则:
iptables -F
- 执行后默认的规则表并不会清空,需要执行
service iptables save
存操作
- 执行后默认的规则表并不会清空,需要执行
- 指定表(默认为filter):
iptables -t nat
- 清空计数器(清空规则记录的数据量):
iptables -Z
命令参数
- -A 在所选链的最后添加一或多条规则
- -I 在所选链的第一个规则前插入规则;加规则序号,在指定规则前插入
- -D 删除所选链中的规则(也可以是规则序号)
- -R 替换所选链中的规则
- -L 列出所选链中的所有规则
- -S 打印所选链的所有规则,默认打印所有链的规则
- -F 清空所选链的规则
- -p 指定规则的协议tcp/udp...
- -s 指定源地址
- -d 指定目标地址
- -j 指定规则的目标 DROP/REJECT/ACCEPT
- -i 指定网卡
- --sport/dport 指定源/目的端口
在INPUT链的最后追加一条规则
[root@localhost network-scripts]# iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
不指定目标ip,默认代表所有
# 在首行插入规则[root@localhost network-scripts]# iptables -I INPUT -s 1.1.1.1 -j DROP# 在末行添加规则[root@localhost network-scripts]# iptables -A INPUT -s 1.1.1.1 -j DROP# 删除某条规则(对应添加时的规则)[root@localhost network-scripts]# iptables -D INPUT -s 1.1.1.1 -j DROP
设置关于特定的网卡的规则
# -i指定网卡[root@localhost network-scripts]# iptables -I INPUT -s 192.168.1.0/24 -i ens33 -j ACCEPT
根据规则编号删除规则
[root@localhost network-scripts]# iptables -nvL --line-numberChain INPUT (policy ACCEPT 0 packets, 0 bytes)num pkts bytes target prot opt in out source destination 1 184 13824 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:225 6 468 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT 0 packets, 0 bytes)num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT 141 packets, 10976 bytes)num pkts bytes target prot opt in out source destination # 删除第一条[root@localhost network-scripts]# iptables -D INPUT 1
设置指定链的默认策略
# 默认INPUT的策略为ACCEPT[root@localhost network-scripts]# iptables -P INPUT DROP# 这里需要注意的是,一旦修改默认策略为DROP,你的ssh通信的数据包将被丢弃,无法远程连接,只能连物理机修改!所以最好不要乱修改,保持默认即可!