邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

私房菜服务器架设篇之selinux学习笔记
1.selinux的启动、关闭与查看
目前支持三种模式
enforcing //强制模式,运行中
permissive //宽容模式,运作中,debug模式
disabled // 关闭

显示目前selinux的模式
getenforce 
修改配置文件
vim /etc/selinux/config
实现selinux模式在enforcing与permissive之间切换
setenforce [0|1] //0转换为宽容模式1转换为强制模式



2.selinux type的修改
范例:将/etc/hosts 复制到root用户主目录,并查看相关的selinux的变化
cp /etc/hosts /root
ls -dZ /etc/hosts /root/hosts /root
范例:将/root/hosts 移动到/tmp下,并查看相关selinux类型文化
mv /root/hosts /tmp
ls -dZ /tmp /tmp/hosts

说明:单纯的复制,selinux的type字段会继承自目标目录,移动的话类型也会被移动过去
2.1 chcon
chcon [-R] [-t type] [-u user] [-r role] 文件
chcon [-R] --reference=范例文件 文件
选项与参数:
-R:遍历子目录也同时修改
-t:后面接安全性环境的类型字段,如httpd_sys_content_t
-u:后面接身份识别,如system_u
-r:后面接角色,例如system_r
--reference=范例文件,拿某个文件当范例来修改后续接的文件类型
范例:将刚刚的/tmp/hosts类型改为etc_t的类型
chcon -t net_conf_t /tmp/hosts
范例:以/var/spool/mail为依据,将/tmp/hosts修改成该类型
chcon --reference=/var/spool/mail /tmp/hosts
2.2 restorecon
restorecon [-Rv] 文件或目录
选项与参数:
-R:连同子目录一起修改
-v:将过程显示在屏幕上
范例
restorecon -Rv /root
2.3 semanage
系统记录在 /etc/selinux/targeted/contexts
semanage {login|user|port|interface|fcontext|translation} -l
semanage fcontext -{a|d|m} [-frst] file_spec
选项与参数:
fcontext:主要用在安全性环境方便,-l为查询的意思
-a:增加,可以增加一些目录的默认安全性环境类型设置
-m:修改
-d:删除
范例:查询一下/var/www的默认安全性环境设置为何
yum install policycoreutils-python
semanage fcontext -l | grep '/var/www'
范例:利用semanage设置/srv/action目录的默认安全性环境为public_content_t
mkdir /srv/action
ll -dZ /srv/action
semanage fcontext -l |grep '/srv'
semanage fcontext -a -t public_content_t "/srv/action(/.*)?"
semanage fcontext -l |grep '/srv/action'
cat /etc/selinux/targeted/contexts/files/file_contexts/local
restorecon -Rv /srv/action //尝试恢复默认值
ll -dZ /srv/action

3.selinux策略内的规则布尔值修订
3.1策略查询
yum install setools-console
seinfo [-Atrub]
选项与参数:
-A:列出selinux的状态,规则布尔值、身份识别、角色、类别等所有消息
-t:列出selinux的所有类别(type)种类
-r:列出selinux的所有角色(role)种类
-u:列出selinux的所有身份识别(user)种类
-b:列出所有规则的种类(布尔值)
范例一:列出selinux在此策略下的统计状态
seinfo
范例二:列出与httpd有关的规则(booleans)有哪些
seinfo -b | grep httpd

如果想要知道详细规则
sesearch [--all] [-s 主体类别] [-t 目标类别] [-b 布尔值]
选项与参数:
--all:列出该类别或布尔值的所有相关信息
-t:后面还要接类别,例如 -t httpd_t
-b:后面要接布尔值的规则,例如-b httpd_enable_ftp_server

范例一:找出目标文件资源类别为httpd_sys_content_t的相关信息
sesearch --all -t httpd_sys_content_t
范例二:查看httpd_enable_homedirs 这个布尔值规范了什么
sesearch -b httpd_enable_homedirs --all

3.2布尔值的查询与修改
getsebool [-a] [布尔值条款]
选项与参数:
-a:列出目前系统上面的所有布尔值条款设置为开启或关闭值
范例一查询本系统所有的布尔值设置情况
getsebool -a

setsebool [-P] 布尔值=[0|1]
选项与参数:
-P:直接将设置值写入配置文件,该设置数据未来会生效的
范例一:查询httpd_enable_homedirs 是否为on,如果不为on,则启动它
getsebool httpd_enable_homedirs
setsebool -P httpd_enable_homedirs=1
getsebool httpd_enable_homedirs

4.selinux日志文件记录所需的服务
4.1 setroubleshoot 将错误信息写入/var/log/messages/
setroubleshoot服务启动,centos6.x将 auditd与setroubleshoot整合在了auditd
yum install setroubleshoot setroubleshoot-server
/etc/init.d/auditd restart 
cat /var/log/messages/ |grep setroubleshoot

4.2 用email或在命令列上面直接提供setroubleshoot
vim /etc/setroubleshoot/setroubleshoot.cfg
修改
recipients = /var/lib/setroubleshoot/email_alert_recipients //大约81行
console = true //大约147行

vim /var/lib/setroubleshoot/email_alert_recipients
加入
root@localhost
your@email.address

/etc/init.d/auditd restart

npam命令详解

npam命令详解

npam [扫描类型] [扫描参数] [hosts地址与范围]

选项与参数:
[扫描类型]
-sT:扫描TCP数据包已建立的连接 conneted
-sS:扫描TCP数据包带有SYN标卷的数据
-sP:以ping的方式进行扫描
-sU:以UDP的数据格式进行扫描
-sO:以IP的协议进行主机的扫描
[扫描参数]
-pT:使用TCP里头的ping方式进行扫描,可以获知目前有几台计算机存在
-pI:使用实际的ping(带有IMCP数据包的)来进行扫描
-p:这个是port range,例如 1024-,80-1023,30000-60000等的使用方式[hosts地址与范围]
192.168.1.100
192.168.1.0/24
192.168.*.*
192.168.1.0-50,60-100,103,200

范例一:使用默认参数扫描本机所启动的port(只会扫描TCP)
yum install nmap
nmap localhost

范例二:同时扫描本机的TCP/UDP端口
nmap -sTU localhost

范例三:通过IMCP数据包的检测,分析局域网内有几台主机是启动的
nmap -sP 192.168.1.0/24
如果想要将各个主机的启动port做检测
nmap 192.168.1.0/24


nginx访问ci框架出现Access denied.
nginx访问ci框架出现Access denied.

nginx访问ci框架出现Access denied.
Lepus(天兔)web管理台nginx重写

server {
        listen       80;
        server_name  lepus.example.com;
        client_max_body_size  10m;
        index index.html index.htm index.php;
        root   /work/www/lepus;

        fastcgi_intercept_errors        on;

        location / {
            root   /work/www/lepus;
            index  index.html index.htm index.php;
            #rewrite规则如下:
            rewrite  ^(.*)$  /index.php?s=$1  last;
        }


       location ~ ^(.+\.php)(.*)$ {
            root  /work/www/lepus;
            fastcgi_index        index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param        SCRIPT_FILENAME        $document_root$fastcgi_script_name;
            fastcgi_param        PATH_INFO                $fastcgi_path_info;
            fastcgi_param        PATH_TRANSLATED        $document_root$fastcgi_path_info;
            #注意:去临时文件夹内找到你的php-cgi,也可能php-cgi.sock不是这么个名字。
            fastcgi_pass unix:/dev/shm/php-cgi.sock;
            include        fastcgi_params;

        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires 30d;
        }

        location ~ .*\.(js|css)?$ {
            expires 1h;
        }


}


修改php.ini配置文件
cgi.fix_pathinfo=1
linux ip命令详解

ip命令详解

1.关于接口设备的相关设置 ip link ,与OSI七层协议的第二层数据链路层有关

ip [-s] link show //单纯的查看该设备的相关信息
ip link set [device] [动作与参数]
选项与参数
show:仅显示出这个设备的相关属性,-s会显示更多统计数据
set:可以设置项目,device指的是eth0、eth1等设备名称
动作与参数,如下
up|down:启动(up)或关闭(down)某个接口,其他参数默认使用的以太网
address:如果这个设备可以更改mac的话,用这个参数修改
name:给予这个设备一个特殊的名字
mtu:就是最大传输单元

范例一 显示本机所有接口的信息
ip link show
ip -s link show eth0

范例二 启动关闭与配置设备的相关信息
ip link set eth0 up //启动eth0这个设备
ip link set eth0 down //关闭eth0这个设备
ip link set eth0 mtu 1000 //更改mtu的值,达到1000 bytes

范例三 修改网卡的名称、mac等参数
ip link set eth0 down
ip link set eth0 name action
ip link show
ip link set eth0 address aa:aa:aa:aa:aa:aa


2.关于额外ip的相关设定 ip address,与OSI七层协议的第三层网络层有关
ip address show //查看ip参数
ip address [add|del] [IP参数] [dev 设备名] [相关参数]
选项参数
show:仅显示接口的ip信息
add|del 进行相关参数的增加(add)或删除(del)设置,主要有
IP参数:主要就是网络的设置,例如192.168.100.100/24之类的设置
dev:这个是ip参数所要设置的接口,例如 eth0 eth1等
broadcast:广播地址
label:设备的别名
scope:下面是这个选项的参数
global:允许所有来源的连接
site:仅支持IPV6,仅允许本主机的连接
link:仅允许本设备自我连接
host:仅允许本主机内部连接

范例一 显示出所有接口的IP参数
ip address show

范例二 添加一个接口,名称加设备eth0:action
ip address add 192.168.50.50/24 broadcast + dev eth0 label eth0:action

范例三 删除刚才的接口
ip address del 192.168.50.50/24 dev eth0


3.关于路由的相关设定 ip route
ip route show //单纯的显示出路由的设置
ip route [add|del] [IP或网络号] [via gateway] [dev 设备]
选项与参数
show:单纯的显示出路由表,也可以使用list
add|del:添加或删除路由
IP或网络:可使用192.168.50.50/24之类的网络或者单纯的IP地址
via:从哪个gateway出去,不一定需要
dev:由那个设备出去
mtu:可以额外的设置MTU的数值

范例一 显示出当前的路由信息
ip route show
范例二 添加路由,主要是本机可沟通的网络
ip route add 192.168.5.0/24 dev eth0
范例三 增加可以通过外部的路由,需通过router
ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0
范例四 添加默认路由
ip route add default via 192.168.1.254 dev eth0
范例五 删除路由
ip route del 192.168.10.0/24
ip route del 192.168.5.0/24


linux route命令详解

route命令详解

route [-nee]
route add [-net][-host] [网络或主机] netmask [mask] [gw|dev]
route del [-net][-host] [网络或主机] netmask [mask] [gw|dev]

查看的参数
-n:不要使用通信协议或主机名,直接使用IP或port number
-ee:显示更详细的信息
增加add与删除del路由的相关参数
-net:表示后面接的路由为一个网络
-host:表示后面接的为连接到单部主机的路由
netmask:与网络相关,可以设置netmask决定网络的大小
gw:gateway的简写,后面接的是ip的数值,与dev不同
dev:如果只是要指定由那一块网卡连接出去,则使用这个设置,后面接eth0等

范例1:单纯的查看路由状态
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.57.204.0    0.0.0.0         255.255.252.0   U     0      0        0 eth1
10.51.104.0     0.0.0.0         255.255.248.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.16.0.0      10.51.111.247   255.240.0.0     UG    0      0        0 eth0
100.64.0.0      10.51.111.247   255.192.0.0     UG    0      0        0 eth0
10.0.0.0        10.51.111.247   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         123.57.207.247  0.0.0.0         UG    0      0        0 eth1

route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.57.204.0    *               255.255.252.0   U     0      0        0 eth1
10.51.104.0     *               255.255.248.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
172.16.0.0      10.51.111.247   255.240.0.0     UG    0      0        0 eth0
100.64.0.0      10.51.111.247   255.192.0.0     UG    0      0        0 eth0
10.0.0.0        10.51.111.247   255.0.0.0       UG    0      0        0 eth0
default         123.57.207.247  0.0.0.0         UG    0      0        0 eth1


route -n和route输出结果不同,-n参数会显示出ip,而只使用route,显示的是"主机名",解析会有些慢,default=0.0.0.0/0.0.0.0

Destination、Genmask:这两个参数分别是network与netmask,
Gateway:该网络是通过那个gateway连接出去的,如果显示0.0.0.0表示该路由是直接由本级传送,也就是可以通过局域网的mac直接发送,如果显示ip的话,表示该路由需要经过路由器网关的帮忙才能够发送出去。
Flags:共有多个标志,代表的意义如下
U(route is up):该路由是启动的
H(target is a hot):目标是一台主机(ip)而非网络
G(use gateway):需要通过外部的主机来传递数据包
R(reinstate route for dynamic routing):使用动态路由时,恢复路由信息的标志
D(dynamically installed by daemon or redirect):动态路由
M(modified from routing daemon or redirect):
!(reject route):这个路由将不会被接受(用来阻止不安全的网络)

路由排列顺序,依序由小网络(Class C)逐渐到大网络,最后则是默认路由


范例二 路由的增加与删除
route del -net 169.254.0.0 netmask 255.255.0.0 dev eht0
删除168.254.0.0这个网络,删除的时候信息都要写入,netmask,dev等参数

route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
增加一条路由,这个路由的设置必须要能够与你的网络互通

route add default gw 192.168.1.250 
增加默认路由

一般一个新的主机环境
ifconfig eht0 192.168.1.100;route add default gw 192.1687.1.254


私房菜服务器架设篇之连接internet读书笔记

1.观察内核所捕捉到的网卡信息
dmesg |grep -in eth

查看相关的设备芯片数据
lspci |grep -i ethernet

2.观察网卡的模块

lsmod |grep 1000

modinfo e1000

3.编译网卡驱动程序

a.下载驱动程序
b.解压与编译
tar -zxvf e1000.tar.gz -C /usr/local/src
cd /usr/local/src/e1000/src
make install
c.模块的测试与处理
1.先删除已经加载在内存中的旧模块
rmmod e1000 
2.加载新模块
modprobe e1000
modinfo e1000
d.设置开机启动网卡模块
vim /etc/modprobe.d/ether.conf
alias eth0 e1000
alias eth1 e1000
sync;reboot

e.尝试配置ip
ifconfig eth0 192.168.1.1000

4.Linux网络相关配置文件
IP,Netmask,DHCP,Gateway等
/etc/sysconfig/network-scripts/ifcfg-eth0
主机名
/etc/sysconfig/network
DNS IP
/etc/resolv.conf
私有IP对应的主机名
/etc/hosts
其他
/etc/services  //这个文件记录构建在TCP/IP上面的各种协议,包括HTTP、FTP、SSH、Telnet等服务所定义的port number
/etc/protocols //这个文件是定义在IP数据包协议的相关数据,包括ICMP/TCP/UDP的数据包协议的定义等。
启动命令
/etc/init.d/network restart
ifup eth0(ifdown eth0) //关闭或者启动某个网络接口


composer安装
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php

php -r "unlink('composer-setup.php');"

加入局部命令
php composer-setup.php --install-dir=bin --filename=composer
加入全局命令(常用)
mv composer.phar /usr/local/bin/composer

brew link openssl
brew unlink openssl --force  && brew link openssl --force

优惠券
最新微语