/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package de.jgsoftwares.guiserverpanel.frames;

import de.jgsoftwares.guiserverpanel.dao.dockerclient;
import static de.jgsoftwares.guiserverpanel.frames.ConfigPanel.stcomboruntime;
import static de.jgsoftwares.guiserverpanel.frames.ConfigPanel.stcombotimezone;
import static de.jgsoftwares.guiserverpanel.frames.ConfigPanel.stinterfacename;
import static de.jgsoftwares.guiserverpanel.frames.ConfigPanel.stlocales;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import static java.lang.ProcessBuilder.Redirect.to;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.model.Frame;
import com.github.dockerjava.api.model.StreamType;
import java.awt.Container;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

public class OpenWrt extends javax.swing.JPanel {

    Process process;
    BufferedReader reader;
    PrintWriter writer;
    /**
     * Creates new form OpenWrt
     */
    public OpenWrt() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTextArea2 = new javax.swing.JTextArea();
        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jButton4 = new javax.swing.JButton();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        jTextArea2.setColumns(20);
        jTextArea2.setRows(5);
        jScrollPane2.setViewportView(jTextArea2);

        jButton1.setText("start openwrt2305host container");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel1.setText("container for access as console for Netbeans");

        jButton2.setText("IpFire Firewall - cloud / dmz");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel3.setText("start only the container without config");

        jLabel5.setText("docker exec -it ipfire /bin/bash  -> setup");

        jLabel6.setText("weblogin start service with -> /etc/init.d/apache start ");

        jLabel7.setText("https://192.168.10.56:444/cgi-bin/");

        jButton4.setText("config");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jLabel9.setText("mounted :  ");

        jLabel10.setText("docker.sock");

        jLabel8.setText("start the openwrt23host container as last container ");

        jLabel11.setText("command runs by starting container");

        jLabel12.setText("iptables-legacy-save");

        jLabel14.setText("iptables runs in openwrt2305host container ");

        jLabel15.setText("with ipfire a simple firewall is running over docker");

        jLabel16.setText("default login: admin jj78mvpr52k1");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 241, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(jLabel3))
                            .addGroup(layout.createSequentialGroup()
                                .addContainerGap()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jLabel11, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
                                        .addComponent(jLabel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 332, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 259, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(jLabel15)
                                    .addComponent(jLabel16)))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(86, 86, 86)
                                .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jScrollPane2)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel8)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 347, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addGap(50, 50, 50)
                                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 156, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                        .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                    .addComponent(jLabel9))
                                .addGap(0, 0, Short.MAX_VALUE))
                            .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(17, 17, 17)
                .addComponent(jButton1)
                .addGap(39, 39, 39)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel9)
                .addGap(1, 1, 1)
                .addComponent(jLabel10)
                .addGap(9, 9, 9)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel8)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel11)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel12)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel13)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel14)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel15)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(jButton4))
                .addGap(51, 51, 51)
                .addComponent(jLabel3)
                .addGap(4, 4, 4)
                .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel7)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel16)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 168, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        
         de.jgsoftwares.guiserverpanel.dao.dockerclient dclient = new de.jgsoftwares.guiserverpanel.dao.dockerclient();
        
       
        String stopenwrthost = new String("docker run -it "
                + "--add-host=" + ConfigPanel.styourdomainname + ":"  + ConfigPanel.stwanip + " " 
                + "--runtime " + stcomboruntime + " " 
                + "-e NETWORK_NONE=" + stinterfacename + " " 
                + "--name openwrt2305host "
                + "-v /var/run/docker.sock:/var/run/docker.sock "
                //+ "-v /etc/docker/daemon.json:/etc/docker/daemon.json "
                + "-v /etc/config/:/etc/config/ "
                + "--net=host --net=none "
                + "--restart unless-stopped "
                + "--cap-add=NET_ADMIN "
                + "--cap-add=SYS_ADMIN "
                + "--cap-add=NET_RAW "      
                + "--platform=linux/amd64 "   
                + "--kernel-memory=6M "
                + "-e NTP_SERVER=\"2.rhel.pool.ntp.org\" "
                + "jgsoftwares/openwrt23.05:iptablesext4 /bin/ash");
        
        dclient.startopenwrt2305host(stopenwrthost);
        jTextArea2.setText("");
        jTextArea2.append("run docker cotainer with command" + "\n" + "\n" + stopenwrthost + "\n" + "\n");
        jTextArea2.append("container run manually " + "/n");
        jTextArea2.append(stopenwrthost + "/n");
        jTextArea2.append("check time settings /etc/TZ - for germany CET-1CEST,M3.5.0,M10.5.0/3" + "/n");
        jTextArea2.append("container is started with net.ipv4.ip_forward=0");
        jTextArea2.append("mount - docker socket /var/run/docker.sock");
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
       
        //
        // start ipfire container 
        de.jgsoftwares.guiserverpanel.dao.dockerclient dclient = new de.jgsoftwares.guiserverpanel.dao.dockerclient();
        
        
        String startipfire = new String("docker run -it "
                + "--add-host=" + ConfigPanel.styourdomainname + ":"  + ConfigPanel.stwanip + " " 
                + "--runtime " + stcomboruntime + " " 
                + "-e NETWORK_NONE=" + stinterfacename + " " 
                + "--name ipfire "
                + "--net=host"
                + "--restart unless-stopped "
                + "--cap-add=NET_ADMIN "
                + "--cap-add=SYS_ADMIN " 
                + "--platform=linux/amd64 "   
                + "--kernel-memory=6M "
                + "-e NTP_SERVER=\"2.rhel.pool.ntp.org\" "
                + "jgsoftwares/ipfire:cloud /bin/bash");
        
        
        dclient.startipfire(startipfire);
        jTextArea2.setText("");
        jTextArea2.append("run docker cotainer with command" + "\n" + "\n" + startipfire + "\n" + "\n");
        jTextArea2.append("container run manually " + "\n");
        // vi /var/ipfire/ethernet/settings 
        jTextArea2.append("settings for network config  " + " vi /var/ipfire/ethernet/settings " + "\n");
        jTextArea2.append("access to container with   " + "docker exec -it ipfire /bin/bash " + "\n");
        jTextArea2.append("setup firewall config in contianer type " + " setup " + "\n");
     
        // vi /var/ipfire/ethernet/settings
        jTextArea2.append(startipfire + "\n");
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
        // TODO add your handling code here:
        
        
        JFrame jframeconfigipfire = new JFrame("ipfire config");
        
        Container containerPane = jframeconfigipfire.getContentPane();
        
        JEditorPane jeditorPane = new JEditorPane();
        JScrollPane jscrollpane3 = new JScrollPane(jeditorPane);
        
        jeditorPane.setEditable(false); // Als Viewer, nicht Editor

         // " + ConfigPanel.stwanip + " " + "
        // 2. HTML Inhalt setzen
        jeditorPane.setContentType("text/html");
        jeditorPane.setText("<html><body>" +
                           "<h1>Ipfire dns config </h1>" +
                           "<p>https://www.ipfire.org/docs/dns/public-servers</p>" +
                           "<p>http://demogitjava.ddns.net:8000/ipfire/dnsgoogletls.jpg </p>" +
                           "<p>gcore</p>" +
                           "<p>95.85.95.85</p>" +
                           "<p>2.56.220.2</p>" +
                           "<p>google</p>" +
                           "<p>8.8.8.8</p>" +
                           "<p>dns.google</p>" +
                           "<p>8.8.4.4</p>" +
                           "<p>dns.google</p>" +
                           "<p></p>" +
                           "<p>ipfire after reboot use gcore and google</p>" +
                           "<br> " +
                           "<h1>Ipfire simple manually config</h1>" +
                           "<p></p>" +
                           "<br> " +
                         
                           "<h1>config network for ipfire</h1>" +
                           "<h1>run command</h1>" +
                           "<p>setup</p>" +
                           "<h1>routing table config</h1>" +
                           "<p>Kernel IP routing table with router gateway 10.255.255.1</p>" +  
                           "<p>Destination     Gateway         Genmask         Flags Metric Ref    Use Iface</p>" +   
                           "<p>0.0.0.0         10.255.255.1    0.0.0.0         UG    0      0        0 red0</p>" +   
                           "<p>10.255.255.1    0.0.0.0         255.255.255.255 UH    0      0        0 red0</p>" +   
                           "<p>192.168.10.0    192.168.10.56   255.255.255.255 UGH   0      0        0 green0</p>" +   
                           "<p>192.168.10.0    192.168.10.56   255.255.255.0   UG    0      0        0 wireguard</p>" +   
                           "<p>" + ConfigPanel.stwanip + " 10.255.255.1    255.255.255.255 UGH   0      0        0 orange0</p>" +   
                           "<p></p>" +   
                           "<p>routing table only over mainframe panel form the provider</p>" +   
                           "<p>ip route flush table main</p>" +   
                           "<p>ip route add 0.0.0.0/0 via 10.255.255.1 dev red0</p>" +   
                           "<p>ip route add 10.255.255.1/32 via 0.0.0.0 dev red0</p>" +   
                           "<p>ip route add 192.168.10.0/32 via 192.168.10.56 dev green0</p>" +   
                           "<p>ip route add 192.168.10.0/24 via 192.168.10.56 dev wireguard</p>" +   
                           "<p>ip route add 217.160.255.254/24 via 10.255.255.1 dev orange0</p>" +  
                            "<p></p>" +  
                           "<br> " +
                           "<h1>add ipfirehub </h1>" +
                           "<p>brctl addbr ipfirehub</p>" +
                           "<p>ifconfig ipfirehub up</p>" +
                           "<br> " +
                           "<h1>vi /var/ipfire/firewall/config</h1>" + 
                           "<p>5,REJECT,FORWARDFW,ON,std_net_src,ALL,std_net_tgt,RED,ON,UDP,,9092,ON,,,TGT_PORT,9092,dropbittorent,,,,,,,,,,00:00,00:00,,AUTO,,dnat,,,,,second</p>" +
                           "<p>6,ACCEPT,FORWARDFW,ON,src_addr," + ConfigPanel.stwanip + "/32,std_net_tgt,RED,,TCP,,80,ON,,,cust_srv,HTTP,HTTP,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second </p>" +
                           "<p>1,ACCEPT,FORWARDFW,ON,src_addr," + ConfigPanel.stwanip + "/32,std_net_tgt,RED,ON,TCP,,1527,ON,,,TGT_PORT,1527,DerbyDB,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second</p>" +
                           "<p>4,ACCEPT,FORWARDFW,ON,std_net_src,ALL,std_net_tgt,ORANGE,,TCP,,51820,ON,,,cust_srv,SSH,ssh,,,,,,,,,,00:00,00:00,ON,ORANGE,,snat,,,,,second</p>" +
                           "<p>3,ACCEPT,FORWARDFW,ON,std_net_src,ALL,std_net_tgt,ORANGE,,TCP,,51820,ON,,,cust_srv,SSH,ssh,,,,,,,,,,00:00,00:00,ON,ORANGE,,snat,,,,,second</p>" +
                           "<p>2,ACCEPT,FORWARDFW,ON,std_net_src,ALL,std_net_tgt,ORANGE,,TCP,,51820,ON,,,cust_srv,SSH,ssh,,,,,,,,,,00:00,00:00,ON,ORANGE,,snat,,,,,second</p>" +
                           "<br> " +
                           "<h1>vi /var/ipfire/firewall/input</h1>" + 
                           "<p>8,ACCEPT,INPUTFW,ON,std_net_src,ALL,ipfire,ORANGE,,TCP,,51820,ON,,,cust_srv,SSH,ssh,,,,,,,,,,00:00,00:00,ON,ORANGE,,snat,,,,,second,</p>" +
                           "<p>4,ACCEPT,INPUTFW,ON,src_addr," + ConfigPanel.stwanip + "/32,ipfire,RED1,ON,TCP,,1527,ON,,,TGT_PORT,1527,DerbyDB,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second</p>" +
                           "<p>5,ACCEPT,INPUTFW,ON,src_addr," + ConfigPanel.stwanip + "/32,ipfire,RED1,ON,TCP,,8443,ON,,,TGT_PORT,8443,Lanserver,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second</p>" +
                           "<p>6,ACCEPT,INPUTFW,ON,src_addr," + ConfigPanel.stwanip + "/32,ipfire,RED1,ON,TCP,,8000,ON,,,TGT_PORT,8000,HttpFileserver,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second</p>" +
                           "<p>3,ACCEPT,INPUTFW,ON,src_addr," + ConfigPanel.stwanip + "/32,ipfire,RED1,,TCP,,80,ON,,,cust_srv,HTTP,HTTP,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second</p>" +
                           "<p>7,ACCEPT,INPUTFW,ON,src_addr," + ConfigPanel.stwanip + "/32,ipfire,GREEN,ON,UDP,,51820,ON,,,TGT_PORT,51820,Wireguard,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second</p>" +
                           "<p>1,ACCEPT,INPUTFW,ON,src_addr,192.168.10.56/32,ipfire,ORANGE,ON,TCP,,22,ON,,,TGT_PORT,22,ssh,,,,,,,,,,00:00,00:00,ON,ORANGE,,snat,,,,,second</p>" +
                           "<p>2,ACCEPT,INPUTFW,ON,src_addr," + ConfigPanel.stwanip + "/32,ipfire,RED1,,TCP,,80,ON,,,cust_srv,HTTP,HTTP,,,,,,,,,,00:00,00:00,ON,Default IP,80,dnat,,,,,second</p>" +
                           "<br> " +
                           "<h1>vi /var/ipfire/firewall/outgoing</h1>" +            
                           "<p>1,REJECT,FORWARDFW,ON,std_net_src,ALL,std_net_tgt,RED,ON,UDP,,9092,ON,,,TGT_PORT,9092,dropbittorent,,,,,,,,,,00:00,00:00,,AUTO,,dnat,,,,,second </p>" +
                           "<p>4,ACCEPT,FORWARDFW,ON,src_addr," + ConfigPanel.stwanip + "/32,std_net_tgt,RED,ON,TCP,,8443,ON,,,TGT_PORT,8443,Lanserver,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second      </p>" +
                           "<p>2,ACCEPT,FORWARDFW,ON,src_addr," + ConfigPanel.stwanip + "/32,std_net_tgt,RED,,TCP,,80,ON,,,cust_srv,HTTP,HTTP,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second </p>" +
                           "<p>3,ACCEPT,FORWARDFW,ON,src_addr," + ConfigPanel.stwanip + "/32,std_net_tgt,RED,ON,TCP,,1527,ON,,,TGT_PORT,1527,DerbyDB,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second  </p>" +
                           "<p>7,ACCEPT,FORWARDFW,ON,std_net_src,ALL,std_net_tgt,OpenVPN-Dyn,,TCP,,51820,ON,,,cust_srv,SSH,ssh,,,,,,,,,,00:00,00:00,ON,ORANGE,,snat,,,,,second    </p>" +
                           "<p>5,ACCEPT,FORWARDFW,ON,src_addr," + ConfigPanel.stwanip + "/32,std_net_tgt,RED,ON,TCP,,8000,ON,,,TGT_PORT,8000,HttpFileserver,,,,,,,,,,00:00,00:00,ON,RED,,snat,,,,,second    </p>" +
                           "<p>6,ACCEPT,FORWARDFW,ON,std_net_src,ALL,std_net_tgt,OpenVPN-Dyn,ON,UDP,,51820,ON,,,TGT_PORT,51820,Wireguard,,,,,,,,,,00:00,00:00,,AUTO,,dnat,,,,,second,ON </p>" +
                           "<br> " +
                           "<h1>vi /etc/unbound/local.d/insecure.conf</h1>" +         
                           "<p>server:\n" +
                           "               domain-insecure: yourdomain</p>" +
                           "<br> " +
                           "<h1>vi /var/ipfire/ethernet/vlans</h1>" +        
                           "<p>GREEN_PARENT_DEV=vxlanwireguard</p>" +
                           "<p>GREEN_VLAN_ID=10   </p>" + 
                           "<p>GREEN_MAC_ADDRESS=e2:3e:c8:2d:3e:1c   </p>" +
                           "<p>RED_PARENT_DEV=eth0   </p>" +
                           "<p>RED_VLAN_ID=0  </p>" +
                           "<p>RED_MAC_ADDRESS=02:01:18:4f:53:80   </p>" +
                           "<p>ORANGE_PARENT_DEV=vxlanwireguard    </p>" +
                           "<p>ORANGE_VLAN_ID=20    </p>" +
                           "<p>ORANGE_MAC_ADDRESS=e2:3e:c8:2d:3e:1c    </p>" +
                           "<br> " +
                           "<h1>vi /etc/ntp/ntpInclude.conf</h1>" +
                           "<p>server 2.rhel.pool.ntp.org prefer</p>" +
                           "<p>restart ntp with</p>" +
                           "<p>/etc/init.d/ntp start </p>" +
                           "<br> " +
                           "<h1>vi /var/ipfire/ethernet/settings</h1>" +
                           "<p>CONFIG_TYPE=2</p>" +
                           "<p>GREEN_DEV=green0</p>" +
                           "<p>GREEN_MACADDR=e2:3e:c8:2d:3e:1c</p>" +
                           "<p>GREEN_DESCRIPTION='\"tap: device on green0\"'</p>" +
                           "<p>GREEN_MODE=NATIVE</p>" +
                           "<p>GREEN_ADDRESS=192.168.10.56</p>" +
                           "<p>GREEN_NETMASK=255.255.255.0</p>" +
                           "<p>GREEN_NETADDRESS=192.168.10.0</p>" +
                           "<p>GREEN_DRIVER=tap</p>" +
                           "<p>RED_DEV=red0</p>" +
                           "<p>RED_MACADDR=02:01:18:4f:53:80</p>" +
                           "<p>RED_DESCRIPTION='\"tap: device on red0\"'</p>" +
                           "<p>RED_DRIVER=tap</p>" +
                           "<p>RED_MODE=NATIVE</p>" +
                           "<p>RED_DHCP_HOSTNAME=demogitjava.ddns.net</p>" +
                           "<p>RED_DHCP_FORCE_MTU=1500</p>" +
                           "<p>RED_DHCP_RAPID_COMMIT=off</p>" +
                           "<p>RED_ADDRESS=" + ConfigPanel.stwanip + "</p>" +
                           "<p>RED_NETMASK=255.255.255.255</p>" +
                           "<p>DEFAULT_GATEWAY=10.255.255.1</p>" +
                           "<p>RED_NETADDRESS=" + ConfigPanel.stwanip + "</p>" + 
                           "<p>ORANGE_DEV=orange0</p>" +
                           "<p>ORANGE_MACADDR=0e:98:7f:b7:2d:ec</p>" +
                           "<p>ORANGE_DESCRIPTION='\"???: Unknown Network Interface (vxlanwan)\"'</p>" +
                           "<p>ORANGE_MODE=bridge</p>" +
                           "<p>ORANGE_DESCRIPTION='\"tap: device on orange0\"'</p>" +
                           "<p>ORANGE_DRIVER=tap</p>" +
                           "<p>ORANGE_ADDRESS=10.255.255.1</p>" +
                           "<p>ORANGE_NETMASK=0.0.0.0</p>" +
                           "<p>ORANGE_NETADDRESS=0.0.0.0</p>" +
                           "<p>RED_TYPE=STATIC</p>" +
                           "<p>BLUE_DRIVER=</p>" +
                           "<p>BLUE_DEV=</p>" +
                           "<p>BLUE_MACADDR=</p>" +
                           "<p>BLUE_DESCRIPTION=</p>" +
                            "<br> " +
                           "<h1>run commands in ipfire container</h1>" +
                           "<p>reboot</p>" +
                           "<p>iptables -F</p>" +
                           "<p>iptables -N raw</p>" +
                           "<p>/etc/rc.d/init.d/networking/red start</p>" +
                           "<p>ip route del 10.255.255.1/32 </p>" +
                           "<p>/etc/init.d/localnet start</p>" +
                           "<p>/etc/init.d/dhcrelay start</p>" +
                           "<p>/etc/init.d/leds start</p>" +
                           "<p>/etc/init.d/sysctl start</p>" +
                           "<p>/etc/init.d/wlanclient stop</p>" +
                           "<p>iptables -t nat -I PREROUTING -p tcp -i orange0 --dport 22 -j DNAT --to 192.168.10.56:22</p>" +
                           "<p>iptables -A FORWARD -i orange0 -o green0 -p tcp --dport 22 -j ACCEPT</p>" +
                           "<p>iptables -t nat -I PREROUTING -p tcp -i orange0 --dport 6010 -j DNAT --to 127.0.0.1:6010</p>" +
                           "<p>iptables -A FORWARD -i orange0 -o green0 -p tcp --dport 6010 -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --dport 80 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A OUTPUT -p tcp --dport 80 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --dport 8000 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A OUTPUT -p tcp --dport 8000 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --dport 1527 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A OUTPUT -p tcp --dport 1527 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --dport 8443 -s 192.168.10.56 -j ACCEPT</p>" +
                           "<p>iptables -A OUTPUT -p tcp --dport 8443 -s 192.168.10.56 -j ACCEPT</p>" +
                           "<p>iptables -A FORWARD -i orange0 -o green0 -p tcp --dport 8443 -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --dport 51820 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A OUTPUT -p tcp --dport 51820 -s " + ConfigPanel.stwanip + " -j ACCEPT</p>" +
                           "<p>iptables -A FORWARD -i orange0 -o green0 -p tcp --dport 51820 -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --dport 853 -d 95.85.95.85,2.56.220.2 -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --sport 853 -s 95.85.95.85,2.56.220.2 -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --dport 853 -d 8.8.8.8,8.8.4.4 -j ACCEPT</p>" +
                           "<p>iptables -A INPUT -p tcp --sport 853 -s 8.8.8.8,8.8.4.4 -j ACCEPT</p>" +
                           "<p>ip6tables -P INPUT DROP</p>" +
                           "<p>ip6tables -P FORWARD DROP</p>" +
                           "<p>iptables -D FORWARD 1 # docker-user</p>" +
                           "<p>iptables -D FORWARD 1 # DOCKER-ISOLATION-STAGE-1</p>" +
                           "<p>iptables -D DOCKER-ISOLATION-STAGE-1 1 # DOCKER-ISOLATION-STAGE-1</p>" +
                           "<p>iptables -D DOCKER-ISOLATION-STAGE-1 1 # return </p>" +
                           "<p>iptables -D DOCKER-ISOLATION-STAGE-2 1 # DOCKER-ISOLATION-STAGE-1</p>" +
                           "<p>iptables -D DOCKER-ISOLATION-STAGE-2 1 # return</p>" +
                           "<p>iptables -D DOCKER-USER 1 # return</p>" +
                           "<p>iptables -t nat -A POSTROUTING -j MASQUERADE</p>" +
                           "<p>iptables -vt nat -A CUSTOMPREROUTING ! -o orange0 -p udp --destination-port 853 -j REDIRECT --to-ports 853</p>" +
                           "<p>iptables -vt nat -A CUSTOMPREROUTING ! -o orange0 -p tcp --destination-port 853 -j REDIRECT --to-ports 853</p>" +
                           "<p>/etc/sysconfig/firewall.local start</p>" +
                           "<p>/etc/init.d/wlanclient stop</p>" +
                           "<p>/etc/init.d/cloud-init start</p>" +
                           "<p>/etc/rc.d/init.d/static-routes reload</p>" +
                           "<p>ip addr del 127.0.0.1/8 dev lo</p>" +
                           "<p>ip addr del ::1/128 dev lo</p>" +
                           "<p>sysctl net.ipv4.ip_forward=1</p>" +
                           "<p>sysctl net.ipv4.conf.all.src_valid_mark=1</p>" +
                           "<p>sysctl net.ipv6.conf.all.disable_ipv6=1</p>" +
                           "<p>sysctl net.ipv6.conf.default.disable_ipv6 = 1</p>" +
                           "<p>sysctl net.ipv6.conf.lo.disable_ipv6 = 1</p>" +
                           "<p>ip link set red0 up</p>" +
                           "<p>ip link set green0 up</p>" +
                           "<p>ip link set orange0 up</p>" +
                           "<p>ip route del 10.255.255.1/32 </p>" +
                           "<p>route del -net 192.168.10.0 gw 0.0.0.0 netmask 255.255.255.0 dev wireguard</p>" +
                           "<p>route add -net 192.168.10.0 gw 192.168.10.56 netmask 255.255.255.0 dev wireguard</p>" +
                           "<p>ip link add link red0 name redvlan type vlan id 0</p>" +
                           "<p>ifconfig redvlan up</p>" +
                           "<p>ip link add link green0 name greenvlan type vlan id 10</p>" +
                           "<p>ifconfig greenvlan up</p>" +
                           "<p>ip link add link orange0 name orangevlan type vlan id 20</p>" +
                           "<p>ifconfig orangevlan up</p>" +
                           "<p>brctl addif ipfirehub redvlan</p>" +
                           "<p>ip route add " + ConfigPanel.stwanip + " via 10.255.255.1 dev orange0</p>" +
                           "<br> " +
                           "<h1>delete red0.info file</h1>" +
                           "<p>rm -rf /var/ipfire/dhcpc/red0.lease</p>" +
                           "<br> " +
                           "<h1>edit dns server ip in dhcpcd-red0.info file</h1>" +
                           "<p>domain_name_servers='95.85.95.85 2.56.220.2'    <----- to public dns like gcore    </p>" +
                           "<p></p>" +
                           "<p></p>" +
                           "<p></p>" +
                           "<p></p>" +
                           "<p></p>" +
                           "<p></p>" +
                           "<br> " +
                           "</body></html>");
        
        
        
        containerPane.add(jscrollpane3, "Center");
        
        jframeconfigipfire.setVisible(true);
        jframeconfigipfire.pack();
    }//GEN-LAST:event_jButton4ActionPerformed


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextArea jTextArea2;
    // End of variables declaration//GEN-END:variables
}
