Linux 安全配置杂文

SSH 配置

vim /etc/ssh/sshd_config <<VIM > /dev/null 2>&1

:s/#LoginGraceTime 2m/LoginGraceTime 2m/

:s/#PermitRootLogin yes/PermitRootLogin no/

:s/#MaxAuthTries 6/MaxAuthTries 3/

:%s$#AuthorizedKeysFile$AuthorizedKeysFile /dev/null$

:%s/GSSAPIAuthentication yes/GSSAPIAuthentication no/

:%s/GSSAPICleanupCredentials yes/GSSAPICleanupCredentials no/

:wq

 

VIM

禁止证书登陆 AuthorizedKeysFile /dev/null

http://netkiller.github.com/

锁定用户禁止登陆

 

passwd -l bin

passwd -l daemon

passwd -l adm

passwd -l lp

passwd -l sync

passwd -l shutdown

passwd -l halt

passwd -l mail

passwd -l uucp

passwd -l operator

passwd -l games

passwd -l gopher

passwd -l ftp

passwd -l nobody

passwd -l vcsa

passwd -l saslauth

 

passwd -l postfix

 

检查可以登陆的用户与有密码的用户

 

Java代码  

  1. #!/bin/bash  
  2.   
  3. function section(){  
  4.     local title=$1  
  5.     echo "=================================================="  
  6.     echo " $title "  
  7.     echo "=================================================="  
  8. }  
  9.   
  10. section "Check login user"  
  11. grep -v nologin /etc/passwd  
  12.   
  13. section "Check login password"  
  14. grep '\$' /etc/shadow  
  15.   
  16. section "Check SSH authorized_keys file"  
  17. for key in $(ls -1 /home)   
  18. do   
  19.     if [ -e $key/.ssh/authorized_keys ]; then   
  20.         echo "$key : $key/.ssh/authorized_keys"  
  21.     else  
  22.         echo "$key : "  
  23.     fi  
  24. done  

 http://netkiller.github.com/

 

55.2.1. pam_tally2.so

此模块的功能是,登陆错误输入密码3次,5分钟后自动解禁,在未解禁期间输入正确密码也无法登陆。

在配置文件 /etc/pam.d/sshd 顶端加入

auth required pam_tally2.so deny=3 onerr=fail unlock_time=300
			

查看失败次数

# pam_tally2
Login           Failures Latest failure     From
root               14    07/12/13 15:44:37  192.168.6.2
neo                 8    07/12/13 15:45:36  192.168.6.2
			

重置计数器

# pam_tally2 -r -u root
Login           Failures Latest failure     From
root               14    07/12/13 15:44:37  192.168.6.2

# pam_tally2 -r -u neo
Login           Failures Latest failure     From
neo                 8    07/12/13 15:45:36  192.168.6.2
			

pam_tally2 计数器日志保存在 /var/log/tallylog 注意,这是二进制格式的文件

例 55.1. /etc/pam.d/sshd

# cat  /etc/pam.d/sshd
#%PAM-1.0
auth required pam_tally2.so deny=3 onerr=fail unlock_time=300

auth	   required	pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth
				

http://netkiller.github.com/

 

以上配置root用户不受限制, 如果需要限制root用户,参考下面

 

auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=1800

 

55.2.2. pam_listfile.so

用户登陆限制

将下面一行添加到 /etc/pam.d/sshd 中,这里采用白名单方式,你也可以采用黑名单方式

auth       required     pam_listfile.so item=user sense=allow file=/etc/ssh/whitelist onerr=fail
			

将允许登陆的用户添加到 /etc/ssh/whitelist,除此之外的用户将不能通过ssh登陆到你的系统

# cat /etc/ssh/whitelist
neo
www
			

例 55.2. /etc/pam.d/sshd - pam_listfile.so

# cat /etc/pam.d/sshd
#%PAM-1.0
auth       required     pam_listfile.so item=user sense=allow file=/etc/ssh/whitelist onerr=fail
auth       required     pam_tally2.so deny=3 onerr=fail unlock_time=300

auth	   required	pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth
				

 

sense=allow 白名单方式, sense=deny 黑名单方式

auth       required     pam_listfile.so item=user sense=deny file=/etc/ssh/blacklist onerr=fail

 

 

延伸阅读:http://netkiller.github.com/

时间: 2024-10-08 21:33:28

Linux 安全配置杂文的相关文章

linux 中配置apache 网站 编码设置为gb2312 浏览乱码

问题描述 linux 中配置apache 网站 编码设置为gb2312 浏览乱码 httpd.conf 添加了 AddDefaultCharset GB2312? 网页添加了 浏览器浏览的时候默认编码格式还是utf-8 显示乱码 解决方案 将环境变量LANG设置LANG="zh_CN GBK"

linux网关配置DNS重定向

1.网络拓扑: 需求:内网所有去往公网DNS流量,都转发到内网的一台DNS服务器. 源需求贴:http://bbs.51cto.com/thread-939762-1.html ----用linux测试,这种方式也可以算是一种DNS欺骗技术 2.配置步骤: A.linux网关配置: ①开启路由转发功能: echo "1" > /proc/sys/net/ipv4/ip_forward ②配置PAT: iptables -t nat -A POSTROUTING -o eth0 -

在linux下配置DNS服务器的方法

有两台邮件服务器分别为192.168.1.1(windows下主机名为b.test.cn)和192.168.1.3(linux下主机名为a.test.com). 在linux下配置DNS服务器,下面是配置过程中设置过的一些文件, /etc/hosts 文件的具体内容如下: # Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 l

Fedora Linux中配置JDK5或JDK6环境变量

上帝终于拯救我了,好长时间都没有找到linux下配JDK环境变量的方法,网上搜了好久,很多都好像没什么作用,还有一些配上以后直接让我的系统崩溃了,昨天我同事给我一个配置方法清单,号称是屡试不爽,我怀着一颗惴惴不安的心情试验了一把,我配的是JDK6.0,没想到第一步完成后执行了一下java -version居然成了,为了保证文档的完整性,我现在把我同事给我的文档全部都贴出来与大家分享,反正,我是只做了第一步就OK了,我用的是Fedora5.大家如果跟我一样不知道如何在linux上配置JDK的可以试

Linux网络配置的基础配置

1 linux网络配置介绍 网络是属于内核的功能,给linux的 主机网卡配置地址的时候,地址是属于内核的,而不是网卡 1.1 DNS 解析其他主机的主机名.一般需要两个,另一个备用(备用DNS的使用不是当第一个服务器解析不成功时使用备用,而是当第一个服务器连不上时时才使用,所以一般都是把响应快的放在第一位 1.2 网络接口类型 Loopback本地回环接口,本地回环接口存在的意义:即本机既做服务器端又做客户端时,自己跟自己联系时所用到的,这个数据报文在自身的内存中就能够完成,不用发布到网络 以

防火墙-linux主机配置了iptables,主机主动访问外部主机没问题,但是回包被iptables拦截了

问题描述 linux主机配置了iptables,主机主动访问外部主机没问题,但是回包被iptables拦截了 操作系统:Red Hat Enterprise Linux Server release 6.2 (Santiago) 现状:主机A开启了iptables,只对filter表的INPUT链做了策略,OUT链默认是全放通. 问题:发现主机A访问防火墙外部的主机B,包可以到达主机B,但是主机B的回包被主机A的iptables拦截了,导致TCP连接无法建立.网上查找到一些方法,想利用iptab

Linux安装配置php环境的方法_php技巧

本文实例讲述了Linux安装配置php环境的方法.分享给大家供大家参考,具体如下: 1.获取安装文件: http://www.php.net/downloads.php php-5.3.8.tar.gz 获取安装php需要的支持文件:http://download.csdn.net/download/netlong339/1351852 libxml2-2.6.32.tar.gz 2.安装libxml2 复制代码 代码如下: tar zxvf libxml2-2.6.32.tar.gz cd l

Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解

前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式--在一个独立的文件夹通过makefile配合内核源码路径完成     那么如何将驱动直接编译进内核呢?     在我们实际内核的移植配置过程中经常听说的内核裁剪又是怎么麽回事呢? 我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面: 这个界面是怎么生成的呢? 跟我们经常说的内核配置与与编译又有什么关系呢? 下面我们借此来讲解一下lin

linux中配置vnc遇到的问题

问题描述 linux中配置vnc遇到的问题 把 -nolisten tcp也是一样的结果,请问该怎么修改? 解决方案 显示器设置不对,所以vnc无法启动 解决方案二: 把 vncservers 里面 后加的两个#号去掉.