马上就过年了! 口子还缺很大! 心都有点烦了!
没心没肺的日子, 我好怀念!
linux 系统网络管理啦
更改主机名
当装完系统后,默认主机名为localhost,使用hostname就可以知道你的linux的主机
名是什么:
[root@localhost ~]# hostname
localhost.localdomain
也可以用hostname去更改自己的主机名:
[root@localhost ~]# hostname kerwin
[root@localhost ~]# hostname
kerwin
上面的这个更改主机名,只是保存在内存中,下次重启之后还会变回来
要想永久生效那么需要更改:“/etc/sysconfig/network
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
设置DNS
DNS是把网址解析IP,配置文件是/etc/resolv.conf
[root@localhost ~]# cat /etc/resolv.conf
;genearated by /sbin/dhclient-script
search localdomain
nameserver 8.8.8.8
nameserver 202.96.209.133
上面那行”;"为开头的行,只是注释,没有实际意义
在linux下面有一个特殊的文件/etc/hosts也能解析域名。不过这是
需要手动在里面添加IP+域名这些内容,作用是临时解析某个域名
/etc/hosts 中,每一行作为一条记录,分成两部分,第一部分是IP.
第二部分是域名,需要注意的是:
1)一个IP后面可以跟多个域名,可以是几十个甚至上百个
2)每行只能有一个IP,也就是说一个域名不能对应多个IP
3)如果有多行中出现相同的域名(前面IP不一样),
会按最前面出现的记录来解析
Linux 的防火墙
1.selinux
为 Redhat/CentOS系统特有的安全机制,因特繁琐,故少用
一半都会关闭selinux,方法“SELINUX=disabled"默认为enforcing
保存该配置文件后,重启机器方可生效,临时关闭selinux命令
[root@localhost ~]# setenforce 0
可用
[root@localhost ~]# getenforce
Disabled
2.iptables
iptables 是linux上特有的防火墙机器
CentOS上是默认没有iptables规则的,使用时,先清除规则,再保存
[root@localhost ~]#
iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9221 6159K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
164 13776 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
166 9960 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
3 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
221 22523 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 6722 packets, 971K bytes)
pkts bytes target prot opt in out source destination
-nvL 就是查看规则,-F 是把当前规则清除,这个是临时的,
重启系统或者重启iptables服务后还会加载已经保存的规则
so需要使用/etc/init.d/iptables save 保存一下规则
1)iptables的三个表
filter 这个表主要是用于过滤包的,是系统预设的表,
内建三个链INPUT OUTPUT 和FORWARD。INPUT作用于进入
本金的包;OUTPUT作用于本机送出的包;FORWARD作用
于那些跟本机无关的包
nat 主要用处是网络地址转换,也有三个链。PREROUTIING链
的作用是在包刚刚到达防火墙时改变它的目的地址。OUTPUT
链改变本地产生的包的目的地址。POSTROUTING链在包就要离开
之前改变为源地址
mangle 主要给数据包打标记,然后根据标记去操作哪些包
(PS.这个包不怎么用)
2)iptables基本语法
A,查看规则以及清除规则
[root@localhost ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
-t 后面跟表明,-nvL即查看该表的规则,其中-n 表示不针对IP反解析主机名
-L表示列出的意思, -v 表显示的信息更加详细、如果不加-t,则打印filter
表的相关信息
[root@localhost ~]# iptables -nvL
Chain INPUT (policy ACCEPT 88 packets, 12572 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 74 packets, 11899 bytes)
pkts bytes target prot opt in out source destination
对于清除规则的命令中,也可用
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -Z
不加-t默认是针对表filter来操作,-F 表示把所有规则全部删除
-Z表示把包以及流量置零
12/4
B 增加/删除一条规则
[root@localhost ~]# iptables -A INPUT -s 192.168.1.158 -p tcp --sport 1234 -d 192.168.1.160 --dport 80 -j DROP
这是增加了一条规则,省略-t所以针对的filter表。-A 表示增加一条规则
另外还有-l表示插入一条规则,-D删除一条规则,后面的INPUT即链名称,
还可以使OUTPUT或者FORWORD;-s后跟源地址;-p协议(tcp,udp,icmp);
--sport/--dport 后跟源端口/目标端口;-d后跟目的IP(主要针对内网或则外网)
-j 后跟动作(DROP即把包丢掉,REJECT即包拒绝,ACCEPT即允许包)
eg.[root@localhost ~]# iptables -I OUTPUT -p tcp --dport 22 -d 10.0.1.14 -j DROP
这条规则表示,把发送到10.0.2.14端口的数据包处理掉
至于FORWORD链的应用几乎很少会用到
各个选项的作用:
-A/-D:增加一条规则
-I:插入一条规则,跟-A的效果一样;
-p:指定协议,可以是tcp,udp或者icmp
--dport:跟-p一起使用,指定目标端口
--sport:跟-p一起使用,指定源端口
-s:指定源IP(可以是一个ip段)
-d:指定目的IP(可以是一个IP段)
-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表拒绝包
-i :指定网卡 (不常用)
当命令规则较多的时候,想删除一条规则,却忘记了创建时的规则,可以这样
[root@localhost ~]# iptables -nvL --line-numbers
选择你要删除的某个规则的编码
iptables 还有一个选项经常用到,-P 表示预设策略:
[root@localhost ~]# iptables -P INPUT DROP
-P 后跟链名,策略内容或者为Drop 或者为ACCEPT,默认ACCEPT(不要连接远程
服务器输入这个命令,因为会断掉)
这个策略一旦设定后,只能使用iptables -P ACCEPT 才能恢复原始状态,不能-F
需求:只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,
关于icmp的包有一个常见的应用,
[root@localhost ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
--icmp-type 这个选项是跟-p icmp 一起使用的,后面跟指定类型
编号,8指的是能ping通其他的机器,而其他机器不能ping通
C。nat表的应用
对于iptables 的nat表就是有 路由器转换的功能。
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
第一个命令涉及到了内核参数相关的配置,目的是打开路由转发功能
第二命令时iptables对nat表做了一个IP转发的操作,-o后跟设备名称
表示出口的网卡,MASQUERADE表伪装
D.保存以及备份iptables规则
前面设定的防火墙规则只是保存在内存里,并没有保存到一个文档中
那么重启系统之后,设定就会消失,所以要保存一下
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
提示保存到的是/etc/sysconfig/iptables文件内,这就是iptables
配置文件
有时,需要把防火强的规则都清除 那么:iptables -F ,最好是把防火强关闭
备份防火强的命令
root@localhost ~]# sh /usr/local/sbin/iptables.sh
[root@localhost ~]# iptables-save > myipt.rule
[root@localhost ~]# cat myipt.rule
# Generated by iptables-save v1.4.7 on Sat Jun 1 18:14:03 2013
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [50:4528]
-A INPUT -s 192.168.137.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
COMMIT
# Completed on Sat Jun
执行一下刚才写的iptables脚本,使用iptables-save命令重定向到一个
文件里。要恢复这些规则可用:
iptables-restore < myipt.rule