怎样规划linux网络安全学习路线?

rt汗死,不要复制
2025-04-29 23:05:29
推荐回答(4个)
回答1:

防火墙的原理
防火墙的作用

主要作用:过滤两个网络之间的数据包

INERNET------fire wall------server------LAN

Linux内核的Netfilter

Linux内核空间和应用程序空间是不一样的

内核空间是受保护的,任何进出服务器的数据包都要经过内核处理

所有发送给本地的数据包都要经过INPUT

任何从本机产生的数据包发送给其它人都要经过OUTPUT

一个数据从本机路由转发,目标不是自己,是发给别人的将从FORWARD经过

INPUT/OUTPUT保护的是本机FORWARD保护的是局域网用户

包过滤原理

一个数据包要经过本地的路由,要判断怎么走,ROUTING是非常重要的,它决定了要怎么走

如果一个包和我本地网卡地址一样,本地可以收到,进入INPUT,否则FORWARD

如果一个包是本地产生的,发出去的经过OUTPUT

包过滤就是在这三个地方设置条件,设置障碍,阻止或通过数据包,及设置包的处理方式

包的处理方式

iptable -A INPUT -p icmp -j DROP

包的处理方式常见的有目标(Target) 丢弃(DROP) 接受(ACCEPT) (弹回)REJECT 日志(LOG)等

iptables命令
iptables -A INPUT -p icmp -j DROP 增加一个过滤规则

ping 192.168.0.101

iptables -L -n查看过滤规则

iptables -F清空过滤规则

iptables --help | more

iptables -L -n –line-number

增加一条规则把拒绝所有访问21端口的数据包

iptables -A INPUT -p tcp -d 192.168.0.101 --dport 21 -j DROP

iptables -F修改的时候要把防火墙的门全部关起来 然后一个一个端口打开

iptables -L -n –line-numbers

假设我们一个服务器只开启一个http

那么我们要开启http/ssh(远程管理)

所有的http 端口grep http /etc/services

打开ssh grep ssh /etc/services

iptables -A INPUT -p tcp -d 192.168.0.101 --dport 22 -j ACCEPT 接收进来,目标IP是本地IP,目标端口是22

iptables -A OUTPUT -p tcp -s 192.168.0.101 --sport 22 -j ACCEPT 发送出去,源IP是本地IP,源端口是22

iptables -L -n

iptables -P INPUT DROP改变防火墙的默认策略为DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

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

iptables -A OUTPUT -p tcp -s 192.168.0.101 --sport 80 -j ACCEPT

iptables -L -n

iptables -L -n --line-numbers

netstat -tnl 就算本地开启了很多服务,但只有22和80端口可以被访问到

service iptables save保存当前的设置或用iptables-save > /etc/sysconfig/iptables

对于作何一个服务器来说都少不了DNS解析请求,自己作为客户机

grep domain /etc/services 搜索域名服务的端口号

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT DNS解析回应,目标端口是53

iptables -A INPUT -p udp --sport 53 -j ACCEPT 请求DNS解析,源端口是53

检查客户机DNS服务器配置

more /etc/resolv.conf

host www.redhat.org.cn

如果这台服务器本身也是DNS服务器

iptables -A INPUT -p udp --dport 53 -j ACCEPT 接收来自别的机器的DNS解析请求

iptables -A OUTPUT -p udp --sport 53 -j ACCEPT这台DNS服务器发送DNS解析回应

iptables -D INPUT 5删除在INPUT上的第5条规则

如果这台服务器也要连上其它服务器的SSH

到目前为止,在本机访问本机的服务给忽略

在本机上,有很多服务都守护在127.0.01上,所以我们要打开本地的回环设备

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

^IN^OUT命令替换功能

iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

service iptables save

现在我们注意一下22端口

Chain INPUT (policy DROP)

1 ACCEPT tcp -- 0.0.0.0/0 192.168.0.101 tcp dpt:22

Chain OUTPUT (policy DROP)

1 ACCEPT tcp -- 192.168.0.101 0.0.0.0/0 tcp spt:22

所有进来的包都要通过22端口

所有出去的包都要通过22端口,但是如果由于系统漏洞或是病毒,从22端口主动送出包出去,而不是通过请求进来的包回应的,这时就会出现比较大的问题

所以我们要增加一条规则看这个包是不是别人请求我,我回应别人的

iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

iptables -D OUTPUT 1删除第一条规则

iptables -n -L --line-numbers

Chain OUTPUT (policy DROP)

6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22 state ESTABLISHED

针对80端口也是一样

iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

service iptables save

作为客户机访问别人的SSH也是有问题的

iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT从客户机发送出去的包,肯定被无条件接受

iptables -A INPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT接受别人的服务

器SSH回应如果有病毒,是主动发给本客机的,就出现问题了,这时加上必须是我请求过SSH服务数据包回应的

LOG目标

iptables -A INPUT -p tcp –dport 22 -j LOG –log-level 5 –log-prefix “IPTABLES”

编辑/etc/syslog.conf

注意:日志级别5要跟syslog.conf中的级别一致。级别可以通过syslog的manual帮助获得。

iptables -A INPUT -p tcp --dport 22 -j LOG --log-level 5 --log-prefix "iptable:"

vi /etc/rsyslog.conf

kern.=notice /var/log/firewall.log

这里为什么是notice?

man syslog查看消息的级别

#define KERN_EMERG "<0>" /* system is unusable */

#define KERN_ALERT "<1>" /* action must be taken immediately */

#define KERN_CRIT "<2>" /* critical conditions */

#define KERN_ERR "<3>" /* error conditions */

#define KERN_WARNING "<4>" /* warning conditions */

#define KERN_NOTICE "<5>" /* normal but significant condition */

#define KERN_INFO "<6>" /* informational */

#define KERN_DEBUG "<7>" /* debug-level messages */

在防火墙中我们定的级别是5,所以对应的内核是notice

iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

iptables -n -L –line-number

iptables -D INPUT 8

iptables -I INPUT 6 -p tcp --dport 22 -j LOG --log-level 5 --log-prefix "iptable:"

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

iptables -D INPUT 1 把前拥同样规则的移到日志后面

service iptables save

tail /var/log/firewall.log -f

NAT地址转换
http://www.netfilter.org/

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT允许本地互联网访问

iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

光这样还不行,还要打开内核里的转发文件

more /proc/sys/net/ipv4/ip_forward

echo 1 > /proc/sys/net/ipv4/ip_forward

这时只能临时生效,若服务器重启,这个值又变成0

vi /etc/sysctl.conf

# Controls IP packet forwarding

net.ipv4.ip_forward = 1

service iptables save

此时我们还是不能用,因为局域网通过本机转发到互联网上,网络上的地址并不知道本地局域网的IP

所以我们要通过NAT

iptables -t nat -L -n

Netfilter的NAT表

内核空间---->PREROUTING---->ROUTING---->FORWARD---->POSTROUTING

SNAT发生在POSTROUTING

PREROUTING---->FORWARD---->POSTROUTING

destination: 11.22.33.1:22 destination: 11.22.33.1:22

source: 10.0.0.1: source: 11.22.33.44:

proto: tcp proto: tcp

本机地址:

eth0: 10.0.0.254

eth1: 11.22.33.44

SNAT应用

10.0.0.241 eth0:10.0.0.254 /eth1:192.168.0.254 192.168.0.1

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT –to-source 192.168.0.254

IP:10.0.0.241 getway: 10.0.0.254 subnet mask:255.255.255.0

ping 192.168.0.1若能ping通,说明访问成功

在实际的运用中

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE支持动态的翻译

回来时自动找到源IP

iptables -t nat -F

DNAT发生在PREROUTING

PREROUTING---->FORWARD---->POSTROUTING

destination: 11.22.33.44:22 destination: 10.0.0.1:22

source: 11.22.33.1: source: 11.22.33.1:

proto: tcp proto: tcp

本机地址:

eth0: 10.0.0.254

eth1: 11.22.33.44

DNAT应用

10.0.0.241 eth0:10.0.0.254 /eth1:192.168.0.254 192.168.0.1

iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1

192.168.0.1这是一台实际的服务器,不让访问者10.0.0.241看到,访问者看到只是一个防火墙

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/beauty9235/archive/2008/12/01/3423069.aspx

回答2:

我找了一个这个:Linux实践工程师学习笔记十四:网络安全

http://hi.baidu.com/52hack/blog/item/6bc8c1ea750afcdbd439c92e.html

接下来

这是网络安全所包括的内容,你看看从何学起??

网络安全所涉及的内容

网络安全体系结构;

网络的攻击手段与防范措施;

网络安全设计;

网络安全标准制定,安全评测及认证;

网络安全检测技术;

网络安全设备;

安全管理,安全审计;

网络犯罪侦查;

网络安全理论与政策;

网络安全教育;

网络安全法律等。

网络安全技术与安全机制

网络安全技术涉及的内容是非常广泛的。从广义上讲,网络安全技术主要包括以下几个方面:

主机安全技术

身份认证技术

访问控制技术

密码技术

防火墙技术

安全审计技术

安全管理技术

系统漏洞检测技术

黑客跟踪技术

回答3:

先学习几个常用的网络服务器。
1.文件服务器:samba2.FTP:vsftp3.DNS
4.网站服务器:apache 5.邮件服务器:sendmail
然后转到防火墙墙iptables.

回答4:

从零基础开始学习的吗?