How to disable LAN but enable WAN
How do credit card companies know what type of business I'm paying for?
How can this shape perfectly cover a cube?
How can a flywheel makes engine runs smoothly?
New Site Design!
How do I gain the trust of other PCs?
Why are British voters more likely to back the main parties in general elections than in European Parliament elections?
Is my research statement supposed to lead to papers in top journals?
Can you cover a cube with copies of this shape?
How to write a nice frame challenge?
XML Query Question
What is the context for Napoleon's quote "[the Austrians] did not know the value of five minutes"?
Why can't I craft scaffolding in Minecraft 1.14?
How do I run a script as sudo at boot time on Ubuntu 18.04 Server?
How did Avada Kedavra get its name?
Why is gun control associated with the socially liberal Democratic party?
On George Box, Galit Shmueli and the scientific method?
Have Steve Rogers (Captain America) and a young Erik Lehnsherr (Magneto) interacted during WWII?
How to ask if I can mow my neighbor's lawn
High-end PC graphics circa 1990?
How to comprehend this notation?
Should I email my professor to clear up a (possibly very irrelevant) awkward misunderstanding?
Are their examples of rowers who also fought?
Will users know a CardView is clickable?
Fill the maze with a wall-following Snake until it gets stuck
How to disable LAN but enable WAN
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
Why do I need that
I have a server on a large company network running new version of jenkins. I've migrated all the jobs (>600) over to a new server. Those jobs connect to different servers across our network. After starting jenkins some jobs will run overriding artifacts, pushing docker images to internal registries and so on. To prevent that without going into all 600 jobs and disabling then, I wish to disable local network access from the server. The network admins said that they don't want to mess with the firewall rules in fear they'll disable access to some important servers. So its on me to implement on the server side using iptables.
What do I need
What do I wish to do is to disable LAN access except one ip, and enable internet access. In more detail it goes like this.
Allow access to the server for ssh on port 22 and jenkins on port 8080 (I'm located on a different subnet than the server)
Allow access to the internet for plugin install and external build dependencies.
Drop anything going from the server to the local network 10.0.0.0/8. The server is located on 10.x.x.x/24 and it has access to different subnets over the router on 10.x.x.1
What have I tried
Final try before giving up. Didn't do anything.
#my ip
iptables -j ACCEPT -s 10.x.x.x -i ens160 -A IN_public
iptables -j ACCEPT -d 10.x.x.x -o ens160 -A OUTPUT_direct
#subnet
iptables -j DROP -d 10.0.0.0/8 -o ens160 -A OUTPUT_direct
iptables
add a comment |
Why do I need that
I have a server on a large company network running new version of jenkins. I've migrated all the jobs (>600) over to a new server. Those jobs connect to different servers across our network. After starting jenkins some jobs will run overriding artifacts, pushing docker images to internal registries and so on. To prevent that without going into all 600 jobs and disabling then, I wish to disable local network access from the server. The network admins said that they don't want to mess with the firewall rules in fear they'll disable access to some important servers. So its on me to implement on the server side using iptables.
What do I need
What do I wish to do is to disable LAN access except one ip, and enable internet access. In more detail it goes like this.
Allow access to the server for ssh on port 22 and jenkins on port 8080 (I'm located on a different subnet than the server)
Allow access to the internet for plugin install and external build dependencies.
Drop anything going from the server to the local network 10.0.0.0/8. The server is located on 10.x.x.x/24 and it has access to different subnets over the router on 10.x.x.1
What have I tried
Final try before giving up. Didn't do anything.
#my ip
iptables -j ACCEPT -s 10.x.x.x -i ens160 -A IN_public
iptables -j ACCEPT -d 10.x.x.x -o ens160 -A OUTPUT_direct
#subnet
iptables -j DROP -d 10.0.0.0/8 -o ens160 -A OUTPUT_direct
iptables
add a comment |
Why do I need that
I have a server on a large company network running new version of jenkins. I've migrated all the jobs (>600) over to a new server. Those jobs connect to different servers across our network. After starting jenkins some jobs will run overriding artifacts, pushing docker images to internal registries and so on. To prevent that without going into all 600 jobs and disabling then, I wish to disable local network access from the server. The network admins said that they don't want to mess with the firewall rules in fear they'll disable access to some important servers. So its on me to implement on the server side using iptables.
What do I need
What do I wish to do is to disable LAN access except one ip, and enable internet access. In more detail it goes like this.
Allow access to the server for ssh on port 22 and jenkins on port 8080 (I'm located on a different subnet than the server)
Allow access to the internet for plugin install and external build dependencies.
Drop anything going from the server to the local network 10.0.0.0/8. The server is located on 10.x.x.x/24 and it has access to different subnets over the router on 10.x.x.1
What have I tried
Final try before giving up. Didn't do anything.
#my ip
iptables -j ACCEPT -s 10.x.x.x -i ens160 -A IN_public
iptables -j ACCEPT -d 10.x.x.x -o ens160 -A OUTPUT_direct
#subnet
iptables -j DROP -d 10.0.0.0/8 -o ens160 -A OUTPUT_direct
iptables
Why do I need that
I have a server on a large company network running new version of jenkins. I've migrated all the jobs (>600) over to a new server. Those jobs connect to different servers across our network. After starting jenkins some jobs will run overriding artifacts, pushing docker images to internal registries and so on. To prevent that without going into all 600 jobs and disabling then, I wish to disable local network access from the server. The network admins said that they don't want to mess with the firewall rules in fear they'll disable access to some important servers. So its on me to implement on the server side using iptables.
What do I need
What do I wish to do is to disable LAN access except one ip, and enable internet access. In more detail it goes like this.
Allow access to the server for ssh on port 22 and jenkins on port 8080 (I'm located on a different subnet than the server)
Allow access to the internet for plugin install and external build dependencies.
Drop anything going from the server to the local network 10.0.0.0/8. The server is located on 10.x.x.x/24 and it has access to different subnets over the router on 10.x.x.1
What have I tried
Final try before giving up. Didn't do anything.
#my ip
iptables -j ACCEPT -s 10.x.x.x -i ens160 -A IN_public
iptables -j ACCEPT -d 10.x.x.x -o ens160 -A OUTPUT_direct
#subnet
iptables -j DROP -d 10.0.0.0/8 -o ens160 -A OUTPUT_direct
iptables
iptables
asked May 31 at 9:25
CodeBreakerCodeBreaker
274
274
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Some important notes before I'll provide the ruleset:
Avoid the modification firewall by scripts. Best flow:
- Save the current rule set with command
iptables-save > fwrules.v4
- Edit the rules
- Test the rules with command
iptables-restore -t fwrules.v4
- Safety apply the rules with command
iptables-apply -t <timeout> fwrules.v4
. Where<timeout>
is timeout of confirmation in seconds. If you don't confirm the new rule set, it will rollback to the previous set.
- Save the current rule set with command
I guess the server has single network interface.
- Rule set itself:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# allow reply packets
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# allow incoming ICMP like ping and other
-A INPUT -p icmp -j ACCEPT
# allow to ssh and to jenkins from anywhere
-A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dports 22,8080 -j ACCEPT
# allow localhost connections
-A INPUT -i lo -j ACCEPT
# allow output packets to trust host
-A OUTPUT --dst 10.0.0.12 -j ACCEPT
# block output packets to other lan hosts
-A OUTPUT --dst 10.0.0.0/8 -j REJECT
COMMIT
- What's about DNS servers addresses? You should allow it too if they are in the local subnet.
- The order of rules is very important.
That did the trick. Now I have a better understanding of iptables. Thank you!
– CodeBreaker
May 31 at 12:41
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f969623%2fhow-to-disable-lan-but-enable-wan%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Some important notes before I'll provide the ruleset:
Avoid the modification firewall by scripts. Best flow:
- Save the current rule set with command
iptables-save > fwrules.v4
- Edit the rules
- Test the rules with command
iptables-restore -t fwrules.v4
- Safety apply the rules with command
iptables-apply -t <timeout> fwrules.v4
. Where<timeout>
is timeout of confirmation in seconds. If you don't confirm the new rule set, it will rollback to the previous set.
- Save the current rule set with command
I guess the server has single network interface.
- Rule set itself:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# allow reply packets
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# allow incoming ICMP like ping and other
-A INPUT -p icmp -j ACCEPT
# allow to ssh and to jenkins from anywhere
-A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dports 22,8080 -j ACCEPT
# allow localhost connections
-A INPUT -i lo -j ACCEPT
# allow output packets to trust host
-A OUTPUT --dst 10.0.0.12 -j ACCEPT
# block output packets to other lan hosts
-A OUTPUT --dst 10.0.0.0/8 -j REJECT
COMMIT
- What's about DNS servers addresses? You should allow it too if they are in the local subnet.
- The order of rules is very important.
That did the trick. Now I have a better understanding of iptables. Thank you!
– CodeBreaker
May 31 at 12:41
add a comment |
Some important notes before I'll provide the ruleset:
Avoid the modification firewall by scripts. Best flow:
- Save the current rule set with command
iptables-save > fwrules.v4
- Edit the rules
- Test the rules with command
iptables-restore -t fwrules.v4
- Safety apply the rules with command
iptables-apply -t <timeout> fwrules.v4
. Where<timeout>
is timeout of confirmation in seconds. If you don't confirm the new rule set, it will rollback to the previous set.
- Save the current rule set with command
I guess the server has single network interface.
- Rule set itself:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# allow reply packets
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# allow incoming ICMP like ping and other
-A INPUT -p icmp -j ACCEPT
# allow to ssh and to jenkins from anywhere
-A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dports 22,8080 -j ACCEPT
# allow localhost connections
-A INPUT -i lo -j ACCEPT
# allow output packets to trust host
-A OUTPUT --dst 10.0.0.12 -j ACCEPT
# block output packets to other lan hosts
-A OUTPUT --dst 10.0.0.0/8 -j REJECT
COMMIT
- What's about DNS servers addresses? You should allow it too if they are in the local subnet.
- The order of rules is very important.
That did the trick. Now I have a better understanding of iptables. Thank you!
– CodeBreaker
May 31 at 12:41
add a comment |
Some important notes before I'll provide the ruleset:
Avoid the modification firewall by scripts. Best flow:
- Save the current rule set with command
iptables-save > fwrules.v4
- Edit the rules
- Test the rules with command
iptables-restore -t fwrules.v4
- Safety apply the rules with command
iptables-apply -t <timeout> fwrules.v4
. Where<timeout>
is timeout of confirmation in seconds. If you don't confirm the new rule set, it will rollback to the previous set.
- Save the current rule set with command
I guess the server has single network interface.
- Rule set itself:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# allow reply packets
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# allow incoming ICMP like ping and other
-A INPUT -p icmp -j ACCEPT
# allow to ssh and to jenkins from anywhere
-A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dports 22,8080 -j ACCEPT
# allow localhost connections
-A INPUT -i lo -j ACCEPT
# allow output packets to trust host
-A OUTPUT --dst 10.0.0.12 -j ACCEPT
# block output packets to other lan hosts
-A OUTPUT --dst 10.0.0.0/8 -j REJECT
COMMIT
- What's about DNS servers addresses? You should allow it too if they are in the local subnet.
- The order of rules is very important.
Some important notes before I'll provide the ruleset:
Avoid the modification firewall by scripts. Best flow:
- Save the current rule set with command
iptables-save > fwrules.v4
- Edit the rules
- Test the rules with command
iptables-restore -t fwrules.v4
- Safety apply the rules with command
iptables-apply -t <timeout> fwrules.v4
. Where<timeout>
is timeout of confirmation in seconds. If you don't confirm the new rule set, it will rollback to the previous set.
- Save the current rule set with command
I guess the server has single network interface.
- Rule set itself:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# allow reply packets
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# allow incoming ICMP like ping and other
-A INPUT -p icmp -j ACCEPT
# allow to ssh and to jenkins from anywhere
-A INPUT -m conntrack --ctstate NEW -p tcp -m multiport --dports 22,8080 -j ACCEPT
# allow localhost connections
-A INPUT -i lo -j ACCEPT
# allow output packets to trust host
-A OUTPUT --dst 10.0.0.12 -j ACCEPT
# block output packets to other lan hosts
-A OUTPUT --dst 10.0.0.0/8 -j REJECT
COMMIT
- What's about DNS servers addresses? You should allow it too if they are in the local subnet.
- The order of rules is very important.
answered May 31 at 10:19
Anton DanilovAnton Danilov
1,6531712
1,6531712
That did the trick. Now I have a better understanding of iptables. Thank you!
– CodeBreaker
May 31 at 12:41
add a comment |
That did the trick. Now I have a better understanding of iptables. Thank you!
– CodeBreaker
May 31 at 12:41
That did the trick. Now I have a better understanding of iptables. Thank you!
– CodeBreaker
May 31 at 12:41
That did the trick. Now I have a better understanding of iptables. Thank you!
– CodeBreaker
May 31 at 12:41
add a comment |
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f969623%2fhow-to-disable-lan-but-enable-wan%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown