linux网络相关
查看网卡ip //安装包:yum install -y net-tools
ifconfig
-a:当网卡没有IP的时候不会显示打开网卡:
ifup ens33关闭网卡:
ifdown ens33关闭网卡后开启网卡(防止远程连接时关闭网卡后没法远程连接)
ifdown ens33 && ifup ens33设定一个虚拟网卡:
进入配置文件的目录:cd /etc/sysconfig/network-scripts/
复制网卡ens33配置文件:cp ifcfg-ens33 ifcfg-ens33\:0 //记得要用\脱义:号。
配置ifcfg-ens33:0配置文件:把IP改了,NAME和DEVICE都改为ens33:0,DNS和GATEWAY网关可以删除。
重启网卡:ifdown ens33 && ifup ens33查看网卡是否连接:
mii-tool ens33
link ok说明是连接的
有些人的可能不支持,可以使用命令:ethtool ens33
最后一行link显示yes说明是连接的
更改主机名为xie(自定义):
hostnamectl set-hostname xie
主机名的配置文件:/etc/hostnameDNS配置文件,网卡配置文件中的DNS的ip会在这DNS配置文件中。也可以临时编辑DNS配置文件中的DNS,不过重启了网卡,依然会被网卡配置文件里的dns配置所覆盖:
/etc/resolv.conf //临时编辑的格式:nameserver ip地址linux和Windows都有的配置文件,修改域名解析使本机访问到自己设置的本机的IP(只在本机生效)
/etc/hosts
//格式:123.456.789.456 www.qq123.com,中间空格分开。也可以后面接多个域名。一个IP后面可以跟多个域名,可以是几十个甚至上百个;每行只能有一个IP,也就是说一个域名不能对应多个IP;如果有多行中出现相同的域名(前面IP不一样),会按最后面出现的记录来解析。
linux防火墙:firewalld和netfilter
selinux临时关闭:
setenforce 0
selinux永久关闭,编辑配置文件:
vi /etc/selinux/config
重启系统生效。
查看防火墙状态的命令:
getenforce //显示 Enforcing就是打开,Permissive就是selinux虽然开启,但是不会真正去阻断,只会提醒。centos7之前使用netfilter防火墙
centos7开始使用firewalld防火墙
关闭firewalld开启netfilter方法:
停掉firewalled,不让它开机启动
systemctl disable firewalld
关闭firewalld:
systemctl stop firewalld
安装iptables包:
yum install -y iptables-services
安装完iptables会产生的服务:
systemctl enable iptables
开启iptables(实际是开启了netfilter,iptables只是工具):
systemctl start iptables
查看iptables的默认规则:
iptables -nvL
netfilter5表5链介绍
netfilter的五个表
filter 这个表主要用于过滤包的,是系统预设的表,这个表也是阿铭用的最多的。内建三个链INPUT、OUTPUT以及FORWARD。INPUT作用于进入本机的包;OUTPUT作用于本机送出的包;FORWARD作用于那些跟本机无关的包。
nat主要用处是网络地址转换,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。
mangle 这个表主要是用于给数据包打标记,然后根据标记去操作哪些包。
raw表可以实现不追踪某些数据包,默认系统的数据包都会被追踪,但追踪势必消耗一定的资源,所以可以用raw表来指定某些端口的包不被追踪。
security表在Centos6中是没有的,它用于强制访问控制(MAC)的网络规则。netfilter的五个链
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARDING:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外转发
POSTROUTING:发送到网卡接口之前iptables传输数据包的过程
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
iptables语法
查看iptables规则,-nvL 即查看该表的规则,其中-n表示不针对IP反解析主机名;-L表示列出的意思;而-v表示列出的信息更加详细。如果不加-t指定表,则默认是filter表:
iptables -nvL
规则保存在配置文件iptables中:
/etc/sysconfig/iptables
清空规则:
iptables -F
重新加载配置文件里的规则:
systemctl restart iptables.service
保存规则,重启系统之后都会加载配置文件里的规则,用这个命令保存之后重启系统后就会生效,如果不这样保存,那修改的规则仅仅保存在内存中,下次启动就不会生效:
service iptables save
-t指定表:
iptables -t nat
可以把计数器清零:
iptables -Z
不加-t默认是filter表,-A是增加一条规则,针对的链是INPUT链,-s指定来源IP,-p指定协议,–sport指定来源端口,-d目标的IP,–dport目标的端口,-j后面跟动作:DROP把数据扔掉/REJECT拒绝(DROP是看都不看数据包就扔掉,但是REJECT是看完数据包再拒绝,ACCEPT表示允许包)
iptables -A INPUT -s 192.168.188.1 -p tcp –sport 1234 -d 192.168.188.128 –dport 80 -j DROP
-I是插入规则插到最前面,-A是增加规则增加到最后面。最前面的规则会优先过滤(如匹配的都是80端口的,最前面的规则已经匹配并且把数据包DROP掉,那么最后面的规则就没得匹配了),-D删除规则:
iptables -I INPUT -p tcp –dport 80 -j DROP //不指定来源IP,但要指定协议和目标端口。
iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP
-i指定网卡:
iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
把规则的编号列出来,方便按编号删除规则:
iptables -nvL –line-numbers
删除指定的规则:
iptables -D INPUT 1
-P后面跟链名,策略内容或为DROP,ACCEPT,默认是ACCEPT。注意:如果在连接远程服务器,千万不要随便执行这个命令,因为一旦执行,远程连接就会被断开:
iptables -P OUTPUT DROP
扩展(selinux了解即可)
1. selinux教程 http://os.51cto.com/art/201209/355490.htm
2.selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK