Iptables 防火墙
?按防火墙对数据包的过滤方式分为:
代理服务器:代理client向Internet请求数据
?Ip,filter :过滤数据包,实现防火墙功能 ?iptables中的表:
filter:主要与linux主机有关,默认的table,实现包过滤 1, input:与进入linux本机的数据包有关 2, output:与送出linux本机的数据包有关
3, forward 与本机无关,将数据包转发到后端的计算机中
NAT 表:用于来源地和目的地的ip和port转换,与linux本机无关,实现地址转换 1, PREROUTING 在路由判断之前,目标地址转换 2, POSTROUTING 路由判断之后,源地址转换 3, OUTPUT 与送出去的数据包有关
?表间的优先顺序:
Raw>mangle>nat>filter
?链间的匹配顺序:
入站数据:PREROUTING, INPUT(目标地址是防火墙) 出战数据:OUTPUP, POSTROUTING(源地址是防火墙)
转发数据:PREROUTING, FORWARD, POSTROUTING(源和目标都不是防火墙)
?连内的匹配顺序:
自上而下顺序依次进行检查,若在链中找不到像匹配的规则,则按该链默认的策略处理
?Iptables [-t nat or filter] [–L] [–nv]
-L :列出目前的table的规则 -n :不进行ip与hostname 的反查 -v列出更多的信息
?iptables –F :清除所有的已定规则
-X: 除掉所有用户自定义的链
-Z:将所有的chain的计数与流量统计都归零
(这3种命令将本机防火墙的所有规则都清除,但不会改变默认策略) -A:新增加一条规则,加载原规则的后面 -I :插入一条规则,默认插入到第一条规则 -D:删除一条规则 -P :定义策略
-N :新建一个链 -R :替换
?1,数据包的基础比对ip/netmask i/o设备(配置filter表)
Iptables [-AI 链] [-io 网络接口] [-p 协议] [-s (!)来源ip网段] [-d 目标ip网段] –j [ACCEPT|DROP|LOG] 若某个网段input 可接受,但某个主机不能接受 应先设置丢弃在设置允许(顺序不能错)
?2,TCP,UDP规则比对
Iptables [-AI 链] [-io 网络接口] [-p tcp,udp] [-s (!)来源ip网段] [--sport 端口范围][-d 目标ip网段] [--dport 端口范围] [--syn]–j [ACCEPT|DROP|LOG] --syn对主动联机进行处理
使用sport和dport时必须指定udp or tcp 数据包格式
?定义默认策略:
Iptables [-t nat or filter] –P [INPUT,OUTPUT,FORWARD or PREROUTING,POSTROUTING,OUTPUP] [ACCEPT,DROP,]
?配置NAT表
SNAT: iptables -t nat -A POSTROUTING -o 端口 -s 内网网段/主机 -j SNAT --to-source 防火墙外网端口ip地址 DNAT: iptables -t nat -A PREROUTING -i 端口 -p tcp -d 防火墙外端口ip地址 --dport 80 -j DNAT --to-destination 内网
?DNAT的特殊用法:重定向,符合条件的数据包的目的ip地址改为数据包进入系统时的网络接口的ip地址。
例如,将来自172.16.1.0/24,目的端口为80的数据包重定向到squid监听端口:
iptables –t nat –A PREROUTING –i eth0 –p tcp –s ip地址 –dport 80 –j REDIRECT --to –port 3128 防火墙实验: 222.222.102.2 外网server 外网client 222.222.102.1 FW 192.168.222.101 192.168.222.102 内网client 1, 配置接口ip地址
2, 配置外网服务器实现:WEB,FTP,MAIL,DNS 3, 实现防火墙路由转发功能
Echo 1 >./proc/sys/net/ipv4/ip_forward(暂时修改) Vi /etc/sysctl.conf (永久修改)
4, 地址转换SNAT(此时内网客户机可以访问外网服务器) 若外网地址是通过拨号连接获取的将不固定,地址转换采用ip伪装
192.168.222.103内网server Ipatables –t nat –A POSTROUTING –s 子网/主机 –o ppp0 –j MASQUERADE
5, 配置DNAT是外网用户可以访问内网服务器(此时外网用户可以访问内网服务器) 6, 配置访问控制策略:内网用户只能访问外网特定服务(www,ftp,dns)
?配置默认策略 FORWARD INPUT 为DROP ?放行DNS服务器(其他服务类似)
(1)iptables -t filter -A FORWARD -s 内网ip网段 -o eth0 -p tcp/udp --dport 53 -j ACCEPT(从内网出去) (2)iptables -t filter -A FORWARD –i eth0 -p tcp/udp --sport 53 -j ACCEPT(进内网)
?采用ssh 远程编写规则
1, 在linux防火墙上启用ssh服务 2, 同网段远程客户机安装putty工具 3,putty登陆linux防火墙
3, 在记事本上编辑规则然后黏贴在putty上即可
?Iptables 状态检测功能(-m state –state 状态)
状态:NEW,RELATED,ESTABLISHED,INVALID NEW:已经或即将启动新连接 ESTABLISHED:已连接状态 RELATID:正在连接或已连接
INVALID:不能识别属于哪个连接或没有任何状态
1, Iptables –t filter –I FORWARD 1 –p tcp –m state –state ESTABLISHED –j ACCEPT 状态为ESTABLISHED就放行
2,Iptables –t filter –I FORWARD 2 –p tcp –m state –state INVALID –j DROP 状态为INVALID 就丢弃
3,新建一个链:iptables –t filter –N 链名
Iptables –t filter –I FORWARD 3 –p tcp –m state --state EW –j 链名 如果你是一个新建tcp连接的请求 就将此请求转到新建链中区处理 4,Iptables –t filter –A FORWARD –p tcp --dport 80 –j WWW 若请求服务时web服务就转到WWW链中(其他服务相同)
?Iptables 扩展应用
1, 多端口扩展应用:-m multipoort --dport/sport 端口1,端口2 ….. 2, 限制速率 及缓冲数-m limit --limit 速率 --limit-burst 缓冲数 3, MAC地址捆绑:-m mac --mac-source MAC地址
网络基础
Uname –r 追踪内核版本
网络接口的ip地址配置:ifconfig eth0/1 ip地址 netmask netmask号
网络接口的ip地址配置及激活该网络接口:ifconfig eth0/1 ip地址 up netmask netmask号
添加路由信息:route add [-net|-host] target[/netmask] eth0/1 删除路由信息:route del [-net|-host] [netmask]
添加和删除默认网关:route add default gw ip地址 dev eth0/1 route del default gw ip地址 dev eth0/1
DNS服务器
/var/named/chroot/etc/named.conf :DNS主配置文件 /var/named/chroot/var/named/区域文件 :区域配置文件 /var/named/chroot/var/named/named.root :根服务器信息文件 named-checkconf : 查看配置文件是否正确
Apache服务器
/var/www/html :存放web站点的web文件 /etc/httpd/conf/httpd.conf :apache 配置文件 /var/log/httpd/access_log :访问日志文件 /var/log/httpd/error_log :错误日志文件
?Httpd.conf配置文件主要有三部分组成,分别是全局环境设置,主服务器配置,虚拟主机设置
1,ServerRoot “/etc/httpd” :设置根目录的路径 2,ServerAdmin admin@your-domain.com :设置系统管理员e-mail 3,ServerName www.example.com:80 :设置服务器主机名称 4,DocumentRoot “/var/www/html” :设置服务器主目录的路径 5,DirectoryIndex index.html index.html.var :设置默认文件 6,Alias /icons/ “/var/www/icons/” :创建别名
7,Maxkeepaliverequests :一次连接允许请求服务的最大值
8,Keepalivetimeout : 一次连接同一个客户机再次请求服务的最大等待时间 9,Apachectl –C :查看apache安装信息 10,Apachectl –t :对配置文件进行语法检测
?配置目录权限
相关推荐: