W7-C3-0508

七周三次课(5月8日)
10.11 Linux网络相关
10.12 firewalld和netfilter
10.13 netfilter5表5链介绍
10.14 iptables语法
扩展(selinux了解即可)

  1. selinux教程 http://os.51cto.com/art/201209/355490.htm
    2.selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK

1. Linux网络相关

ifconfig查看网卡ip
yum install -y net-tools

ifconfig -a 显示所有的, 包括down掉的

ifup ens33 启动网卡
ifdown ens33 关闭网卡
ifup ens33 && ifdown ens33 两个命令一起执行

设定虚拟网卡ens33:1

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-ens33:0
vim !$

#修改以下值
NAME=ens33:0
DEVICE=ens33:0
IPADDR=
# DNS和GATEWAY可以不要

重启ens33
ifdown ens33 && ifup ens33

查看网卡是否连接
mii-tool eth0 如不支持可用ethtool eth0

更改主机名
hostnamectl set-hostname aminglinux CentOS 6不支持
hostname查看主机名
更改后需要重新登录才显示, 也可以进入bash查看

hostname配置文件
/etc/hostname

DNS配置文件
/etc/resolv.conf
只能临时更改, 会被网卡配置文件更改即可

/etc/hosts
一个IP可写多个域名

2. firewalld和netfilter

防火墙
getenforce
查看selinux状态

setenforce 0
临时关闭selinux, 设置为permissive模式
setenforce 1 设置为enforcing模式

永久关闭selinux
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled, 重启机器

systemctl disable firewalld
禁用firewalld

systemctl stop firewalld
停止firewalld服务

yum install -y iptables-services
安装包

systemctl enable iptables
启用iptables

systemctl start iptables
开启iptables

iptables -nvL
查看iptables默认规则

3. netfilter5表5链介绍

5表

  • filter 包过滤. 最常用的表
    • INPUT
    • FORWARD
    • OUTPUT
  • nat 网络地址转换. 如路由器共享上网, 端口映射
    • OUTPUT
    • PREROUTING
    • POSTROUTING
  • mangle 标记数据包, QOS, 用于实现服务质量
  • raw 可实现不追踪某些数据包, 网址过滤
  • security 用于强制访问控制(MAC)的网络规则

    最后3个表几乎用不到

5链 与 数据包流向

  • PREROUTING:数据包进入路由表之前, 用于目标地址转换(DNAT)
  • FORWARD:通过路由表后,目的地不为本机
  • INPUT:通过路由表后目的地为本机
  • OUTPUT:由本机产生,向外发出
  • POSTROUTING:发送到网卡接口之前, 用于源地址转换(SNAT)

4 iptables语法

格式

iptables [-t table] COMMAND chain CRETIRIA -j ACTION
-t: 指定表, 不指定默认为filter
COMMAND:定义如何对规则进行管理
chain: 指定规则是在哪个链上操作, 定义策略时可省略
CRETIRIA: 指定匹配标准
-j ACTION :指定处理动作

规则查看

iptable -nvL
-n numeric, instead of names数字方式显示
-v verbose, 详细信息
-L list
-t: 指定表, 不指定默认为filter
--line-number 显示编号

规则备份与恢复

service iptables save 默认会保存规则到 /etc/sysconfig/iptables
iptables-save > /etc/sysconfig/iptables 可手动指定路径
iptables-restore < /etc/sysconfig/iptables.bak 恢复

规则管理

-A 追加
-I 插入
-D 删除
iptables -nvL --line-number 显示编号
iptables -D INPUT 7 用编号删除
-R 替换Replace

匹配标准

-s: 源地址, 必须是IP
-d: 目标地址
-p: 匹配协议, 一般三种: TCP/UDP/ICMP

  • -p协议的扩展
    • --dport 指定端口, 多个必须连续, 如21-23
    • --sport 指定源端口
    • --icmp-type
      • echo-request 请求回显, 一般用8. 如–icmp-type 8 匹配请求回显数据包
      • echo-reply 响应的数据包 一般用0表示
        -i eth0: 指定网卡, 从这块网卡流入的数据
        -o eth0: 指定网卡, 从这块网卡流出的数据

ACTION

DROP 悄悄丢弃
REJECT
ACCEPT
REDIRECT: 与DROP一样, 但还向发送者返回错误信息
SNAT 源地址转换
DNAT 目标地址转换
MASQUERADE IP伪装 (NAT), 用于ADSL

链管理

-P policy, 更改默认策略, 如iptables -P OUTPUT DROP (一般保持默认的ACCEPT)
-F flash, 清空规则链
-Z 计数器清零

示例1

只允许来自192.168.192.0/24网段访问本机192.168.192.10的SSHD服务
iptables -A INPUT -s 192.168.192.0/24 -d 192.168.192.10 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 192.168.192.0/24 -d 192.168.192.10 -p tcp --dport 22 -j ACCEPT
最后将默认策略改成DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

示例2

开放指定的端口

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT              #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT        #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j reject      #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT    #禁止其他未允许的规则访问

屏蔽IP

iptables -I INPUT -s 123.45.6.7 -j DROP      #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令

删除INPUT里序号为8的规则

iptables -D INPUT 8

未经允许不得转载:外贸SOHO笔记 » W7-C3-0508

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下作者~

支付宝扫一扫打赏

微信扫一扫打赏