Lab 3 Securing Networking

Goal: To build skills with the Netfilter packet filter

Sequence 1: Applying simple packet filtering to a host

Scenario: A host (stationX) requires protection by packet filtering. This host has only one network interface, so no packet forwarding is involved.

Deliverable: Packet filter rules successfully limit connections to stationX for SSH services only.

System Setup: Install the iptables-ipv6 package. See the Appendix for more information on installing packages.

Instructions:

1. Work with a lab partner, and determine who of you has the role of stationX (192.168.0.X), and who has stationY (192.168.0.Y).

Install the iptables-ipv6package. See the Appendix for more information on installing packages.

a. [root@stationX]# yum -y install iptables-ipv6

[root@stationY]# yum -y install iptables-ipv6

2. Ensure localhost IPv6 connectivity through tcp_wrappers.

a. On both systems, add to /etc/hosts.allow:

ALL: [::1]

3. Ensure the SSH service is running on stationX.

a. [root@stationX]# service sshd status
sshd (pid 5563 5561 2536) is running...

4. Confirm exposed ports on stationX from stationY:

[root@stationY]# nmap stationX

5. Confirm stationX can establish SSH connections to stationY. Note: you may have a user account on each system, with the username of student. If so, then the password is student. Create an unprivileged user account if needed: it is strongly discouraged to login to the system as root, even using SSH.

a. [root@stationY]# ssh student@stationX
student@stationX's password:
[student@stationX]$ exit

6. On stationX, apply a new default policy of DROP on the INPUT chain of the filter table.

a. [root@stationX]# iptables -P INPUT DROP

7. From stationX, attempt an ssh connection to localhost using IPv4 (127.0.0.1). Set the , so that it only waits for ten seconds. This should eventually fail.

a. [root@stationX]# ssh -o ConnectTimeout=10 127.0.0.1

8. Now try the IPv6 address for localhost on stationX (::1). This should eventually work. Be patient, as there are other services timing out as we will discover later.

a. [root@stationX]# ssh -o ConnectTimeout=10 ::1

9. From stationY verify that you can ping the link-local IPv6 address of stationX.

Get the IPv6 address from stationX by looking at the output of the ip command (run on stationX, of course). It should provide something like the following, with the IPv6 address in bold. Note: the IPv6 address uses the interface MAC address for uniqueness, where:

fe80::2(2nd column of MAC):(3rd column)ff:fe(4th column):(5th column)(6th column)

# ip addr sh dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc
pfifo_fast qlen 1000
link/ether 00:0d:60:8e:25:f3 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.X/24 brd 192.168.0.255 scope global eth0
inet6
fe80::20d:60ff:fe8e:25f3/64 scope link
valid_lft forever preferred_lft forever

Once you have the IPv6 address, from stationY ping stationX using ping6:

[root@stationY]# ping6 -I eth0 -c 3 fe80::20d:60ff:fe8e:25f4

Replacing fe80::20d:60ff:fe8e:25f4 with the IPv6 address of stationX.

10. Allow all incoming local connections (lo) on stationX.

a. [root@stationX]# iptables -A INPUT -i lo -j ACCEPT

11. On stationX, allow connections to the SSH service from stationY and from server1. Remember that DNS names should not be used.

a. [root@stationX]# iptables -A INPUT -s 192.168.0.Y -p tcp --dport ssh -j ACCEPT
b. [root@stationX]# iptables -A INPUT -s 192.168.0.254 -p tcp --dport ssh -j ACCEPT

12. Now view your iptables rules. This may take a minute to complete. Can you figure out what the problem might be? You may need to review the Fault Analysis slides for hints on commands that might be useful here. Once you have found the problem, fix it.

a. [root@stationX]# iptables -L

b. strace may prove useful here, as it allows us to view the files and commands that iptables may be using when it hangs.

[root@stationX]# strace iptables -L

You should find lines that include files such as /lib/libresolv.so.2 and /lib/libnss_dns.so.2 as well as a connection to the IP address of your DNS server. This appears to be a DNS problem, so we need to add entries for the DNS server:

[root@stationX]# iptables -A INPUT -s 192.168.0.254 -p udp --sport 53 -j ACCEPT
[root@stationX]# iptables -A INPUT -s 192.168.0.254 -p tcp --sport 53 -j ACCEPT

13. Allow ESTABLISHED and RELATED packets on stationX.

a. [root@stationX]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

14. From stationY, confirm that only the SSH port is exposed on stationX:

[root@stationY]# nmap -v -P0 stationX

This may take some time to complete, but give it a couple of minutes. Would merely an attempt to connect to stationX, from stationY using ssh prove that our Netfilter configuration is effective? Why? Why not?

a. We could prove that our configuration is effective in allowing ssh, but it is impossible to determine that it was actually blocking other ports from that one test.

15. Confirm that stationX can establish connections to stationY, and that stationX can still resolve host names.

a. [root@stationX]# ssh student@stationY
student@stationY's password:
[student@stationY]$ exit

b. [root@stationX]# dig stationY.example.com

16. On stationX, save your configuration and view the iptables configuration file just created.

a. [root@stationX]# service iptables save; restorecon -R /etc/sysconfig

b. [root@stationX]# cat /etc/sysconfig/iptables

c. [root@stationX]# iptables -vL --line-numbers

17. Go back through the lab and switch stations. stationX will become stationY, and stationY will become stationX. By the end of the lab, you should both have the same rules.

18. After both you and your lab partner have completed this sequence, configure a default installed set of Netfilter rules for IPv4, and disable the IPv6 Netfilter rules.

a. [root@stationX]# lokkit -q --enabled

b. [root@stationX]# service iptables restart

c. [root@stationX]# service ip6tables stop

d. [root@stationX]# chkconfig ip6tables off

RH253读书笔记(3)-Lab 3 Securing Networking的更多相关文章

  1. RH253读书笔记(8)-Lab 8 Securing Data

    Lab 8 Securing Data Goal: Gain familiarity with encryption utilities Sequence 1: Using SSH keys with ...

  2. RH253读书笔记(1)-Lab 1 System Monitoring

    Lab 1 System Monitoring Goal: To build skills to better assess system resources, performance and sec ...

  3. RH253读书笔记(6)-Lab 6 Implementing Web(HTTP) Services

    Lab 6 Implementing Web(HTTP) Services Goal: To implement a Web(HTTP) server with a virtual host and ...

  4. RH253读书笔记(2)-Lab 2 System Resource Access Controls

    Lab 2 System Resource Access Controls Goal: To become familiar with system resource access controls. ...

  5. RH253读书笔记(4)-Lab 4 The Domain Name System

    Lab 4 The Domain Name System Goal: To install and configure a DNS server System Setup: Throughout th ...

  6. RH253读书笔记(5)-Lab 5 Network File Sharing Services

    Lab 5 Network File Sharing Services Goal: Share file or printer resources with FTP, NFS and Samba Se ...

  7. RH253读书笔记(7)-Lab 7 Electronic Mail

    Lab 7 Electronic Mail Goal: To build common skills with MTA configuration Estimated Duration: 90 min ...

  8. RH253读书笔记(9)-Lab 9 Account Management Methods

    Lab 9 Account Management Methods Goal: To build skills with PAM configuration Sequence 1: Track Fail ...

  9. RH033读书笔记(16)-Lab 17 Installation and Administration Tools

    Lab 17 Installation and Administration Tools Goal: Become familiar with system configuration tools a ...

随机推荐

  1. Mongodb数据备份恢复

    Mongodb数据备份恢复 一.MongoDB数据库导入导出操作 1.导出数据库 twangback为备份的文件夹 命令: mongodump -h 127.0.0.1[服务器IP] -d advie ...

  2. iOS开发人员必看的精品资料(100个)

    目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iP ...

  3. 安装配置gerrit

    Centos 安装配置gerrit 关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied ...

  4. Bitmap

    Bitmap篇   在前一篇中介绍了使用API做Distinct Count,但是计算精确结果的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样 ...

  5. cocos2d-x 精灵的创建和基本使用

    在cocos2d-x中.精灵能够说是一个最重要的组成元素,它代表游戏中一个最小的可见单位.同一时候也是CCNode一个最为灵活的子类,由于它能够通过装载一个平面纹理,从而具有丰富的表现力. 在进一步说 ...

  6. Linux内核的同步机制---自旋锁

    自旋锁的思考:http://bbs.chinaunix.net/thread-2333160-1-1.html 近期在看宋宝华的<设备驱动开发具体解释>第二版.看到自旋锁的部分,有些疑惑. ...

  7. linux动态库编译和使用

    linux动态库编译和使用详细剖析 引言 重点讲述linux上使用gcc编译动态库的一些操作.并且对其深入的案例分析.最后介绍一下动态库插件技术, 让代码向后兼容.关于linux上使用gcc基础编译, ...

  8. Mega的简单使用

    Table of Contents 1 Mega画树的简单应用 2 fas格式文件的准备 3 用生成的.meg画树 4 生出树的处理 4.1 修改内容,添加标注 4.2 导出 4.3 后面随着学习的进 ...

  9. 简说一下coffeescript的constructor是如何导致Backbone.View的事件无法正常工作的.

    在继承方面,js还是弱项呀.发现在继承的时候constructor和initialize之分.网上文章没有说明二者关系.看了源码才发现二者的区别呀. 首先我用coffeescript来实现js的继承, ...

  10. poj3233(矩阵快速幂)

    poj3233 http://poj.org/problem?id=3233 给定n ,k,m 然后是n*n行, 我们先可以把式子转化为递推的,然后就可以用矩阵来加速计算了.  矩阵是加速递推计算的一 ...