379 lines
12 KiB
Markdown
379 lines
12 KiB
Markdown
Here's an updated OpenWRT container configuration with a smaller footprint:
|
||
|
||
### Proxmox Container Creation
|
||
|
||
Use the following command to create a new container with reduced memory and storage:
|
||
|
||
```bash
|
||
pct create 100 /var/lib/vz/template/cache/openwrt-rootfs.tar.xz --unprivileged 1 --arch amd64 --ostype unmanaged --hostname openwrt-0 --storage local-lvm --memory 128 --swap 0 --rootfs local-lvm:2,size=1G \
|
||
--net0 name=eth0,bridge=vmbr0,firewall=1 \
|
||
--net1 name=eth1,bridge=vmbr1,firewall=1
|
||
```
|
||
|
||
```bash
|
||
pct create 101 /var/lib/vz/template/cache/openwrt-rootfs.tar.xz --unprivileged 1 --arch amd64 --ostype unmanaged --hostname openwrt-1 --storage local-lvm --memory 128 --swap 0 --rootfs local-lvm:2,size=1G \
|
||
--net0 name=eth0,bridge=vmbr0,firewall=1 \
|
||
--net1 name=eth1,bridge=vmbr1,firewall=1
|
||
```
|
||
|
||
```bash
|
||
pct create 102 /var/lib/vz/template/cache/openwrt-rootfs.tar.xz --unprivileged 1 --arch amd64 --ostype unmanaged --hostname openwrt-2 --storage local-lvm --memory 128 --swap 0 --rootfs local-lvm:2,size=1G \
|
||
--net0 name=eth0,bridge=vmbr0,firewall=1 \
|
||
--net1 name=eth1,bridge=vmbr1,firewall=1
|
||
```
|
||
|
||
Key changes:
|
||
- Reduced memory to 128MB (`--memory 128`)
|
||
- Disabled swap (`--swap 0`)
|
||
- Reduced rootfs size to 1GB (`--rootfs local-lvm:2,size=1G`)
|
||
|
||
### OpenWRT Firewall Configuration
|
||
|
||
The network interface and firewall configuration remains the same as before:
|
||
|
||
#### **Define Network Interfaces**:
|
||
Update `/etc/config/network` to reflect `eth1` as the WAN interface:
|
||
|
||
```bash
|
||
config interface 'wan'
|
||
option ifname 'eth1'
|
||
option proto 'dhcp'
|
||
```
|
||
|
||
#### **Update Firewall Settings**:
|
||
Append rules to `/etc/config/firewall` to allow SSH and HTTPS access:
|
||
|
||
```bash
|
||
config zone
|
||
option name 'wan'
|
||
list network 'wan'
|
||
option input 'REJECT'
|
||
option output 'ACCEPT'
|
||
option forward 'REJECT'
|
||
option masq '1'
|
||
option mtu_fix '1'
|
||
|
||
config rule
|
||
option name 'Allow-SSH'
|
||
option src 'wan'
|
||
option proto 'tcp'
|
||
option dest_port '22'
|
||
option target 'ACCEPT'
|
||
|
||
config rule
|
||
option name 'Allow-HTTPS'
|
||
option src 'wan'
|
||
option proto 'tcp'
|
||
option dest_port '443'
|
||
option target 'ACCEPT'
|
||
```
|
||
|
||
### Applying the Configuration
|
||
|
||
After updating the configuration files:
|
||
|
||
- **Restart Network Services**:
|
||
```bash
|
||
/etc/init.d/network restart
|
||
```
|
||
|
||
- **Reload Firewall Settings**:
|
||
```bash
|
||
/etc/init.d/firewall restart
|
||
```
|
||
|
||
This setup reduces the memory and storage footprint of the OpenWRT container while maintaining the necessary network and firewall configurations for SSH and HTTPS access.
|
||
|
||
Remember to test connectivity and functionality thoroughly after applying these changes to ensure the reduced resource allocation meets your requirements.
|
||
|
||
---
|
||
|
||
To streamline your guide for setting up Proxmox containers with OpenWRT and configuring the necessary firewall rules for SSH and HTTPS access, here’s a refined and concise approach:
|
||
|
||
### Proxmox Container Creation
|
||
|
||
Below are the commands to create three different containers, each with a unique configuration for network interfaces:
|
||
|
||
#### **Container 1 Setup:**
|
||
```bash
|
||
pct create 101 /var/lib/vz/template/cache/openwrt-rootfs.tar.xz --unprivileged 1 --arch amd64 --ostype unmanaged --hostname openwrt-0 --storage local-lvm \
|
||
--net0 name=eth0,bridge=vmbr0,firewall=1 \
|
||
--net1 name=eth1,bridge=vmbr1,firewall=1
|
||
```
|
||
|
||
#### **Container 2 Setup:**
|
||
```bash
|
||
pct create 101 /var/lib/vz/template/cache/openwrt-rootfs.tar.xz --unprivileged 1 --arch amd64 --ostype unmanaged --hostname openwrt-1 --storage local-lvm \
|
||
--net0 name=eth0,bridge=vmbr0,firewall=1 \
|
||
--net1 name=eth1,bridge=vmbr2,firewall=1
|
||
```
|
||
|
||
#### **Container 3 Setup:**
|
||
```bash
|
||
pct create 102 /var/lib/vz/template/cache/openwrt-rootfs.tar.xz --unprivileged 1 --arch amd64 --ostype unmanaged --hostname openwrt-2 --storage local-lvm \
|
||
--net0 name=eth0,bridge=vmbr0,firewall=1 \
|
||
--net1 name=eth1,bridge=vmbr3,firewall=1
|
||
```
|
||
|
||
### OpenWRT Firewall Configuration
|
||
|
||
You need to ensure that `eth1` is recognized as the WAN interface on each OpenWRT container. Configure the network settings and define firewall rules to allow SSH and HTTPS access.
|
||
|
||
#### **Define Network Interfaces**:
|
||
Update the `/etc/config/network` to reflect `eth1` as the WAN interface. This setup applies universally across your containers:
|
||
|
||
```bash
|
||
config interface 'wan'
|
||
option ifname 'eth1'
|
||
option proto 'dhcp'
|
||
```
|
||
|
||
#### **Update Firewall Settings**:
|
||
In `/etc/config/firewall`, append rules to allow SSH and HTTPS access. The following rules will enable connectivity for management via `eth1`:
|
||
|
||
```bash
|
||
config zone
|
||
option name 'wan'
|
||
list network 'wan'
|
||
option input 'REJECT'
|
||
option output 'ACCEPT'
|
||
option forward 'REJECT'
|
||
option masq '1'
|
||
option mtu_fix '1'
|
||
|
||
config rule
|
||
option name 'Allow-SSH'
|
||
option src 'wan'
|
||
option proto 'tcp'
|
||
option dest_port '22'
|
||
option target 'ACCEPT'
|
||
|
||
config rule
|
||
option name 'Allow-HTTPS'
|
||
option src 'wan'
|
||
option proto 'tcp'
|
||
option dest_port '443'
|
||
option target 'ACCEPT'
|
||
```
|
||
|
||
### Applying the Configuration
|
||
|
||
After updating the configuration files, you should apply the changes:
|
||
|
||
- **Restart Network Services**:
|
||
```bash
|
||
/etc/init.d/network restart
|
||
```
|
||
|
||
- **Reload Firewall Settings**:
|
||
```bash
|
||
/etc/init.d/firewall restart
|
||
```
|
||
|
||
### Final Considerations
|
||
|
||
- **Security**: Implement strong authentication methods, such as key-based SSH access.
|
||
- **Testing**: Verify connectivity by accessing SSH and HTTPS from a network outside your LAN.
|
||
- **Backup Configurations**: Always back up your configurations before making significant changes.
|
||
|
||
This streamlined guide provides a clear and effective method for deploying Proxmox containers with OpenWRT, configured for remote management access through SSH and HTTPS on the WAN interface.
|
||
|
||
---
|
||
|
||
### Creating a Virtual Bridge (vmbr) in Proxmox via CLI
|
||
|
||
To create a new virtual bridge (`vmbrX`) on Proxmox using the command line, you need to edit the network configuration file located at `/etc/network/interfaces`. Here’s how you can do it:
|
||
|
||
1. **Access the Proxmox Host**:
|
||
Connect to your Proxmox server via SSH.
|
||
|
||
2. **Edit the Network Configuration File**:
|
||
Open the `/etc/network/interfaces` file in a text editor, such as `nano` or `vim`.
|
||
```bash
|
||
vim /etc/network/interfaces
|
||
```
|
||
|
||
3. **Add Configuration for a New Bridge**:
|
||
Add the following lines to the file to create a new bridge. Replace `X` with the appropriate number for your new bridge.
|
||
```bash
|
||
auto vmbrX
|
||
iface vmbrX inet static
|
||
address 192.168.X.1
|
||
netmask 255.255.255.0
|
||
bridge_ports none
|
||
bridge_stp off
|
||
bridge_fd 0
|
||
```
|
||
|
||
4. **Save and Apply Changes**:
|
||
Save the changes and restart the networking service to apply them.
|
||
```bash
|
||
systemctl restart networking
|
||
```
|
||
|
||
This setup creates a bridge with no physical interfaces attached (isolated bridge). If you want to attach physical interfaces, replace `none` in `bridge_ports` with the name of the interface (e.g., `eth0`).
|
||
|
||
### Adjusting Network Interface Configuration in OpenWRT
|
||
|
||
To swap interfaces or change the DHCP setting to static IP or vice versa in OpenWRT, you can modify the `/etc/config/network` file. Here's how to make these adjustments:
|
||
|
||
#### **Changing Interface Assignment (Swapping Interfaces)**
|
||
|
||
If you want to change which physical interface (e.g., from `eth0` to `eth1`) is used for WAN, modify the `option ifname` line under the corresponding section:
|
||
|
||
```bash
|
||
config interface 'wan'
|
||
option ifname 'eth1' # Changed from eth0 to eth1
|
||
option proto 'dhcp'
|
||
```
|
||
|
||
#### **Changing DHCP to Static IP (or Vice Versa)**
|
||
|
||
To change an interface from DHCP to static IP:
|
||
1. Change the `option proto 'dhcp'` to `option proto 'static'`.
|
||
2. Specify the `option ipaddr` and `option netmask` (and optionally, `option gateway` and `option dns`).
|
||
|
||
Example for a static IP configuration:
|
||
```bash
|
||
config interface 'wan'
|
||
option ifname 'eth0'
|
||
option proto 'static'
|
||
option ipaddr '192.168.1.2'
|
||
option netmask '255.255.255.0'
|
||
option gateway '192.168.1.1'
|
||
option dns '192.168.1.1'
|
||
```
|
||
|
||
To revert to DHCP:
|
||
```bash
|
||
config interface 'wan'
|
||
option ifname 'eth0'
|
||
option proto 'dhcp'
|
||
```
|
||
|
||
#### **Applying Changes in OpenWRT**
|
||
|
||
After making changes to the `/etc/config/network` file:
|
||
1. **Restart the Network Service** to apply the changes:
|
||
```bash
|
||
/etc/init.d/network restart
|
||
```
|
||
|
||
2. **Test Connectivity** to ensure that your network configurations work as expected.
|
||
|
||
These steps allow you to flexibly configure and manage network settings directly from the CLI, accommodating changes in network design or infrastructure requirements efficiently.
|
||
|
||
---
|
||
|
||
```bash
|
||
auto lo
|
||
iface lo inet loopback
|
||
|
||
iface enp3s0 inet manual
|
||
|
||
auto vmbr0
|
||
iface vmbr0 inet dhcp
|
||
bridge-ports enp3s0
|
||
bridge-stp off
|
||
bridge-fd 0
|
||
|
||
auto vmbr1
|
||
iface vmbr1 inet manual
|
||
bridge-ports none
|
||
bridge-stp off
|
||
bridge-fd 0
|
||
|
||
auto vmbr2
|
||
iface vmbr2 inet manual
|
||
bridge-ports none
|
||
bridge-stp off
|
||
bridge-fd 0
|
||
|
||
auto vmbr3
|
||
iface vmbr3 inet manual
|
||
bridge-ports none
|
||
bridge-stp off
|
||
bridge-fd 0
|
||
|
||
iface wlp2s0 inet manual
|
||
|
||
source /etc/network/interfaces.d/*
|
||
```
|
||
|
||
---
|
||
For your standalone Proxmox setup, switching between static and dynamic IP configurations and managing virtual bridges are important tasks. Below, I'll provide a concise guide to handle these changes effectively and safely.
|
||
|
||
### Switching from Static IP to DHCP:
|
||
|
||
1. **Update Network Interface Configuration:**
|
||
- Open `/etc/network/interfaces` in a text editor:
|
||
```bash
|
||
nano /etc/network/interfaces
|
||
```
|
||
- Change the `vmbr0` configuration from static to DHCP:
|
||
```bash
|
||
auto vmbr0
|
||
iface vmbr0 inet dhcp
|
||
bridge-ports enp3s0
|
||
bridge-stp off
|
||
bridge-fd 0
|
||
```
|
||
- Save the changes and exit the editor.
|
||
|
||
2. **Restart Networking to Apply Changes:**
|
||
- Apply the new network settings:
|
||
```bash
|
||
systemctl restart networking
|
||
```
|
||
|
||
3. **Find the New DHCP-Assigned IP Address:**
|
||
- After the network restarts, check the assigned IP:
|
||
```bash
|
||
ip addr show vmbr0
|
||
```
|
||
|
||
4. **Update `/etc/hosts` with the New IP:**
|
||
- Edit the `/etc/hosts` file to replace the old static IP with the new one:
|
||
```bash
|
||
nano /etc/hosts
|
||
```
|
||
- Modify the line with the old IP to the new one you just obtained:
|
||
```plaintext
|
||
192.168.86.62 whitebox.foxtrot.lan whitebox # Old IP
|
||
192.168.x.x whitebox.foxtrot.lan whitebox # New DHCP IP
|
||
```
|
||
- Save and exit.
|
||
|
||
5. **Reserve IP in DHCP Server (Optional but Recommended):**
|
||
- To ensure the IP does not change on reboots, reserve the IP in your DHCP server settings to always assign the same IP to the MAC address of `vmbr0`.
|
||
|
||
### Creating a New Virtual Bridge (`vmbrX`):
|
||
|
||
1. **Add a New Virtual Bridge Configuration:**
|
||
- Edit `/etc/network/interfaces`:
|
||
```bash
|
||
nano /etc/network/interfaces
|
||
```
|
||
- Add a new bridge configuration at the end of the file:
|
||
```bash
|
||
auto vmbrX # Replace X with the next available number
|
||
iface vmbrX inet manual
|
||
bridge-ports none
|
||
bridge-stp off
|
||
bridge-fd 0
|
||
```
|
||
- Save and exit the editor.
|
||
|
||
2. **Activate the New Bridge:**
|
||
- Restart the networking service to bring up the new bridge:
|
||
```bash
|
||
systemctl restart networking
|
||
```
|
||
|
||
### General Notes:
|
||
|
||
- **Backup Configurations:** Always backup configuration files before making changes (`cp /etc/network/interfaces /etc/network/interfaces.bak`).
|
||
- **Documentation:** Update all relevant documentation with the new bridge details and IP changes.
|
||
- **Monitoring:** Monitor the network and server behavior after changes to ensure everything is functioning as expected.
|
||
|
||
This approach provides a structured method to manage IP address configurations and virtual bridges on your Proxmox server, enhancing flexibility and ensuring consistent network settings across system reboots or changes. |