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. linux管理员

    sudo password 添加管理员用户,设置其密码. exit 退出管理员.

  2. cocos2d-x 3.1.1 学习笔记[2]Sprite 精灵

    Sprite应该是用到最多的一个类吧.无法想像一个游戏没有精灵将怎样进行愉快的玩耍. Sprite继承于Node 和 TextureProtocol. Sprite是一个2d的图像. Sprite能够 ...

  3. [WPF]Binding的Converter和Validator

    不拘一格用数据的Converter 上篇文已经说明,Binding就是数据源与目标之间的“关联”.大多数情况下,数据从Source到Target以及从Target返回Source都是“直来直去”的,但 ...

  4. 讨论JDK的File.equal()

    我们一般比较两个文件中的对象是相同的文件,通常使用java.io.File.equal().这里,equal()是不是文件内容的比较结果为.象是否指向同一个文件. File的equal()方法.实际上 ...

  5. PHP 类属性 类静态变量的访问

    php的类属性其实有两种,一种是类常量,一种是类静态变量.两种容易引起混淆. 如同静态类方法和类实例方法一样,静态类属性和实例属性不能重定义(同名),但静态属性可以和类常量同名. <?php c ...

  6. POJ 3100 &amp; ZOJ 2818 &amp; HDU 2740 Root of the Problem(数学)

    题目链接: POJ:id=3100" style="font-size:18px">http://poj.org/problem? id=3100 ZOJ:http ...

  7. 再见,CSDN

    这是第三次的博客, 首先是从百度改变自己 从他的变化二CSDN 看看多年的积累, 真的不想,但CSDN搜电缆和编辑(新MarkDown更烂)实在不敢恭维 再见CSDN, 新的博客 http://my. ...

  8. 初识google多语言通信框架gRPC系列(二)编译gRPC

    目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 无论通过哪种语言调用gRPC,都必须要编译gRPC,因为生成proto访问类时,除了产生标准的数据定义类之外,还需要 ...

  9. ECLIPSE中反编译插件JAD的配置安装,轻松查看JAVA源代码

    第一步:下载jad的eclipse插件jar包 http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download 第二步:将此jar ...

  10. Swift语言教程中文文档

    Swift语言教程中文文档 Swift语言教程(一)基础数据类型 Swift语言教程(二)基础数据类型 Swift语言教程(三)集合类型 Swift语言教程(四) 集合类型 Swift语言教程(五)控 ...