Linux系统网络服务——安全与防火墙笔记

Linux安全笔记——系统、网络(防火墙)

系统基本安全

1.防火墙:网络防火墙、主机型防火墙

2.TCPWappers

3.软件自己过滤

4.人类工程学

5.VPN

对安全实行的措施技术

加强系统账号安全

加强系统引导和登录安全

检测弱口令账号

使用NMAP端口扫描工具

TCPWappers配置过滤文件:/etc/hosts.allow和/etc/hosts.deny

主机型防火墙:iptables、思科硬件防火墙、华为硬件防火墙

以下是内网与外网的网络架构图:

系统账号安全——清理管理系统账号

将非登录用户的Shell设为/sbin/nologin

useradd -M -s /sbin/nologin(不创建宿主目录)或usermod -s /sbin/nologin

补充:vim /etc/passwd 直接修改shell环境

锁定长期不使用的账号

锁定:usermod -L 【用户名】 解锁:usermod -U 【用户名】 查看锁定的用户:usermod -S

锁定:passwd -l 【用户名】 解锁:passwd -u

删除无用的账号

userdel -r(同时删除宿主目录)

锁定账号文件passwd、shadow

passwd文件位置:/etc/passwd        shadow文件位置:/etc/shadow

锁定账号文件:chattr +i /etc/passwd    chattr +i /etc/shadow(i为不可修改权限)

查看所有权限:lsattr -a

密码类安全

设置密码有效期——passwd  -e 2019-12-30 zhangsan

修改默认的密码有效期

vim /etc/login.defs

PASS_MAX_DAYS  30

修改已经创建的用户密码有效期——chage -M 30 【用户名】

要求用户第一次登陆强制修改密码——chage -d  0 【用户名】

历史命令安全

历史命令记录文件位置:/etc/profile

减少记录的命令条数

vim /etc/profile        HISTSIZE=200(默认的命令条数)

注销时自动清理命令历史

vim ~/.bash_logout(用户登出是加载的文件)          history -c 

设置中终端自动注销(centos6)

显示600秒后自动注销

vim ~/.bash_profile        export TMOUT=600

权限类安全

不能用root用户直接远程访问

建议使用普通用户远程登录,然后再转换root用户,要求使用密钥对验证登录

su - 【目标用户名】

查看su操作记录——tail /var/log/secure

-存在否的区别:有 - 切换的是的shell环境       没有 - 是保持原来的shell环境

限制su的使用

1.启用pam_wheel认证模块

修改配置文件:vim /etc/pam.d/su

2.直接取消注释:auth required pam_wheel.so use_uid

3.将允许使用su命令的用户加入wheel组——gpasswd -a 【用户名】 wheel

以其他用户执行授权的命令——sudo

修改配置文件:vim /etc/sudoers

或者使用命令:visudo zhansan localhost=/sbin/reboot

用户名  主机名列表=命令程序列表(可以用* !)

注意:visudo  默认没有日志文件,可以手动设置:Defaults logfile=”/var/log/sudo”

查询授权:sudo -l

主机类安全

BIOS安全控制

1.调整BIOS引导设置

2.设置首启动项为当前系统所在硬盘

3.禁止从其他设备(光盘、U盘、网络)引导系统

4.将安全级别设为setup,并设置BIOS管理员密码

5.禁用重启热键:Ctrl+Alt+Del

vim /etc/init/control-alt-delete.conf

start on control-alt-delete

exec /sbin/shutdown -r now “Control-Alt-Delete pressed”

reboot

GRUB菜单限制

1.未经授权禁止修改启动参数

2.未经授权禁止进入指定系统

3.密码记录的位置

全局部分 :第一个“title”之前,如果

系统引导部分:每个“title”部分之后

给GRUB菜单加入密码项

获得加密字串——grub-md5-crypt 

添加密码记录——vim /bot/grub/grub.conf     

passwrod(明文密码)或者passwrod --md5(md5码加密)

添加到第一个title之前(把生成的md5码)

虚拟终端安全

1.减少开发终端个数

配置文件修改——vim /etc/init/start-ttys.conf

开机启动模式配置文件——vim /etc/sysconfig/init

2.限制root只在安全的终端登录

修改配置文件——vim /etc/securetty

注释多于的tty  禁止root用户从终端tty#登录

3.限制普通用户登录

创建文件添加用户——vim /etc/nologin  临时限制(默认文件不存在)

注意:添加不能登录终端的普通用户,删除后即恢复正常

系统端口扫描和密码破解

john:密码爆破软件(该软件是使用密码文件,里面存放弱口令,然后本地有密码文件存放情况下才有效)

密码文件: password.lst

密码存放位置启动软件

比如:cp /etc/shadow   ./

cd john

run# ./ john /root/shadow

john.pot:破解之后的文件

NMAP:网络端口扫描

官方网站:http://nmap.org/

nmap [扫描类型] [选项] <扫描目标..>

常用的扫描类型

-sS:TCP SYN扫描(半开)     -sT:TCP连接扫描(全开)    -sF:TCP FIN 扫描

-sU:UDP扫描     -sP:ICMP扫描        -P0: 跳过ping检测

例如:

nmap 127 0.0.1  检测TCP端口

nmap -sU 127.0.0.1 检测UDP端口

nmap -p 21 192.168.11.0/24 检测该网段有哪些主机提供FTP服务

-p:指定目标端口

nmap -n -sP 192.168.11.0/24 检测该网段有哪些存活主机

-n:禁用反向解析

软件自己的过滤

TCPWappers

白名单文件:/etc/hosts.allow    黑名单文件:/etc/hosts.deny

1.设置访问控制列表    2.策略的配置格式

服务列表:客户机地址列表

补充:以冒号分隔,在每个列表的多个向之间以逗号分隔

服务程序列表

ALL:代表所有的服务

单个服务程序:如“vsftpd”

多个服务程序组成的列表:如“vsftpd,sshd”

客户机地址列表

ALL:代表任何客户机地址

LOCAL:代表本机地址

单个IP地址:比如“192.168.11.102”

网络段地址:比如“192.168.11.0/255.255.255.0”

Linux防火墙

在CentOS6中防火墙内核叫:netfilter

但是应用中我们通常使用的应用是:iptables

防火墙的主要构成(四表五链)

四表:raw(追踪)、mangle(登记)、nat(转换)、filter(过滤)

五链:PREROUTING、POSTROUTIN、INPUTOUTPUT、FORWARD

规则链:

INPUT: 当收到访问防火墙本机地址的数据包(入站)

OUTPUT: 当防火墙本机向外发送数据包(出站)

FORWARD: 当接收到需要通过防火墙中转发送给其它地址的数据包(转发)

PREROUTING: 在对数据包做路由选择之前

POSTROUTING: 在对数据包做路由选择之后

注意:INPUT、OUTPUT主要用于主机型防火墙,切是主要修改添加规则的地方(一般都应用于INPUT上

如下图所示(一个电脑中防火墙最基础的配置布局)

数据包过滤匹配流程

匹配即停止 : 一旦找到一条相匹配的规则(使用LOG日志操作的规则除外),则不再检查本链内后续的其他规则

如果找不到与数据包匹配的规则,就按照规则链的默认策略处理

(一旦前面有同性质同地域限制之类的条件,那么后面的条件限制就不管,只匹配前面的)

比如:1.允许192.168.11.0网段进行访问  2.拒绝192.168.11.101访问(那么第一条说了该网段可以访问,那么第二条就不作数)

防火墙的规则编写

命令格式——iptables  -t 【表名】【选项】【链名】【规则】

iptables -t 表名(raw mangle nat filter) 选项(-A -I -n -L -D -P -F) 链名(PREROUTING、POSTROUTIN INPUT OUTPUT FORWARD) 条件(通用 隐含 显示) -j 控制类型(ACCEPT DROP REJECT LOG )

如果没有-t选项那么表名默认为filter链名默认为INPUT

常用控制类型

ACCEPT:允许数据包通过

DROP :直接丢弃数据包,不给出任何回应消息

REJECT :拒绝数据包通过,必要时会给数据发送一个响应消息

LOG :在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。 “匹配即停止”不适用LOG,因为LOG只是一种辅助动作,并没有真正处理数据包

基本操作的选项:

类型

选项

用途

添加新的规则

-A

在链的末尾追加一条规则

-I

在链的开头(或指定序号)插入一条规则

查看规则列表

-L

列出所有的规则条目

-n

以数字形式显示地址、端口信息

-v

以更详细的方式显示规则信息

--line-numbers

查看规则时,显示规则的序列号

删除、清空规则

-D

删除链内指定序号(或内容)的一条规则

-F

清空所有的规则

设置默认策略

-P

为指定的链设置默认规则

 

-h

查看帮助命令信息 (--help)

 

-R

修改、替换指定链中的某条规则,可以指定序列号或者具体内容

例:实现我可以ping别人,别人不能ping我(8 请求   0 回显  3 不可达)

iptables -A INPUT -p icmp --icmp-type 8 -j DROP

iptbales -A INPUT -p icmp --icmp-type 0 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT

iptables -A INPUT -p icmp -j DROP

规则匹配条件选项:

类型

条件类型

用法

通用匹配

协议匹配

-p 协议名

地址匹配

-s 源地址、 -d目的地址

接口匹配

-i入站网卡、 -o出站网卡

隐含匹配

端口匹配

--sport源端口、 --dport目的端口

TCP标记匹配

--tcp-flags 检查范围,被设置的标记

ICMP类型匹配

--icmp-type ICMP类型

显示匹配

多端口匹配

-m multiport --sports | --dports 端口列表

IP范围匹配

-m iprange --src-range  IP范围

MAC地址匹配

-m mac --mac-source MAC地址

状态匹配

-m state --state 连接状态

规则的备份和还原

备份命令iptables-save > myiptables.txt           还原命令iptables-restore < myiptables.txt

网络型防火墙

一般用于内外网的防火墙应用

防火墙中nat转换nat链的配置命令:

iptables -t nat -A(-I) POSTRUTING -s 192.168.12.0/24 -o eth0 -j SNAT --to-source 192.168.11.21

上面的意思大概是把192.168.12.0网段的ip以eth0网卡为出站口转化为192.168.11.21为公网进行外部上网

图所示公司内外网防火墙基础布局的应用:

右边为内网,在公司路由服务器上应用网络型防火墙并且搭建DHCP和DNS服务,最左边的服务器搭建http服务并实现应用主机型防火墙

1.搭建好服务环境,配置好各个电脑服务器的ip如上面的图所示

2.配置路由服务器两个网卡,用于内外网的不同网段功能

图一作为内网出去上网的公网地址图二为内网的网关

图1           图2

3.修改内核参数,使该服务器拥有路由功能
修改配置文件:/etc/sysctl.conf
修改参数net.ipv4.ip.forward =1(开启路由转发功能)

读取修改的配置文件——sysctl -p

查看默认的防火墙的规则——iptables -nL

删除全部默认的防火墙——iptables -F(不添加链名默认删除全部)

4.配置nat链在POSTROUTING上做端口转换防火墙并且配置FORWARD链上的规则使来回数据能够通行,这样才能发送请求并且回复

5.配置INPUT链上的过滤规则,把默认设置成DROP丢出,这样可以添加允许语句进行判断,使得服务器更加安全

注意:如果拒绝语句写的多默认就设置成允许最好,两者一般成反比使用

6.查看防火墙的规则配置信息

7.测试:(在http上配置可以80端口进行访问网页,但是不能进行其他操作比如:ping命令)

配置防火墙之前

配置之后可以访问80端口http服务

配置之后不能ping

DNAT策略的应用

1.外网想要访问内网的服务器,这个时候就需要DNAT策略来实现,相当于端口映射

命令的格式:iptables -t nat -A PREROUTING -i eth0 -d 192.168.11.21 -p tcp --dprot 80 -j DNAT --to-destination 192.168.12.101

上面的意思大概是把192.168.12.101服务器的80端口映射从eth0为入站口也就是映射到192.168.11.21这个IP,别人从这个IP对内进行访问

2.安全的DNAT策略(修改访问的端口,不让别人使用默认的端口进行访问)

命令的格式:iptables -t nat -A PREROUTING -i eth0 -d 192.168.11.21 -p tcp --dprot 2346 -j DNAT --to-destination 192.168.12.101:22

上面2346就是修改的端口号,别人会用2346端口进行访问该服务的22号端口

发布了15 篇原创文章 · 获赞 4 · 访问量 8529

猜你喜欢

转载自blog.csdn.net/feili12138/article/details/103782849
今日推荐