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. PHPDocumentor代码注释规范说明

       PHPDocumentor是一个的用PHP写的道具,对于有规则注释的php程序,它能够快速生成具有相互参照,索引等功能的API文档. 标记 用途 描述 @abstract   抽象类的变量和方法 ...

  2. WPF疑难杂症会诊

    原文:WPF疑难杂症会诊 为什么图片像素是模糊的? 容器边框设为非整数时,其内容中的像素图片会产生模糊,即使设置SnapsToDevicePixels="True"也无效. 以下是 ...

  3. 用NMAKE创建VS2012 C++工程 HelloWorld

    由于需要精通GDAL的源代码,所以还是有必要精通NMAKE,先来尝试创建一个NMAKE工程. 之前一篇文章Windows7中Emacs 24 shell使用Gitbash已经介绍了如何在Emacs的s ...

  4. Python3.2官方文档-日志和弱引用

    8.5 日志 Logging模块提供了一些功能全面和灵活的日志系统.最简单的形式就是把日志信息发送到一个文件或sys.stderr; import logging logging.debug('Deb ...

  5. Android实现隐藏状态栏和标题栏

    隐藏标题栏需要使用预定义样式:android:theme=”@android:style/Theme.NoTitleBar”. 隐藏状态栏:android:theme=”@android:style/ ...

  6. C++ 操作 MySQL

    使用VS2008如IDE, 准备操作: 1. 项目属性  C++ 其他包括文件夹 为 mysql 安装文件夹的include 如:"C:\Program Files (x86)\MySQL\ ...

  7. Android_declare-styleable_自己定义控件的属性

    1.简单实例 (1).在res/values文件下定义一个attrs.xml文件 <? xml version="1.0" encoding="utf-8" ...

  8. 【原创】java中的父进程子进程 —— 坑爹的java Runtime.getRuntime().exec

    最近有一个需求,需要用一个java进程启动多个子进程来完成并发任务.由于必须给用户完成任务的反馈,所以需要父进程记录子进程的生命周期. exec方法返回一个Process对象,在当前进程内调用该对象的 ...

  9. 【原创】leetCodeOj ---Partition List 解题报告

    原题地址: https://oj.leetcode.com/problems/partition-list/ 题目内容: Given a linked list and a value x, part ...

  10. linux下&quot;=&quot;号与&quot;==&quot;号

    <鸟哥的linux私房菜>基础学习篇P382中说,在bash中"="与"=="是同样的,都代表推断是否相等,仅仅只是因为其它语言一般写法使用&quo ...