热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Fedoracore2服务器平台安全设置揭密2

文章标题:Fedoracore2服务器平台安全设置揭密2。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  #!/bin/bash
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  #l连接Internet的外网网卡接口
  EXTIF=”eth0”
  #外网网卡的IP地址,这里请自行设置
  EXTIFIPADDR=”219.150.46.98”
  #连接局域网的内网网卡接口
  INIF=”eth1”
  #内网所在网段
  INNET="192.168.1.0/24"
  
  #打开系统内核的IP转发功能,使Linux变成路由器。
  echo "1" >/proc/sys/net/ipv4/ip_forward
  #防止syn flood攻击
  echo "1" > /proc/sys/net/ipv4/tcp_synCOOKIEs
  #整理内核所支持的模块清单
  /sbin/depmod ?a
  #加载所支持的模块清单
  modprobe ip_tables
  modprobe iptable_nat
  modprobe ip_nat_ftp
  modprobe ip_nat_irc
  modprobe ip_conntrack
  modprobe ip_conntrack_ftp
  modprobe ip_conntrack_irc
  
  #清除已设规则,还原到不设防火墙的状态
  iptables -F
  iptables -X
  iptables ?Z
  iptables -F -t nat
  iptables -X -t nat
  iptables -Z -t nat
  iptables -P INPUT DROP
  iptables -P OUTPUT DROP
  iptables -P FORWARD ACCEPT
  iptables -t nat -P PREROUTING ACCEPT
  iptables -t nat -P POSTROUTING ACCEPT
  iptables -t nat -P OUTPUT   ACCEPT
  
  #下面将对主机的安全性进行设置
  #允许本地环回设备上的通讯
  iptables ?A INPUT -i lo -p all -j ACCEPT
  iptables -A OUTPUT -o lo -p all -j ACCEPT
  #让已经建立或者是与我们主机有关的回应封包通过
  iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
  #允许SSH远程管理主机
  iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
  #对IP碎片数量进行限制,以防止IP碎片攻击
  iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
  #设置icmp协议,允许主机执行ping操作,以便对网络进行测试,但不允许其他主机ping该主机。
  iptables ?A OUTPUT-p icmp --icmp-type echo-request ?j ACCEPT
  iptables ?A INPUT ?p icmp --icmp-type echo-reply ?j ACCEPT
  
  #下面将进行NAT方面的设置
  #如果希望内网能够访问外网,必须进行SNAT设置
  iptables -t nat -A POSTROUTING ?p all -s $INNET -o $EXTIF -j SNAT --to $EXTIFIPADDR
  
  #如果你在内网架设了web服务器(IP:192.168.1.10),希望外网能够访问,则必须进行DNAT设置
  iptables ?t nat ?A PREROUTING ?p tcp ?i $EXTIF --dport 80 ?j DNAT --to 192.168.1.10:80
  
  三、系统设置
  
  1、限制Shell logging
  
  Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。
  
  第一步:
  
  “/etc/profile”文件中 “HISTSIZE”行确定所有用户的“.bash_history”文件中可以保存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTSIZE”值设为一个较小的数,比如30。编辑profile文件(vi /etc/profile),把下面这行改为:
  
  HISTSIZE=30 
  
  这表示每个用户的“.bash_history”文件只可以保存30条旧命令。
  
  第二步:
  
  网管还应该在"/etc/skel/.bash_logout" 
  
  文件中添加下面这行"rm -f  $HOME/.bash_history" 。
  
  这样,当用户每次注销时,“.bash_history”文件都会被删除。
  
  编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行:
  
  rm -f $HOME/.bash_history
  
  2、修改SSH 连接端口
  
  利用SSH我们可以远程管理Linux主机,不过如果设置不当,也会被黑客所利用,侵入系统。SSH默认连接端口为22,在实际工作中,笔者发现主机的22端口经常被扫描,试图以穷举法强行进行登陆,好在密码设置的比较复杂,才没有被侵入。因此笔者想到可以改变SSH连接端口,比如可以将连接端口设置为10000以上,呵呵,这样做就好比让小偷找不到门在哪里,又如何入室偷东西呢。具体修改方法如下:
  
  vi /etc/ssh/sshd_config
  将
  #port 22
  
  改为
  port 20068
  
  这样以后我们就需要通过20068这个端口来连接SSH了。
  
  然后在填加DenyUser *禁止普通用户登陆,这样应该可以防一下,拒绝守护程序(daemon)帐号访问系统,如确定下面守护程序帐号不能访问系统:
  
  DenyUsers daemon bin sync adm lp shutdown halt mail
  news uucp nobody operator sympa, squid, postgres,
  gopher, postfix, xfs.
  
  3、设置TCP_WRAPPERS
  
  默认的,Redhat Linux允许所有的请求,这是很危险的。如果用TCP_WRAPPERS来增强我们站点的安全性简直是举手之劳,你可以将禁止所有的请求放入“ALL: ALL”到/etc/hosts.deny中,然后放那些明确允许的请求到/etc/hosts.allow中,如:
  
  sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
  
  对IP地址192.168.1.10和主机名gate.openarch.com,允许通过ssh连接。配置完了之后,用tcpdchk检查,你可以直接执行:tcpdchk 。在这里,tcpchk是TCP_Wrapper配置检查工具,它检查你的tcp wrapper配置并报告所有发现的潜在/存在的问题。
  
  后记
  
  站长在研究设置Netfilter/iptables防火墙时,一度由于缺乏多主机的网络环境,以至学习的进展很慢,好在后来安装了Vmware虚拟机,在家中的WinXP下又虚拟出两台Fedora core 2来,并组建成一个局域网,才使得研究继续下去。如果你也为缺乏网络环境而苦难,那么请一定试试Vmware,相信会给你带来惊喜的!
  
  其实Linux的安全设置还远远不止这些,由于站长的水平有限,只能写到这里了,不过站长以后还会继续更新这篇文章,也希望大家能多提宝贵意见!
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • 我一直都有记录信息的习惯,不知是从什么时候开始,大约是在工作后不久。如今还真有点庆幸从那时开始记了点东西,当然是电子版的,写 ... [详细]
  • 【BP靶场portswigger服务端10】XML外部实体注入(XXE注入)9个实验(全)
    前言:介绍:博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。殊荣:CSDN网络安 ... [详细]
  • Docker安装Rabbitmq(配合宝塔)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker安装Rabbitmq(配合宝塔)相关的知识,希望对你有一定的参考价值。一、事前准备 ... [详细]
  • 之前项目在windows2003服务器上设置定时任务,每天执行。现在把项目移植到linux系统。也要在linux系统上设置计划任务。但是之前我从来没有做过。所以多得不 ... [详细]
author-avatar
喵喵-浩_174
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有