diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2018-04-15 17:03:26 +0200 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2018-04-15 17:03:26 +0200 |
commit | c9a1fd0189a14fdad9521439605f6f2a1e5904bf (patch) | |
tree | d61c434e776ba1554fbbd933ece6fb09d89e8795 /bragi.nix | |
parent | 8c3b76419eb5b6a5c56568cb0c7f3a06051cbd7c (diff) | |
download | nixos-c9a1fd0189a14fdad9521439605f6f2a1e5904bf.tar nixos-c9a1fd0189a14fdad9521439605f6f2a1e5904bf.tar.gz nixos-c9a1fd0189a14fdad9521439605f6f2a1e5904bf.tar.bz2 nixos-c9a1fd0189a14fdad9521439605f6f2a1e5904bf.tar.xz nixos-c9a1fd0189a14fdad9521439605f6f2a1e5904bf.zip |
bridge on bragi
Diffstat (limited to 'bragi.nix')
-rw-r--r-- | bragi.nix | 105 |
1 files changed, 54 insertions, 51 deletions
@@ -21,9 +21,60 @@ in rec { | |||
21 | 21 | ||
22 | boot.supportedFilesystems = [ "cifs" ]; | 22 | boot.supportedFilesystems = [ "cifs" ]; |
23 | 23 | ||
24 | networking.hostName = "bragi"; | 24 | networking = { |
25 | networking.hostId = "2af11085"; | 25 | hostName = "bragi"; |
26 | networking.wireless.enable = true; | 26 | hostId = "2af11085"; |
27 | wireless.enable = true; | ||
28 | |||
29 | bridges = { | ||
30 | br0 = { | ||
31 | interfaces = [ "enp1s0" "enp2s0" "enp3s0" "wlp4s0" ]; | ||
32 | }; | ||
33 | }; | ||
34 | |||
35 | interfaces = lib.genAttrs ["enp1s0" "enp2s0" "enp3s0"] { | ||
36 | proxyARP = true; | ||
37 | useDHCP = false; | ||
38 | }; | ||
39 | |||
40 | interfaces.wlp4s0 = { | ||
41 | proxyARP = true; | ||
42 | useDHCP = true; | ||
43 | }; | ||
44 | |||
45 | firewall = { | ||
46 | enable = true; | ||
47 | allowPing = true; | ||
48 | allowedTCPPorts = [ 22 # SSH | ||
49 | 80 # HTTP | ||
50 | 5432 # PostgreSQL | ||
51 | 6600 # MPD | ||
52 | 139 445 # SAMBA | ||
53 | ]; | ||
54 | allowedUDPPorts = [ 137 138 # SAMBA | ||
55 | 67 # DHCP | ||
56 | ]; | ||
57 | allowedUDPPortRanges = [ { from = 60000; to = 61000; } # mosh | ||
58 | ]; | ||
59 | }; | ||
60 | |||
61 | networking.defaultMailServer = { | ||
62 | directDelivery = true; | ||
63 | hostName = "ymir.niflheim.yggdrasil"; | ||
64 | useSTARTTLS = true; | ||
65 | setSendmail = true; | ||
66 | }; | ||
67 | }; | ||
68 | |||
69 | systemd.services."dhcp-helper" = { | ||
70 | serviceConfig = { | ||
71 | ExecStart = '' | ||
72 | ${pkgs.callPackage ./custom/dhcp-helper.nix {}}/bin/dhcp-helper -b wlp4s0 | ||
73 | ''; | ||
74 | }; | ||
75 | |||
76 | wantedBy = [ "network.target" ]; | ||
77 | }; | ||
27 | 78 | ||
28 | nixpkgs.config.packageOverrides = oldPkgs: | 79 | nixpkgs.config.packageOverrides = oldPkgs: |
29 | rec { | 80 | rec { |
@@ -225,54 +276,6 @@ in rec { | |||
225 | esac | 276 | esac |
226 | ''; | 277 | ''; |
227 | 278 | ||
228 | networking.interfaces = { | ||
229 | "enp1s0" = { | ||
230 | useDHCP = false; | ||
231 | ipv4.addresses = [ | ||
232 | { address = "10.141.4.1"; prefixLength = 24; } | ||
233 | ]; | ||
234 | }; | ||
235 | }; | ||
236 | |||
237 | networking.nat = { | ||
238 | enable = true; | ||
239 | externalIP = "10.141.1.5"; | ||
240 | externalInterface = "wlp4s0"; | ||
241 | internalIPs = [ "10.141.4.0/24" | ||
242 | ]; | ||
243 | internalInterfaces = [ "enp1s0" | ||
244 | ]; | ||
245 | }; | ||
246 | |||
247 | networking.firewall = { | ||
248 | enable = true; | ||
249 | allowPing = true; | ||
250 | allowedTCPPorts = [ 22 # SSH | ||
251 | 80 # HTTP | ||
252 | 5432 # PostgreSQL | ||
253 | 6600 # MPD | ||
254 | 139 445 # SAMBA | ||
255 | ]; | ||
256 | allowedUDPPorts = [ 137 138 ]; # SAMBA | ||
257 | allowedUDPPortRanges = [ { from = 60000; to = 61000; } # mosh | ||
258 | ]; | ||
259 | extraCommands = '' | ||
260 | iptables -t nat -A POSTROUTING -o wlp4s0 -j MASQUERADE | ||
261 | #iptables -A FORWARD -i wlp4s0 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
262 | iptables -A FORWARD -i wlp4s0 -o enp1s0 -j ACCEPT | ||
263 | iptables -A FORWARD -i enp1s0 -o wlp4s0 -j ACCEPT | ||
264 | ''; | ||
265 | }; | ||
266 | |||
267 | networking.defaultMailServer = { | ||
268 | directDelivery = true; | ||
269 | hostName = "ymir.niflheim.yggdrasil"; | ||
270 | useSTARTTLS = true; | ||
271 | setSendmail = true; | ||
272 | }; | ||
273 | |||
274 | networking.search = [ "bragisheimr.yggdrasil" "asgard.yggdrasil" ]; | ||
275 | |||
276 | services.dhcpd4 = { | 279 | services.dhcpd4 = { |
277 | enable = true; | 280 | enable = true; |
278 | interfaces = [ "enp1s0" | 281 | interfaces = [ "enp1s0" |