RSS订阅专注X86/ARM架构技术
博客交流QQ群693563350 赞助本站
你现在的位置:网站首页 / Linux / 正文内容

linux环境下的远程访问和认证安全

15170 Linux | 2016年12月10日

4.jpg

远程登陆取消telnet采用SSH登陆方式:

打开主配置文件:

vi /etc/ssh/sshd_config

Port 22 #建议设置为5位以上陌生数字端口

 

Protocol2 #设置为2

 

PermitRootLogin no #不允许超级用户登陆SSH

 

PermitEmptyPasswords no #不允许用口令为空的账号登陆系统

 

PrintLastLog no #不显示上次登陆信息

 

PrintMotd yes #登陆显示/etc/motd的信息

 

 合理使用Shell历史命令记录功能:

 

让History命令自己记录所有命令执行的时间:

编辑/etc/profile

HISTFILESIZE=4000

HISTSIZE=4000

HISTTIMEFORMAT=' %F %T'  #或者HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " 

export HISTTIMEFORMAT

 

把History以文件形式保存在一个安全的地方:

将以下代码添加到/etc/profile文件中:

#history

USER_IP:`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`

HISTDIR=/usr/share/.history

if [ -z $USER_IP]

then 

USER_IP = `hostname`

fi

if [ ! -d $HISTDIR]

then

mkdir -p $HISTDIR

chmod 777 $HISTDIR

fi

if [ ! -d $HISTDIR/${LOGNAME} ]

then

mkdir -p $HISTDIR/${LOGNAME}

chmod 300 $HISTDIR/${LOGNAME}

fi

export HISTSIZE=4000

DT=`date +%Y%m%d_%H%M%S`

export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"

export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"

chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null


最后退出终端在重新进入即可在相应的文件加找到shell命令记录文件:

cd /usr/share/.history/admin 

admin是我的用户名

进入:

ls -al

 

启用tcp_wrappers防火墙:


Linux内置了两层防火墙:

第一层是iptables是IP过滤机制,直观地监视系统的运行,阻挡网络中的恶意攻击。

第二层是tcp_wrappers,实现对系统中提供的某些服务开放与关闭,允许与禁止,从而有效地保证

 

查看系统是否安装tcp_wrappers:

rpm -q tcp_wrappers

或者:

rpm -qa | grep tcp

 

tcp_wrappers的局限性:

 

某个服务是否可以用tcp_wrappers取决于做个服务器是否应用了libwrapped库文件,如果应用即可调用tcp_wrappers防火墙

 

制定规则:

 

tcp_wrappers防火墙的实现是通过/etc/hosts.allow(如果没有,自行建立)和/etc/hosts.deny两个文件完成.

设定格式:

service:host(s) [:action]

主要参数:

service: 服务名,如sshd,vsftpd,sendmail等

host(s): 主机名或者IP地址,可以有多个,也可以是域名

action:动作,符合条件后所采取的动作

配置文件中的常用关键字:

ALL:所有服务或者所有IP

ALL EXPECT:从所有服务器或所有IP中除去制定的

例子1:

ALL:ALL EXPECT: 192.168.1.11

表示除了1.11这个机器,任何机器执行所有服务都被允许或被拒绝

 

例子2:

仅允许192.168.58.88 , 10.1.1.2以及域名junjiang.pw通过SSH服务登陆系统

 

vi /etc/hosts.allow

sshd: 192.168.58.88

sshd:10.1.1.2

sshd:junjiang.pw

 

vi /etc/hosts.deny

sshd:ALL

 

Linux会先看allow下的东西,如果登陆主机满足条件就不会看deny的东西,直接放行。

如果不满足allow的东西,那么Linux会看deny下的东西,满足deny的条件那么就直接限制登陆主机不让主机访问Linux。

这个其实类似Cisco和华为路由器里面的access-list和ip prefix-list,可以类比一下。


本文链接:http://junjiang.pw/post/42.html


上一篇:linux防火墙关闭启动详解

下一篇:linux下设置计划任务

猜你喜欢