CentOS系统三层安全访问控制

当一个系统被用作公开网络的服务器时,这个系统就成为被攻击的目标。对网络服务进行访问控制,是一个服务器管理员面临的最重要的安全任务之一,例如,Linux内核使用一个基于iptables的防火墙来将不受欢迎的网络数据包过滤在内核网络之外。对于使用这种防火墙的网络服务,TCP Wrappers又增加了一层保护,这层保护通过定义哪些主机允许或不允许连接到”wrapped”网络服务上来实现.大多数现代网络服务系统,像SSH,Telnet和FTP,都可以利用Xinetd进程服务来管理,这个Xinetd被称为超级守护进程,在这个服务里可以直接设置访问控制,从而在网络层可以进行三层防护。

 

1.iptables网络防护

 

你可以用命令添加的方式一条一条增加规则,也可以直接编辑文件。

 

vim /etc/iptables.firewall.rules

 

*filter

 

# Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn’t use lo0

 

-A INPUT -i lo -j ACCEPT

 

-A INPUT -d 127.0.0.0/8 -j REJECT

 

# Accept all established inbound connections

 

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

 

# Allow all outbound traffic – you can modify this to only allow certain traffic

 

-A OUTPUT -j ACCEPT

 

# Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).

 

-A INPUT -p tcp –dport 80 -j ACCEPT

 

-A INPUT -p tcp –dport 443 -j ACCEPT

 

# Allow SSH connections

 

#

 

# The -dport number should be the same port number you set in sshd_config

 

#

 

-A INPUT -p tcp -m state –state NEW –dport 22 -j ACCEPT

 

# Allow ping

 

-A INPUT -p icmp -j ACCEPT

 

# Log iptables denied calls

 

-A INPUT -m limit –limit 5/min -j LOG –log-prefix “iptables denied: ” –log-level 7

 

# Drop all other inbound – default deny unless explicitly allowed policy

 

-A INPUT -j DROP

 

-A FORWARD -j DROP

 

COMMIT

 

读取防火墙规则使其生效:

 

iptables-restore < /etc/iptables.firewall.rules

 

这些规则将允许以下的服务和端口:HTTP(80),HTTPS(443),SSH(22)和ping功能,其他访问将被拒绝。

 

2.Tcp wrappers访问控制

 

Tcp wrapper:又叫TCPD网络资源访问控制器,工作在TCP层,通常情况下只能对基于TCP协议的某些访问做控制的,其实它对应的是一个库文件,由glibc提供的,工作于用户空间用户请求之间。

 

客户端–>iptables–>TCP_wrapper–>Service本身的访问控制

 

如果客户端IP通过了iptables防火墙后想访问我们的服务器资源,这时将会按照以下步骤判断:

 

当某个ip想访问你的Linux下的特定服务时,系统首先会检查/etc/hosts.alllow文件,如是有的话就放行,

 

没有的话继续检查/etc/hosts.deny文件,有的话拒绝,没有的就放行,不过一般的做法就直接在/etc/hosts.allow里放允许通行的ip,/etc/hosts.deny里放不允许通行的ip。

 

检查一个服务是否受tcp wrapper控制,如telent:

 

#ldd `which in.telnetd` | grep “libwrap.so”

 

有些程序在编译时是通过静态的方式链接库,用如下命令检查:

 

#strings `which in.telnetd` | grep hosts

 

如果要控制访问,编辑/etc/hosts.allow,/etc/hosts.deny文件,格式为,程序名:主机网络。

 

如对telnet,允许192.168.1.网段访问,但是主机192.168.1.100除外

 

in.telnetd: 192.168.1. EXCEPT 192.168.1.100

 

还可以记录访问日志

 

in.telnetd: 192.168.1. :spawn echo “connect `date`” >>/var/log/tcpwrapper.log

 

记住规则生效顺序:

 

/etc/hosts.allow –> /etc/hosts.deny –> 默认规则(allow)

 

3.Xinetd超级守护进程访问控制

 

在linux中服务有两类:独立守护进程和瞬时守护进程。

 

独立守护进程,自己管理自己,不受其他的限制与影响,响应速度快。比如httpd。

 

瞬时守护进程又称非独立守护进程:按需启动,无需关闭,节省资源。比如Xinetd。

 

当客户端试图连接到由xinetd控制的网络服务,超级服务接收请求,并检查是否有TCP封装的访问控制规则。

 

通过编辑两个配置文件,以telnet为例:

 

/etc/xinetd.conf — 全局配置文件

 

defaults

 

{

 

instances = 60 ; 能处理的最大的并发请求数

 

log_type = SYSLOGauthpriv ; 记录日志类型

 

log_on_success = HOST PID ; 记录成功连接的主机iP和进程id

 

log_on_failure = HOST ; 记录失败连接的主机ip

 

cps = 25 30 ; 允许任何给定服务每秒25次连接,超过则禁用30秒

 

}

 

includedir /etc/xinetd.d

 

/etc/xinetd.d/ — 对应服务的配置文件

 

service telnet

 

{

 

disable = no ; 启用

 

flags = REUSE ; 连接属性为REUSE套接字

 

socket_type = stream ; 套接字类型为strem

 

wait = no ; 指定服务为多线程,yes为单线程

 

user = root ; 指定服务的用户为root

 

server = /usr/sbin/in.telnetd ; 服务的可执行程序

 

only_from = 172.16.0.0/16 ; 仅允许176.16网段访问

 

log_on_failure += USERID ; 登陆失败记录用户id

 

no_access = 172.16.45.0/24 ; 不允许访172.16.45网段访问

 

log_on_success += PID HOST EXIT ; 登陆成功记录主机ID,主机名,直到登出信息

 

access_times = 09:45-16:15 ; 可以访问的时间段

 

bind = 172.16.100.1 ; 只允许网卡ip为172.16.100.1访问

 

per_source = 1 ; 每个ip每次只能访问一个服务

 

cps = 10 60 ; 每秒10次,超过禁用60秒,和全局那个范围小取那个

 

banner =/etc/telnet.banner ; 设置登陆欢迎信息

 

}

 

通过防火墙,即TCP wrapper访问过滤,加上SELinux安全控制机制,加上文件权限等访问控制,让Linux系统安全性得到极大的提升!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bill165313109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值