Link to home
Start Free TrialLog in
Avatar of MrPrince
MrPrinceFlag for Canada

asked on

Cisco Router CBAC & PPTP

Hi,

Im having problems configuring CBAC on a Cisco 871 router -  12.4(22)T. Im getting traffic in and out of the box but certain protocols dont seem to work, specifically PPTP and ICMP. Below are the pertinent parts of my config:

ip inspect name Global_IE tcp
ip inspect name Global_IE udp
ip inspect name Global_IE icmp
ip inspect name Global_IE pptp
!
interface Vlan10
ip address 172.16.0.1 255.255.255.252
 ip access-group Vestibule_Outbound in
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 ip nbar protocol-discovery
 ip flow ingress
 ip flow egress
 ip nat inside
 ip virtual-reassembly
!
interface FastEthernet0
 switchport access vlan 10
 duplex full
 speed 100
!
interface FastEthernet4
 ip address dhcp
 ip access-group Inbound in
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 ip nbar protocol-discovery
 ip flow ingress
 ip flow egress
 ip nat outside
 ip ips Global_IPS in
 ip ips Global_IPS out
 ip inspect Global_IE out
 ip virtual-reassembly
 duplex auto
 speed auto
!
ip access-list extended Vestibule_Outbound
 permit ip any any
 deny   ip any any log
!
ip access-list extended Inbound
remark Permit DHCP
 permit udp any eq bootps any eq bootpc
deny   ip any any log
!


My understanding of the above configuration is that:

1. PPTP traffic  is allowed by the Vestibule_Outbound ACL inbound to VLAN 10
2. The traffic leaves the fa4 interface since no Outbound ACL is applied.
3. CBAC opens a temporary ACE at the top of the Inbound ACL to allow the return traffic (GRE)

If I let SDM do the configuration I end up with an ACE of permit tcp any any eq gre on the Inbound ACL.  The same for ICMP & NTP. Although this works doesnt this simply open up a hole in the network? Isnt CBAC supposed to allow return traffic dynamically rather than having a specific ACE? Im having the same problem with ICMP too.

Can anyone explain the processing rules that CBAC uses? Ive read conflicting statements that CBAC:

1. First checks the traffic against an ACL then inspects it, if configured to, and finally amends the corresponding ACL to allow the return traffic.

2. Inspects the traffic first then amends the corresponding ACL to allow the return traffic.

Im confused. What is the correct way to accomplish this?

Thanks.
Avatar of asavener
asavener
Flag of United States of America image

That's the way it is supposed to work, but CBAC has problems with connectionless protocols like UDP, and GRE (in my experience).

Allowing GRE in is not much of a security risk, because by definition, it is an encapsulation protocol.  Something on the inside of your network has to decapsulate it.

I would use the GRE keyword, though:  permit gre any any

Similarly, I've had to add ACL entries similar to:

deny icmp any any redirect
deny icmp any any timestamp-request
deny icmp any any echo
permit icmp any any

(Alternately, you can add permit statements for echo-reply, time exceeded, administratively prohibited, etc.)
I'll also note that PPTP first uses a TCP connection on port 1723 and then the GRE encapsulation.  The "ip inspect name <name> pptp" might focus primarily on the TCP session.
Final note: I"ve had to put explicit access list entries in for DNS and SNTP as well.
Avatar of MrPrince

ASKER

Oh Ok, so it's working as well as to be expected then. In the end i added the ACE for the GRE tunnel, i know the IP is genuine so it's not a massive security risk. Can you recommend any good protocol timeouts by any chance? I don't know the best practises on those.

Cheers.
ASKER CERTIFIED SOLUTION
Avatar of asavener
asavener
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks.