重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果一个linux服务器有三个口接三个不同的网络,对应的网络信息是如下
创新互联公司主营虞城网站建设的网络公司,主营网站建设方案,重庆APP开发公司,虞城h5小程序开发搭建,虞城网站营销推广欢迎虞城等地区企业咨询
传统情况下,如果是为了从内向外访问获得更好的速度,让访问电信走电信,访问网通走网通,那么配置是网关只能够配置一个。
比如以电信为主的,那么网关就只设置电信的1.1.1.254,而针对网通和教育网设置不同的路由,路由下一跳指向网通和教育网对应的 网关。
如果这样做的目的只是实现内部访问外面,那么是没问题了,但是如果是为了让外面的用户能够正常访问到服务器上的服务就会出问题。比如电信用户会无法访问网通和教育网的ip,网通用户会无法访问电信和教育网的ip。而且只有设置了默认路由的那个网络能被跨网络访问,其它两个网络只能被本子网的设备访问。
要解决这个问题,思路就是由哪个网口进来的流量希望全部就由哪个回去。用lartc里面提到的方法就是来源的口不同,走不同的路由表。在默认的路由表基础上再建立三个路由表。
用 ip route show 可以看到默认有local,main,default三个路由表,这三个路由表的名称命名来自 /etc/iproute2/rt_tables ,这里先在这个配置文件里面添加三个不同的路由表表名,
之后建立这三个路由表的内容,因为这三个路由表的只是用来响应来自不同接口的,而不是用来相应从哪个接口出去的,所以只需要每个路由表里面建立默认网关即可。
之后再加上三条规则,使来自不同的口的走不同的路由表
至此无论是电信还是网通还是教育网用户,访问三个ip的任意一个地址都能够连通了。即便是服务器上本身的默认路由都没有设置,也能够让外面的用户正常访问。三个网络的IP都能被跨网络访问了。
命令汇总:
在 Linux 中,线程是由进程来实现的,可以认为线程就是一个轻量级的进程,因此,线程调度是按照进程调度的方式来进行的。这样设计,线程调度流程可以直接复用进程调度流程,没必要再设计一个进程内的线程调度器了。
在 Linux 中,进程调度器是基于进程的调度策略与调度优先级来决定调度哪个进程运行。
调度策略主要包括:
调度优先级的范围是 0~99,数值越大,表示优先级越高。
其中,SCHED_OTHER、SCHED_IDLE、SCHED_BACH 为非实时调度策略,其调度优先级为 0。而 SCHED_FIFO、SCHED_RR 是实时调度策略,其调度优先级范围为 1~99。
实时调度策略的进程总是比非实时调度策略的进程优先级高。
在 Linux 内部实现中,调度器会为每个可能的调度优先级维护一个可运行的进程列表,以最高优先级列表头部的进程作为下一次调度的进程,所有的调度都是抢占式的,如果一个具有更高调度优先级的进程转换为可运行状态,那么当前运行的进程将被强制进入其等待的队列中。
SCHED_OTHER
该调度策略是默认的 Linux 分时调度策略,该调度策略为非实时的,其调度优先级总是为 0。
对于该调度策略类型的进程,调度器是基于动态优先级来调度的。动态优先级跟属性 nice 有关,nice 的值会随着进程的运行时间而动态改变,以确保所有具有 SCHED_OTHER 策略的进程公平地得到调度。
在 Linux 中,nice 的值范围为-20 ~ +19,默认值为 0。nice 值越大,则优先级越低,因此相对较低 nice 值的进程可以获得更多的处理器时间。
通过命令 ps -el 查看系统中的进程列表,其中 NI 列就是进程对应的 nice 值。
使用 top 命令,看到的 NI 列也是进程的 nice 值。
调整 nice 值,可以通过 shell 命令 nice ,该命令可以按照指定的 nice 值运行 cmd ,命令的帮助信息为:
重新调整已运行进程的 nice 值,可通过 renice 命令实现,命令的帮助信息为:
另外,可以执行 top 命令,输入 r ,根据提示输入进程的 pid ,再输入 nice 数值,也可以调整进程的 nice 值。
SCHED_FIFO
该调度策略为先入先出调度策略,简单概括,就是一旦进程占用了 CPU,则一直运行,直到有更高优先级的任务抢占,或者进程自己放弃占用 CPU。
SCHED_RR
该调度策略为时间片轮转调度策略,该调度策略是基于 SCHED_FIFO 策略的演进,其在每个进程上增加一个时间片限制,当时间片使用完成后,调度器将该进程置于队列的尾端,放在尾端保证了所有具有相同调度优先级的进程的调度公平。
使用 top 命令,如果 PR 列的值为 RT ,则说明该进程采用的是实时调度策略,其调度策略为 SCHED_FIFO 或者 SCHED_RR,而对于非实时调度策略的进程,该列的值为 NI + 20 。
可以通过命令 ps -eo state,uid,pid,ppid,rtprio,time,comm 来查看进程对应的实时优先级,实时优先级位于 RTPRIO 列下,如果进程对应的列显示为 - ,说明该进程不是实时进程。
chrt 命令可以用来很简单地更改进程的调度策略与调度优先级。在 Linux 下查看 chrt 命令的帮助信息:
比如,获取某个进程的调度策略,使用如下命令:
在比如,设置某个进程的调度策略为 SCHED_FIFO,调度优先级为 70,使用如下命令:
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。在 Linux 上设置密码策略,分三个部分,具体是:
1、准备。安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。在Debin,Ubuntu或者Linux Mint使用命令:
sudo apt-get install libpam-cracklib 这个模块在CentOS,Fedora或者RHEL默认安装了。所以在这些系统上就没有必要安装了。如要强制执行密码策略,我们需要修改/etc/pam.d这个与身份验证相关的文件。这个文件会在修改后立即生效。
2、设置最小密码长度。寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“minlen=10”。这将强行设置密码的最小密码长度为10位,其中# of types多少个不同类型的字符在密码中使用。有四种符号类型(大写、小写、数字和符号)。所以如果使用所有四种类型的组合,并指定最小长度为10,所允许的简单密码部分将是6位。
在Debin,Ubuntu或者Linux Mint使用命令:
sudo vi /etc/pam.d/common-password
修改内容:
password requisite pam_cracklib.so retry=3 minlen=10 difok=3
在Fedora,CentOS或RHEL使用命令:
sudo vi /etc/pam.d/system-auth
3、设置密码复杂度。寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。
在Debin,Ubuntu或者Linux Mint使用命令:
sudo vi /etc/pam.d/common-password
修改内容:password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
一、SELinux三种模式简介
二、getenforce命令
功能:查看当前SELinux的运行模式
三、sestatus命令
功能:查看当前系统上面SELinux的策略,运行模式等信息
命令格式:
sestatus [-vb]
相关参数与选项:
-v:检查列于/etc/sestatus.conf内的文件御锦城的安全上下文
-b:将目前策略的规则布尔值列出,亦即某些规则是否要启动(0/1)之意
四、SELinux的配置文件(/etc/selinux/config)
SELINUX=enforcing:当前SELinux的模式
SELINUXTYPE=targeted:当前SELinux的策略
如果想要修改策略和模式,就更改这个文件里面的内容即可
五、SELinux模式的更改(setenforce命令)
SELinux模式的更改规则:
setenforce命令格式:
# 转换为Permissive宽容模式 setenforce 0
# 转换为Enforcing强制模式 setenforce 1
注意事项:setenforce无法设置SELinux为Disabled模式
六、restorecon -Rv 命令
介绍:
当你从Disabled切换为Enforcing模式时,会有一堆服务无法顺利启动,会跟你说/lib/xxx里面的数据没有权限读取,所以启动失败。原因:大多是重新写入SELinux类型时出错的缘故
解决办法:
切换为Permissive宽容模式,然后使用restorecon -Rv / 重新还原所有SELinux的类型,就能解决这个问题
1.准备 安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。 在Debin,Ubuntu或者Linux Mint使用命令:sudo apt-get install libpam-cracklib 这个模块在CentOS,Fedora或者RHEL默认安装了。所以在这些系统上就没有必要安装了。 如要强制执行密码策略,我们需要修改/etc/pam.d这个与身份验证相关的文件。这个文件会在修改后立即生效。 请注意,本教程中的密码规则只有在非root用户更改密码时强制执行。 2.避免重复使用旧密码 寻找同时包含“password”和"pam_unix.so"的行,然后再这行后面加上“remember=5”。这将防止5个最近使用过的密码被用来设置为新密码(通过将它们存放在/etc/security/opasswd文件中)。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password 修改内容:password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5 在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth 修改内容:password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5 3.设置最小密码长度 寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“minlen=10”。这将强行设置密码的最小密码长度为10位,其中# of types多少个不同类型的字符在密码中使用。有四种符号类型(大写、小写、数字和符号)。所以如果使用所有四种类型的组合,并指定最小长度为10,所允许的简单密码部分将是6位。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password 修改内容:password requisite pam_cracklib.so retry=3 minlen=10 difok=3 在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth 修改内容:password requisite pam_cracklib.so retry=3 difok=3 minlen=10 4.设置密码复杂度 寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password 修改内容:password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1 在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth 修改内容:password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1 5.设置密码的有效期 要设置当前密码的最大有效期,就修改/etc/login.defs文件的下列变量:sudo vi /etc/login.def 修改内容:PASS_MAX_DAYS 150 PASS_MIN_DAYS 0 PASS_WARN_AGE 7 这将迫使每一位用户每半年更改一次他们的密码,并且在密码过期之前七天发送密码过期还有几天到等等的警告信息给用户(到最后甚至在用户开机登录时强制用户更改密码,不然无法进入系统(个人在linux程序设计中看到的知识,非原作者观点))。如果你想基于不同的用户使用密码期限功能,那就使用chage命令。要查看针对特别用户的密码过期策略使用的命令如下:sudo chage -l xmodulo 注意:xmodule是原作者在linux系统中使用的用户名。 显示如下:Last password change : Dec 30, 2013 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 默认设置中,用户的密码是不会过期的。 为用户的xmodulo更改有限期限的命令如下:$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo 以上命令将密码设置为在2014年6月30日过期。并且,密码更改时间间隔的最大/最小数量分别为5和90。在一个密码过期后,这个账号将被锁30天。在密码过期前14天,警告信息就会发送到对应的账户。
使用下面命令,查看系统是否含有pam_tally2.so模块,如果没有就需要使用pam_tally.so模块,两个模块的使用方法不太一样,需要区分开来。
编辑系统/etc/pam.d/system-auth 文件,一定要在pam_env.so后面添加如下策略参数:
上面只是限制了从终端su登陆,如果想限制ssh远程的话,要改的是/etc/pam.d/sshd这个文件,添加的内容跟上面一样!
编辑系统/etc/pam.d/sshd文件,注意添加地点在#%PAM-1.0下一行,即第二行添加内容
ssh锁定用户后查看:
编辑系统 /etc/pam.d/login 文件,注意添加地点在#%PAM-1.0的下面,即第二行,添加内容
tty登录锁定后查看:
编辑 /etc/pam.d/remote文件,注意添加地点在pam_env.so后面,参数和ssh一致