9月12日 安全和加密 3

1、SSH端口转发

  • 远程端口转发
无标题.png

实验过程
准备三个主机,并检查三个主机的防火墙是否关闭,selinux是否禁用,然后将邮件服务器的主机的配置文件更改为下图所示
打开邮件服务器的配置文件/etc/postfix/main.cf

QQ截图20170912211504.png
在邮件服务器上拒绝来自107机器的连接,模拟现实中的防火墙
[root@centos6 ~]#iptables -A INPUT -s 172.18.21.107 -j REJECT
[root@centos6 app]#ssh -R 9527:172.18.21.106:25 -Nf 172.18.21.107
[root@centos6 app]#ss -nt  ---发现ssh客户端已经连接到远程的ssh服务器
State       Recv-Q Send-Q      Local Address:Port        Peer Address:Port 
ESTAB       0      0             172.18.21.6:58720      172.18.21.107:22    
ESTAB       0      64            172.18.21.6:22         172.18.252.32:57431
[root@centos7 app]#ss -nt  ---发现ssh客户端和服务器已经建立好隧
道
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
ESTAB       0      52     172.18.21.107:22                 172.18.252.32:56505              
ESTAB       0      0      172.18.21.107:22                 172.18.21.6:58720
[root@centos7 app]#telnet 127.0.0.1 9527  ---连接本机的9527端口,就可以和远程的邮件服务器相连
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 centos6.magedu.com ESMTP Postfix
[root@centos6 ~]#ss -nt  ---发现是中间的ssh客户端连接到了邮件服务器
State       Recv-Q Send-Q      Local Address:Port        Peer Address:Port 
ESTAB       0      0           172.18.21.106:25           172.18.21.6:48522 
ESTAB       0      64          172.18.21.106:22         172.18.252.32:56112 

可以给邮件服务器发一封邮件如下图

QQ截图20170912214335.png

在邮件服务器切换到zhang用户,然后输入mail就可以看到邮件了。

  • 动态端口转发
无标题1.png

实验
在c机器上搭建一个http服务,并且防火墙拒绝a去访问

在A上执行如下命令
[root@centos7 app]#ssh -D 1080 172.18.21.6  ----172.18.21.6为B
的ip地址,1080端口是在A上打开的
Last login: Tue Sep 12 19:58:26 2017 from 172.18.252.32

然后在a的图形界面上对filefox(火狐浏览器)进行如下图设置

QQ截图20170912220702.png
QQ截图20170912220719.png
QQ截图20170912220743.png
QQ截图20170912220802.png

这样就可以穿过防火墙去连接C了,也可以在字符界面下执行如下命令去访问C

[root@centos7 app]#ssh -D 1080 172.18.21.6 -Nf
[root@centos7 app]#ss -nt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
ESTAB       0      52     172.18.21.107:22                 172.18.252.32:56505              
ESTAB       0      0      172.18.21.107:54478              172.18.21.6:22                 
ESTAB       0      0      172.18.21.107:22                 172.18.21.6:58720              
[root@centos7 app]#curl --socks5 127.0.0.1:1080 http://172.18.21.106
<h1>welcome to haerbing </h1>

当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问请求被转发到sshserver上,由sshserver替之访问internet。

2、ssh服务器的配置文件

[root@centos7 app]#cd /etc/ssh
[root@centos7 ssh]#ls  ---这个目录下存放的是服务器各种算法的公
钥和私钥,以及客户端和服务器端的配置文件,公钥和私钥用于连接
时,客户端对服务器端进行身份验证,连接时输入yes,客户端会得到
服务器端的公钥,保存到当前用户的家目录.ssh/known_hosts
文件中,下次连接时先用公钥加密数据传给服务器,如果服务器能够
解开,证明是想要连接的服务器
moduli       ssh_host_ecdsa_key      ssh_host_ed25519_key.pub
ssh_config   ssh_host_ecdsa_key.pub  ssh_host_rsa_key
sshd_config  ssh_host_ed25519_key    ssh_host_rsa_key.pub

ssh服务器端的配置文件为/etc/ssh/sshd_config
Port
为了避免被攻击建议把端口号改掉,默认是22端口
ListenAddress ip
本机的哪个ip地址允许监听22端口,建议这一项改一下。不要所有的地址
LoginGraceTime 2m
连接时两分钟一直不输入密码就退出
PermitRootLogin yes
允许root账号直接连接,建议改为no,改为no后只有普通用户可以连接,但可以su切换为root
StrictModes yes
检查文件的各种属性,权限等
MaxAuthTries 6
如果密码输错3次就退出,是6的一半
MaxSessions 10 同一个连接最大会话
比如用xshell连接后,用复制的方式打开十个终端,就不能再打开了。
PubkeyAuthentication yes
允许基于key验证
PermitEmptyPasswords no
允许空口令验证
PasswordAuthentication yes
基于密码验证,如果关掉只能基于key的验证
GatewayPorts no
启用网关,启用之后就相当于自己是网关,跟自己同一个网段的主机都可以连到本主机,也可以通过本主机去连接到外面的网络
ClientAliveInterval(单位:秒)
连上去之后什么也不干,多长时间断开
ClientAliveCountMax(默认3)
探测次数。连上什么也不干,次数乘以上面的时间,才是真正断开的时间。
UseDNS yes
启用DNS。建议改为no,提高连接速度,不然会把地址方向解析,但由于没有配置dns,解析半天解析不出来才让连接
GSSAPIAuthentication yes 提高速度可改为no
GSSAPI认证,建议改为no,提高连接速度
MaxStartups未认证连接最大值,默认值10
用户个数到达10个就开始拒绝30%,按比例拒绝,到达60个就全拒绝,控制用户连接,最大只能连接60个用户
Banner /path/file
连接时候的提示信息,可以后面跟一个文件,然后编辑这个文件中的内容,就可做为连接提示信息
限制用户登录的办法
AllowUsers user1 user2 user3 --表示允许远程主机以本机的哪个用户的身份登录本主机
DenyUsers ---表示不允许远程主机用本机的哪个用户的身份登录本主机
AllowGroups ---表示允许远程主机以本机哪个组里的用户的身份登录本主机
DenyGroups
具体的解释可以查看帮助man /etc/ssh/sshd_config

135 #Match User anoncvs
136 #       X11Forwarding no
137 #       AllowTcpForwarding no
138 #       ForceCommand cvs server
139 AllowUsers zhang     ---在配置文件的最后加上一行就可以了,
表示只允许远程主机以zhang的身份登录本主机,所以远程主机在连
接的时候要知道zhang的密码才能连接到本主机

-ssh服务的最佳实践
禁止使用默认端口
禁止使用protocol version 1
限制可登录用户
设定空闲会话超时时长
利用防火墙设置ssh访问策略
仅监听特定的IP地址
基于口令认证时,使用强密码策略
tr-dc A-Za-z0-9_ < /dev/urandom| head -c 30| xargs
使用基于密钥的认证
禁止使用空密码
禁止root用户直接登录
限制ssh的访问频度和并发在线数
做好日志,经常分析
ssh的日志文件是/var/log/secure,每一次连接日志文件都会有记录。

3、编译安装dropbear示例

ssh协议的另一个实现:dropbear

1、查看是否安装开发包组,如果没有安装就安装
2、解压缩dropbear-2017.75.tar.bz2文件
3、进入dropbear-2017.75
4、cat README  cat INSTALL 查看一下服务的信息和安装信息
5、 ./configure --help  查看一下如何执行这个脚本
6、 ./configure --prefix=/app  执行configure脚本
7、 yum install zlib-devel  ---执行过程报错,需要安装这个包文件
8 、./configure --prefix=/app ---继续执行configure脚本
9、make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
10、 make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install
到此安装过程就结束了,下面就是安装私钥和验证服务
11、cd /app/bin  ./dropbearkey -t rsa -f dropbear_rsa_host_key---安
装私钥和公钥,这个和sshd服务一样,在/etc/ssh/目录一下也有公钥
和私钥。
12、cd /app/sbin  ./dropbear -E -p 2222  ---开启这个服务,并指定
端口为2222,-E选项是执行的时候如果报错会在屏幕上显示
13、发现出错,Failed loading /etc/dropbear/dropbear_rsa_host_key   ---找不到钥匙
14、 mkdir /etc/dropbear    ---创建一个目录
 ln -s /app/bin/dropbear_rsa_host_key /etc/dropbear/dropbear_rsa_host_key   ---创建一个软连接指向指向
存放钥匙的文件
15、./dropbear -E -p 2222   ---再次执行就可以了,在远程用ssh 172.18.21.107 -p 2222就可以连接到本主机了
16、cd/app bin/   ./dbclient 172.18.21.106   ----验证一下客户端的命
令,发现也可以连接到远程主机

4、AIDE

•AIDE(Adevanced Intrusion Detection Environment)
(高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
•AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号,也就是哈希运算,用来判断文件的内容是否被更改。
•这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录。
示例

[root@centos7 app]#rpm -q aide
package aide is not installed
[root@centos7 app]#yum install aide
[root@centos7 app]#rpm -ql aide   ---查看一下这个软件包都生成了
哪些文件
/etc/aide.conf    ---配置文件
/usr/sbin/aide     ---主程序文件
/var/lib/aide     ----数据库文件
/var/log/aide    ---日志文件
[root@centos7 app]#cp /etc/fstab f1
[root@centos7 app]#cp /etc/fstab f2
[root@centos7 app]#cp /etc/fstab f3
[root@centos7 app]#ls  ---复制三个文件,下步实验时只监控f1和f2文件,f3文件不监控
f1  f2  f3
[root@centos7 app]#vim /etc/aide.conf   ---进入这个文件会发现有很
多默认的设置,这里为了实验方便,把默认的都删除了,自己写了一
个设置,指定监控/app目录的mon这些特性,但不监控f3文件
mon = p+u+g+sha512+m+s+b
/app mon
!/app/f3
[root@centos7 app]#aide --help   ---查看一下用法
[root@centos7 app]#aide -i    ---初始化数据库,也就是生成数据库
[root@centos7 app]#cd /var/lib/aide/
[root@centos7 aide]#ls  ---发现数据库文件已经生成
aide.db.new.gz
[root@centos7 aide]#mv aide.db.new.gz aide.db.gz  ---要把数据库文件名改成aide.db.gz,才能使用
[root@centos7 aide]#aide -C  ---检查文件是否监控的文件是否发生
变化和数据库进行对比

AIDE, version 0.15.1

### All files match AIDE database. Looks okay!
[root@centos7 app]#chown zhang f1
[root@centos7 app]#echo 1 > f2
[root@centos7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 11:13:19

Summary:
  Total number of files:    4
  Added files:          0
  Removed files:        0
  Changed files:        2


---------------------------------------------------
Changed files:
---------------------------------------------------

changed: /app/f1
changed: /app/f2

---------------------------------------------------
Detailed information about changes:
---------------------------------------------------


File: /app/f1
 Uid      : 0                                , 1000

File: /app/f2
 Size     : 595                              , 2
 Mtime    : 2017-09-13 10:55:20              , 2017-09-13 11:13:16
 SHA512   : spFcC7zJqC72A03MBygd2sAHLu6W82le , Ortmd680rFfAylgo/ZT52IbCbOWajOYO
[root@centos7 app]#aide -u  --更新数据库
[root@centos7 app]#cd /var/lib/aide/
[root@centos7 aide]#ls    ---发现又新生成了一个数据库文件,把原
来的删除,把新生成的文件改名后就可以使用了
aide.db.gz  aide.db.new.gz
对于没有监控的f3文件,确检查不出来。

aide是检查文件完整性的一个很好的工具,对于那些不改动的文件或目录都可以用aide去监控,比如/usr/bin和/usr/sbin下的二进制程序

5、sudo 授权指定用户在指定主机上运行某些命令

1、 简介
su切换身份:su–l username –c ‘command‘ 切换到某个用户执行命令再切换回原来用户
sudo
•来自sudo包
•man 5 sudoers
•sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用sudo,会提示联系管理员
•sudo可以提供日志,记录每个用户使用sudo操作
•sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机
•sudo使用时间戳文件来完成类似“检票”的系统,默认存活期为5分钟的“入场券”,也就是过五分钟再执行sudo,授权某个用户执行哪个命令的的时候又要输密码验证,5分钟之内如果输过一次就不需要再输入了。
•通过visudo命令编辑配置文件,具有语法检查功能,但默认是用vi打开的,没有颜色,可以使用export EDITOR=vim来让其使用vim编辑。如果要长期有效保存到/etc/profile.d目录下的一个文件中。
visudo–c 检查语法
2、配置文件
配置文件:/etc/sudoers, /etc/sudoers.d/,可以把设置放到/etc/sudoers.d/目录下,自己创建一个文件,格式和/etc/sudoers的相同就可以,和/etc/crontab用法类似。
时间戳文件:/var/db/sudo
日志文件:/var/log/secure
配置文件支持使用通配符glob:

?:任意单一字符
*:匹配任意长度字符
[wxc]:匹配其中一个字符
[!wxc]:除了这三个字符的其它字符
\x : 转义
[[alpha]] :字母示例:/bin/ls [[alpha]]*

3、授权规则格式
用户 登入主机=(代表用户) 命令
示例:
wang ALL=(ALL) ALL 表示授权wang用户在所有主机,代表所有人可以执行任何操作
格式说明:
user: 运行命令者的身份
host: 通过哪些主机
(runas):以哪个用户的身份
command: 运行哪些命令
4、别名

Users和runas:
username  ----wang zhang root
#uid  ---0uid表示root用户
%group_name
%#gid   ---%1000gid表示gid为1000的用户
user_alias|runas_alias   ---别名
host:
ip或hostname
network(/netmask)
host_alias
command:
command name
directory   ---只能指执行特定文件夹下的所有程序
sudoedit  ---授权用户去更改sudo策略,也就是可以改sudo的配置文件,用户在用的时候执行的命令是sudoedit /etc/sudoers或者sudoedit /etc/sudoers.d/test
Cmnd_Alias
别名有四种类型:User_Alias, Runas_Alias, Host_Alias ,Cmnd_Alias
别名格式:[A-Z]([A-Z][0-9]_)*  ---必须是大写字母开头,后面是大写字母、数字或者下划线
别名定义:
Alias_Type NAME1 = item1, item2, item3 : NAME2 = item4, item5
示例1
student ALL=(root) /sbin/pidof,/sbin/ifconfig
%wheel ALL=(ALL) NOPASSWD: ALL   ---收钱wheel组里的用户能够代表任何人在不输入口令的前提下执行所有操作
示例2
User_Alias NETADMIN= netuser1,netuser2
Cmnd_Alias NETCMD = /usr/sbin/ip
NETADMIN ALL=(root)NETCMD
示例3
User_Alias SYSADER=wang,mage,%admins
User_Alias DISKADER=tom
Host_Alias SERS=www.magedu.com,172.16.0.0/24
Runas_Alias OP=root
Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod
Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk
SYSADER SERS= SYDCMD,DSKCMD  主机名后面=没有写表示代表所有人
DISKADER ALL=(OP) DSKCMD
示例4
User_Alias ADMINUSER = adminuser1,adminuser2
Cmnd_Alias ADMINCMD = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd[a-zA-Z]*,!/usr/bin/passwdroot
ADMINUSER ALL=(root) NOPASSWD:ADMINCMD,PASSWD:/usr/sbin/userdel  ---表示执行前者操作时不用输入口令,执行后者操作时要输入口令
示例5
Defaults:wang runas_default=tom  ---表示不写-u代替谁时,网用户默认代替的是tom用户执行什么操作
wang ALL=(tom,jerry) ALL    ---授权wang用户可以代替两个人执行所有操作,但不写-u时默认代替的是tom
示例6
wang 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd
示例7
wang ALL=(ALL)  /bin/cat /var/log/messages*
这种写法有个问题,就是wang用户可以用sudo cat /var/log/messages /etc/shadow,为了出现这种情况。可以写成如下格式
wang ALL=(ALL) /bin/cat /var/log/messages*,!/bin/cat  /var/log/messages *

5、sudo命令
ls -l /usr/bin/sudo
sudo–i–u wang切换身份
sudo[-u user] COMMAND
-V 显示版本信息等配置信息
-u user 默认为root
-l,ll列出用户在主机上可用的和被禁止的命令
-v 再延长密码有效期限5分钟,更新时间戳
-k 清除时间戳(1970-01-01),下次需要重新输密码
-K 与-k类似,还要删除时间戳文件
-b在后台执行指令
-p 改变询问密码的提示符号
示例:-p”password on %h for user %p:"

[zhang@centos7 ~]$sudo -p "password on %h for user %p:" cat /etc/shadow
password on centos7 for user zhang:

注意:这些命令都是在切换身份之后,被授权的用户执行的命令。

实验

[root@centos7 sbin]#su - zhang
Last login: Wed Sep 13 09:44:09 CST 2017 on pts/0
[zhang@centos7 ~]$su -l root -c 'cat /etc/shadow'
[root@centos7 profile.d]#visudo   ---执行这个命令,默认就会打
开/etc/sudoers文件,并且如果编写的时候有语法错误,在保存的时
候会有提示,进行如下编辑
zhang ALL=(ALL) /bin/mount /dev/sr0/ /mnt/cdrom, /usr/bin/unmout
[root@centos7 profile.d]#visudo -c   ---检查一下语法没有错误,用
vim打开这个配置文件时是只读的,可以用wq!强制保存,也可以用
这条命令检查语法错误
/etc/sudoers: parsed OK
[zhang@centos7 ~]$sudo mount /dev/sr0 /mnt/cdrom/   ---发现授权
的时候是严格匹配的,多一个/都执行不了
[sudo] password for zhang: 
Sorry, user zhang is not allowed to execute '/bin/mount /dev/sr0 /mnt/cdrom' as root on centos7.magedu.com.
[zhang@centos7 ~]$sudo mount /dev/sr0/ /mnt/cdrom
[sudo] password for zhang: 
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos7 bin]#ll /usr/bin/ /bin -d  ---这个两个文件是软连接的关系
lrwxrwxrwx. 1 root root     7 Jul 14 11:16 /bin -> usr/bin
dr-xr-xr-x. 2 root root 49152 Sep 11 16:36 /usr/bin/
[root@centos7 profile.d]#cd /etc/sudoers.d/   ---进入这个目录下,创
建一个自己的文件,也可以授权用户,但格式要和/etc/sudoers相同
[root@centos7 sudoers.d]#ls  ---默认是个空目录
[root@centos7 sudoers.d]#vim test  ---创建test文件,并编辑如下
zhang 172.18.21.107=(tom) /bin/cat /etc/shadow
[root@centos7 sudoers.d]#visudo -f test   ---编辑完也可以用visudo
命令打开进行编辑,但要加上-f
zhang 172.18.21.107=(tom) /bin/cat /etc/shadow
[root@centos7 bin]#setfacl -m u:tom:r /etc/shadow   ---给tom用户设置一个acl权限,使其可以访问shadow文件
[root@centos7 bin]#getfacl /etc/shadow
getfacl: Removing leading '/' from absolute path names
# file: etc/shadow
# owner: root
# group: root
user::r--
user:tom:r--    ---设置成功
group::---
mask::r--
other::---
[root@centos7 bin]#su - zhang
Last login: Wed Sep 13 14:34:09 CST 2017 on pts/1
[zhang@centos7 ~]$sudo -u tom cat /etc/shadow   ---可以看这个文件了
[root@centos7 sudoers.d]#visudo -f test  ---设置如下授权
User_Alias NETADMIN = zhang, tom : DBA = zhang
Cmnd_Alias NETCMD = /usr/sbin/ip, /usr/sbin/ifconfig
NETADMIN ALL=(ALL) NOPASSWD:NETCMD
DBA ALL=(ALL) NOPASSWD:/bin/cat /etc/shadow                                                                                                                            
[root@centos7 sudoers.d]#visudo -c   ---检查一下,要求更改权限,
因为前面创建的时候使用vim创建的,所以权限不是要求的权限,如
果用visudo test,权限就不用改了
/etc/sudoers: parsed OK
/etc/sudoers.d/test: bad permissions, should be mode 0440
[root@centos7 sudoers.d]#chmod 0440 test 
[root@centos7 sudoers.d]#visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/test: parsed OK
执行都是成功的
[root@centos7 sudoers.d]#visudo -f test 
Defaults:zhang runas_default=tom  ---表示不用指定,默认zhang用户代表的就是tom去执行操作
zhang ALL=(ALL) /bin/cat /var/log/messages*,!/bin/cat /var/log/messages* *
[zhang@centos7 ~]$sudo cat /var/log/messages /etc/shadow 
Sorry, user zhang is not allowed to execute '/bin/cat /var/log/messages /etc/shadow' as tom on centos7.magedu.com.
这样就可以避免看shadow文件了
[root@centos7 zhang]#visudo -f /etc/sudoers.d/test
zhang ALL=(ALL) sudoedit   ---授权zhang用户能够编辑/etc/sudoers文件和/etc/sudoers.d/test文件
[zhang@centos7 ~]$sudoedit /etc/sudoers.d/test
zhang ALL=(ALL) sudoedit

6、TCP_Wrappers介绍

1、介绍
工作在第四层(传输层)的TCP协议
对有状态连接的特定服务进行安全检测并实现访问控制
以库文件形式实现
某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的
判断服务程序是否能够由tcp_wrapper进行访问控制的方法:

[root@centos7 zhang]#which sshd   ---二进制程序名,而不是
服务名
/usr/sbin/sshd
[root@centos7 zhang]#ldd /usr/sbin/sshd |grep "libwrap.so"
    libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f2a8273e000)
[root@centos7 zhang]#strings /usr/sbin/sshd |grep "libwrap.so"
libwrap.so.0
[root@centos7 zhang]#ldd `which vsftpd`|grep "libwrap.so"  ---受控制
    libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fc7f941a000)
[root@centos7 zhang]#ldd `which httpd`|grep "libwrap.so"  ---不受控制

总结:有些服务是受tcp_ wrappers控制,有些不受控制,比如http服务就不受控制。
2、TCP_Wrappers的使用
配置文件:/etc/hosts.allow, /etc/hosts.deny
帮助参考:man 5 hosts_access,man 5 hosts_options
检查顺序:hosts.allow,hosts.deny(默认允许)
注意:一旦hosts.allow规则匹配,直接生效,将不再继续,如果不匹配就看hosts.deny,如果都不匹配,默认是允许的。
基本语法:
daemon_list@hostIP: client_list[ :options:option… ]

sshd@172.18.21.107: 172.18.21.106
如果放到hosts.deny文件里,表示拒绝IP地址为172.18.21.106的主机去访问ip地址为172.18.21.107的主机的sshd服务
的107的ip地址

Daemon_list格式
单个应用程序的二进制文件名,而非服务名,例如vsftpd,intelnetd

[root@centos7 zhang]#rpm -ql telnet-server  ---比如telnet服务来自
于telnet-server软件包
/usr/lib/systemd/system/telnet.socket   ---服务名,开启或者关闭服
务的时候可以用systemctl start telnet.socket 
/usr/lib/systemd/system/telnet@.service
/usr/sbin/in.telnetd    ---应用程序的二进制文件名,开启或者关闭服
务时也可直接运行这个文件,其实用systemctl可以管理这个服务是因
为在/usr/lib/systemd/system目录或者在/etc/systemd/system/目录下
有对应的服务unit文件,而centos6中是在/etc/init.d目录下有很多服务
脚本,使服务受service管理。
/usr/share/man/man5/issue.net.5.gz
/usr/share/man/man8/in.telnetd.8.gz
/usr/share/man/man8/telnetd.8.gz

以逗号或空格分隔的应用程序文件名列表,如:sshd,vsftpd

sshd@172.18.0.107,vsftpd: ALL
如果放到hosts.deny文件里,表示拒绝所有外部主机去访问我的ssh
服务的172.18.0.107的地址,访问我的vsftpd服务的所有ip地址。

ALL表示所有接受tcp_wrapper控制的服务程序
主机有多个IP,可用@hostIP来实现控制
如:in.telnetd@192.168.0.254
客户端Client_list格式
以逗号或空格分隔的客户端列表
基于IP地址:192.168.10.1 192.168.1.
基于主机名:www.magedu.com .magedu.com 较少用
基于网络/掩码:192.168.0.0/255.255.255.0
基于net/prefixlen: 192.168.1.0/24(CentOS7)
---注意CIDR表示法只能centos7中使用
基于网络组(NIS 域):@mynetwork
内置ACL:ALL,LOCAL,KNOWN,UNKNOWN,PARANOID
ALL:表示所有的
LOCAL:主机名不带点的就匹配
KNOWN:名字可以解析成ip地址的就匹配
UNKNOWN:名字不可以解析成ip地址的就匹配
PARANOID:正向解析和反向解析不对应的就匹配,正向解析把名字解析成ip地址后反向解析把ip地址解析成名字后,跟前面的名字不对应的就匹配
EXCEPT用法:
示例

vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT 172.16.100.1
如果放到hosts.deny文件里,表示拒绝172.16这个网段的主机连接到
我的vsftpd服务,除了172.16.100.0/24这个网段不拒绝,但
172.16.100.1这个ip地址又拒绝
示例:只允许192.168.1.0/24的网段主机访问sshd服务
/etc/hosts.allow
sshd: 192.168.1.
/etc/hosts.deny
sshd:ALL
示例:只允许192.168.1.0/24的网段主机访问telnet和vsftpd服务
/etc/hosts.allow
vsftpd,in.telnetd: 192.168.1.
/etc/host.deny
vsftpd,in.telnetd: ALL
示例:拒绝172.18.21这个网段的主机去访问我主机的sshd服务,但如果一个主机有两个IP地址,一个是192.168.25.0/24网段,一个是172.18.0.0/16网段,那这个主机还是会连接到我的主机。
/etc/host.deny
sshd: 172.18.21.

3、[:options]选项:
帮助:man 5 hosts_options
deny 主要用在/etc/hosts.allow定义“拒绝”规则
如:vsftpd: 172.16. :deny
allow 主要用在/etc/hosts.deny定义“允许”规则
如:vsftpd:172.16. :allow
spawn 启动一个外部程序完成执行的操作

sshd: ALL :spawn echo "$(date +%%F) login attempt\: from %c to %s,%d" >>/var/log/sshd.log
在/etc/hosts.allow中添加,允许登录,并记录日志
在/etc/hosts.deny中添加,拒绝登录,并记录日志
%c 客户端信息
%s 服务器端信息
%d 服务名
%p 守护进程的PID
需要注意的是这里date后要加两个百分号,并且用冒号也要转义

twist 实际动作是拒绝访问,使用指定的操作替换当前服务,标准I/O和ERROR发送到客户端,默认至/dev/null

vsftpd: 172.16. :twist /bin/echo “"connection prohibited"
只要加选项twist无论放到哪个文件里都表示拒绝的意思,拒绝的同时会给客户端发送消息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容