防火墙和系统安全防护和优化

Posted xuyonghui2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防火墙和系统安全防护和优化相关的知识,希望对你有一定的参考价值。

啥是个防火墙?

防火墙(Firewall),也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668(A)1993-12-15)。它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。

 

所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。

在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信。

防火墙啥作用?

防火墙具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等,但至少这是你自己的保护选择。

 

防火墙基本使用

1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld
 
centos系统安全防护和优化
 
大佬说:最小的权限+最小的服务=最大的安全
所以把用不着的都关掉就对了,如果你不知道怎么关,参考这个https://blog.csdn.net/knight_zhen/article/details/46444451

优化

内核参数优化

vi /etc/sysctl.conf    #末尾添加如下参数  (备注:内核不够熟,加上注解大家谨慎选择使用)

net.ipv4.tcp_syncookies = 1           #1是开启SYN Cookies,当出现SYN 等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,默认是0关闭  net.ipv4.tcp_tw_reuse = 1             #1是开启重用,允许将TIME_AIT sockets重新用于新的TCP连接,默认是0关闭                                                       

net.ipv4.tcp_tw_recycle = 5            #TCP失败重传次数,默认是15,减 少次数可释放内核资源                                                                               

net.ipv4.tcp_max_syn_backlog = 10240    #进入SYN包的最大请求队列,默认 是1024                                                                                             

net.core.netdev_max_backlog =  10240  #允许送到队列的数据包最大设备队 列,默认300                                                                                        

net.core.somaxconn = 2048              #listen挂起请求的最大数量,默认 128                                                                                               

net.core.wmem_default = 8388608        #发送缓存区大小的缺省值                                                                                                           

net.core.rmem_default = 8388608        #接受套接字缓冲区大小的缺省值 (以字节为单位)                                                                                    

net.core.rmem_max = 16777216           #最大接收缓冲区大小的最大值                                                                                                       

net.core.wmem_max = 16777216           #发送缓冲区大小的最大值                                                                                                           

net.ipv4.tcp_synack_retries = 2        #SYN-ACK握手状态重试次数,默认5                                                                                                   

net.ipv4.tcp_syn_retries = 2           #向外SYN握手重试次数,默认4                                                                                                       

net.ipv4.tcp_max_orphans = 3276800     #系统中最多有多少个TCP套接字不 被关联到任何一个用户文件句柄上,如果超出这个数字,孤儿连接将立即复位并打印警告信息                 

net.ipv4.tcp_mem = 94500000 915000000 927000000   

#net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力;                                                                                                                          

#net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段;                                                                                                                         

#net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket。内存单位是页,可根据 物理内存大小进行调整,如果内存足够大的话,可适当往上调。上述内存单位是页,而不是字节。             

net.ipv4.ip_local_port_range = 20480  65535  #(表示用于向外连接的端口范围。缺省情况下很小:32768到61000  注意:这里不要将最低值设的太低,否则可能会占用掉正常的端口! 

CentOS 系统优化    
      cp  /etc/profile  /etc/profilebak2
      vi /etc/profile      #在文件末尾添加以下内容
      ulimit -c unlimited
      ulimit -s unlimited
      ulimit -SHn 65535   
      source  /etc/profile    #使配置立即生效
      ulimit -a    #显示当前的各种用户进程限制

服务器禁止PING

      cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak     
      vi  /etc/rc.d/rc.local        #在文件末尾增加下面这一行
      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all       
      参数0表示允许   1表示禁止

清空防火墙并设置规则
    iptables -F   #清楚防火墙规则

iptables -L   #查看防火墙规则

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

iptables -A INPUT -p tcp --dport 22 -j ACCEPT  

iptables -A INPUT -p tcp --dport 53 -j ACCEPT  

iptables -A INPUT -p udp --dport 53 -j ACCEPT  

iptables -A INPUT -p udp --dport 123 -j ACCEPT  

iptables -A INPUT -p icmp -j ACCEPT  

iptables -P INPUT DROP  

/etc/init.d/iptables save

配置防火墙以接受仅来自已知网段的 SSH 连接:(慎用:如果那台主机挂了就惨了,这个真是比较安全的
Update /etc/sysconfig/iptables (Redhat specific file) to accept connection only 
from 192.168.100.0/24 and 209.64.100.5/27, enter:
-A RH-FW-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A RH-FW-1-INPUT -s 209.64.100.5/27 -m state --state NEW -p tcp --dport 22 -j ACCEPT 

SSH服务安全配置


     vi /etc/ssh/sshd_config   

     1. 禁用root远程登录 

  PermitRootLoginno

  PermitEmptyPasswords no #禁止空密码登录 

  2.不要支持闲置会话,并配置 Idle Log Out Timeout 间隔:
  ClientAliveInterval 600 # (Set to 600 seconds = 10 minutes)
  ClientAliveCountMax 0 

  3.禁用用户的 .rhosts 文件:

  IgnoreRhosts yes

  4.PasswordAuthentication no

  5.配置 iptables,以便在 30 秒内仅允许在端口 2022 上有三个连接尝试:
  Redhat iptables example (Update /etc/sysconfig/iptables): 
  -I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --set

  -I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 3 -j DR

  6.ssh安全技巧之更改 SSH 端口
  建议改成 10000 以上,以降低扫描到端口的机率。

  Port 18439

  7.使用iptables允许特定的主机连接
  作为TCP wrappers的一个代替品,你可以使用iptables来限制SSH访问(但可以同时使用这个两个的),这里有一个简单的例子,指出了如何允许一个特定的主机连接到你的SSH服务:
  iptables -A INPUT -p tcp -m state --state NEW --source 193.180.177.13 --dport 22 -j ACCEPT

  保存后重启ssh服务。    
————————————————

以上优化内容皆为转载
版权声明:本文为CSDN博主「Andy-Su」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/knight_zhen/article/details/46444451

 

 

当我搜索“防火墙和系统安全防护和优化”,看到这些博客都是2019年12月发布的,我就明白了一切。校友,额,是院友,也有可能是同班的朋友。

所以如果你也是为了作业看到我的这篇博客的话

那么

你好

为了作业忧愁的安师学子

 

1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld
 
centos系统安全防护和优化
 
大佬说:最小的权限+最小的服务=最大的安全
所以把用不着的都关掉就对了,如果你不知道怎么关,参考这个https://blog.csdn.net/knight_zhen/article/details/46444451

优化

内核参数优化

vi /etc/sysctl.conf    #末尾添加如下参数  (备注:内核不够熟,加上注解大家谨慎选择使用)

net.ipv4.tcp_syncookies = 1           #1是开启SYN Cookies,当出现SYN 等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,默认是0关闭  net.ipv4.tcp_tw_reuse = 1             #1是开启重用,允许将TIME_AIT sockets重新用于新的TCP连接,默认是0关闭                                                       

net.ipv4.tcp_tw_recycle = 5            #TCP失败重传次数,默认是15,减 少次数可释放内核资源                                                                               

net.ipv4.tcp_max_syn_backlog = 10240    #进入SYN包的最大请求队列,默认 是1024                                                                                             

net.core.netdev_max_backlog =  10240  #允许送到队列的数据包最大设备队 列,默认300                                                                                        

net.core.somaxconn = 2048              #listen挂起请求的最大数量,默认 128                                                                                               

net.core.wmem_default = 8388608        #发送缓存区大小的缺省值                                                                                                           

net.core.rmem_default = 8388608        #接受套接字缓冲区大小的缺省值 (以字节为单位)                                                                                    

net.core.rmem_max = 16777216           #最大接收缓冲区大小的最大值                                                                                                       

net.core.wmem_max = 16777216           #发送缓冲区大小的最大值                                                                                                           

net.ipv4.tcp_synack_retries = 2        #SYN-ACK握手状态重试次数,默认5                                                                                                   

net.ipv4.tcp_syn_retries = 2           #向外SYN握手重试次数,默认4                                                                                                       

net.ipv4.tcp_max_orphans = 3276800     #系统中最多有多少个TCP套接字不 被关联到任何一个用户文件句柄上,如果超出这个数字,孤儿连接将立即复位并打印警告信息                 

net.ipv4.tcp_mem = 94500000 915000000 927000000   

#net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力;                                                                                                                          

#net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段;                                                                                                                         

#net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket。内存单位是页,可根据 物理内存大小进行调整,如果内存足够大的话,可适当往上调。上述内存单位是页,而不是字节。             

net.ipv4.ip_local_port_range = 20480  65535  #(表示用于向外连接的端口范围。缺省情况下很小:32768到61000  注意:这里不要将最低值设的太低,否则可能会占用掉正常的端口! 

CentOS 系统优化    
      cp  /etc/profile  /etc/profilebak2
      vi /etc/profile      #在文件末尾添加以下内容
      ulimit -c unlimited
      ulimit -s unlimited
      ulimit -SHn 65535   
      source  /etc/profile    #使配置立即生效
      ulimit -a    #显示当前的各种用户进程限制

服务器禁止PING

      cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak     
      vi  /etc/rc.d/rc.local        #在文件末尾增加下面这一行
      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all       
      参数0表示允许   1表示禁止

清空防火墙并设置规则
    iptables -F   #清楚防火墙规则

iptables -L   #查看防火墙规则

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

iptables -A INPUT -p tcp --dport 22 -j ACCEPT  

iptables -A INPUT -p tcp --dport 53 -j ACCEPT  

iptables -A INPUT -p udp --dport 53 -j ACCEPT  

iptables -A INPUT -p udp --dport 123 -j ACCEPT  

iptables -A INPUT -p icmp -j ACCEPT  

iptables -P INPUT DROP  

/etc/init.d/iptables save

配置防火墙以接受仅来自已知网段的 SSH 连接:(慎用:如果那台主机挂了就惨了,这个真是比较安全的
Update /etc/sysconfig/iptables (Redhat specific file) to accept connection only 
from 192.168.100.0/24 and 209.64.100.5/27, enter:
-A RH-FW-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A RH-FW-1-INPUT -s 209.64.100.5/27 -m state --state NEW -p tcp --dport 22 -j ACCEPT 

SSH服务安全配置


     vi /etc/ssh/sshd_config   

     1. 禁用root远程登录 

  PermitRootLoginno

  PermitEmptyPasswords no #禁止空密码登录 

  2.不要支持闲置会话,并配置 Idle Log Out Timeout 间隔:
  ClientAliveInterval 600 # (Set to 600 seconds = 10 minutes)
  ClientAliveCountMax 0 

  3.禁用用户的 .rhosts 文件:

  IgnoreRhosts yes

  4.PasswordAuthentication no

  5.配置 iptables,以便在 30 秒内仅允许在端口 2022 上有三个连接尝试:
  Redhat iptables example (Update /etc/sysconfig/iptables): 
  -I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --set

  -I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 3 -j DR

  6.ssh安全技巧之更改 SSH 端口
  建议改成 10000 以上,以降低扫描到端口的机率。

  Port 18439

  7.使用iptables允许特定的主机连接
  作为TCP wrappers的一个代替品,你可以使用iptables来限制SSH访问(但可以同时使用这个两个的),这里有一个简单的例子,指出了如何允许一个特定的主机连接到你的SSH服务:
  iptables -A INPUT -p tcp -m state --state NEW --source 193.180.177.13 --dport 22 -j ACCEPT

  保存后重启ssh服务。    
————————————————

以上优化内容皆为转载
版权声明:本文为CSDN博主「Andy-Su」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/knight_zhen/article/details/46444451

 

 

当我搜索“防火墙和系统安全防护和优化”,看到这些博客都是2019年12月发布的,我就明白了一切。校友,额,是院友,也有可能是同班的朋友。

所以如果你也是为了作业看到我的这篇博客的话

那么

你好

为了作业忧愁的安师学子

 

 

 

 

以上是关于防火墙和系统安全防护和优化的主要内容,如果未能解决你的问题,请参考以下文章

防火墙和系统安全防护和优化

防火墙和系统安全防护和优化

防火墙和系统安全防护和优化

防火墙和系统安全防护和优化

防火墙和系统安全防护和优化

防火墙和系统安全防护及优化